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 
 |