Print this page
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