NEX-6096 Enable compile warnings re. parentheses in smbsrv Reviewed by: Matt Barden <matt.barden@nexenta.com> Reviewed by: Rick McNeal <rick.mcneal@nexenta.com> Reviewed by: Josef 'Jeff' Sipek <josef.sipek@nexenta.com> Reviewed by: Evan Layton <evan.layton@nexenta.com> Reviewed by: Jean McCormack <jean.mccormack@nexenta.com> NEX-2442 regression with smbtorture test raw.sfileinfo.rename SMB-11 SMB2 message parse & dispatch SMB-12 SMB2 Negotiate Protocol SMB-13 SMB2 Session Setup SMB-14 SMB2 Logoff SMB-15 SMB2 Tree Connect SMB-16 SMB2 Tree Disconnect SMB-17 SMB2 Create SMB-18 SMB2 Close SMB-19 SMB2 Flush SMB-20 SMB2 Read SMB-21 SMB2 Write SMB-22 SMB2 Lock/Unlock SMB-23 SMB2 Ioctl SMB-24 SMB2 Cancel SMB-25 SMB2 Echo SMB-26 SMB2 Query Dir SMB-27 SMB2 Change Notify SMB-28 SMB2 Query Info SMB-29 SMB2 Set Info SMB-30 SMB2 Oplocks SMB-53 SMB2 Create Context options (SMB2 code review cleanup 1, 2, 3)
59 }
60
61 /*
62 * Also get the readonly attrs, but don't fail.
63 */
64 if (fgetattr(vp->v_fd, XATTR_VIEW_READONLY, &nvl) == 0) {
65 (void) getxva_parse_nvl(xvap, xoap, nvl);
66 nvlist_free(nvl);
67 }
68
69 return (error);
70 }
71
72 static int
73 getxva_parse_nvl(xvattr_t *xvap,
74 xoptattr_t *xoap, nvlist_t *nvl)
75 {
76 nvpair_t *pair = NULL;
77 int error;
78
79 while (pair = nvlist_next_nvpair(nvl, pair)) {
80 data_type_t type;
81 f_attr_t attr;
82 boolean_t value = B_FALSE;
83 uint64_t *times = zero_times;
84 uint_t nelems = 2;
85
86 /*
87 * Validate the name and type of each attribute.
88 * Log any unknown names and continue. This will
89 * help if additional attributes are added later.
90 */
91 type = nvpair_type(pair);
92 attr = name_to_attr(nvpair_name(pair));
93 if (attr == F_ATTR_INVAL)
94 continue;
95
96 /*
97 * Verify nvlist type matches required type and view is OK
98 */
99
|
59 }
60
61 /*
62 * Also get the readonly attrs, but don't fail.
63 */
64 if (fgetattr(vp->v_fd, XATTR_VIEW_READONLY, &nvl) == 0) {
65 (void) getxva_parse_nvl(xvap, xoap, nvl);
66 nvlist_free(nvl);
67 }
68
69 return (error);
70 }
71
72 static int
73 getxva_parse_nvl(xvattr_t *xvap,
74 xoptattr_t *xoap, nvlist_t *nvl)
75 {
76 nvpair_t *pair = NULL;
77 int error;
78
79 while ((pair = nvlist_next_nvpair(nvl, pair)) != NULL) {
80 data_type_t type;
81 f_attr_t attr;
82 boolean_t value = B_FALSE;
83 uint64_t *times = zero_times;
84 uint_t nelems = 2;
85
86 /*
87 * Validate the name and type of each attribute.
88 * Log any unknown names and continue. This will
89 * help if additional attributes are added later.
90 */
91 type = nvpair_type(pair);
92 attr = name_to_attr(nvpair_name(pair));
93 if (attr == F_ATTR_INVAL)
94 continue;
95
96 /*
97 * Verify nvlist type matches required type and view is OK
98 */
99
|