Print this page
NEX-14666 Need to provide SMB 2.1 Client
NEX-17187 panic in smbfs_acl_store
NEX-17231 smbfs create xattr files finds wrong file
NEX-17224 smbfs lookup EINVAL should be ENOENT
NEX-17260 SMB1 client fails to list directory after NEX-14666
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Matt Barden <matt.barden@nexenta.com>
Reviewed by: Rick McNeal <rick.mcneal@nexenta.com>
Reviewed by: Saso Kiselkov <saso.kiselkov@nexenta.com>
Reviewed by: Joyce McIntosh <joyce.mcintosh@nexenta.com>
and: (cleanup)
5404 smbfs needs mmap support
Portions contributed by: Gordon Ross <gordon.w.ross@gmail.com>
Reviewed by: C Fraire <cfraire@me.com>
Reviewed by: Toomas Soome <tsoome@me.com>
Reviewed by: Jason King <jason.brian.king@gmail.com>
Reviewed by: Andrew Stormont <andyjstormont@gmail.com>
Approved by: Richard Lowe <richlowe@richlowe.net>
        
@@ -31,13 +31,14 @@
  *
  * $Id: smbfs_node.h,v 1.31.52.1 2005/05/27 02:35:28 lindak Exp $
  */
 
 /*
- * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright 2018 Nexenta Systems, Inc.  All rights reserved.
  */
 
 #ifndef _FS_SMBFS_NODE_H_
 #define _FS_SMBFS_NODE_H_
 
@@ -219,30 +220,30 @@
          */
         int             n_dirrefs;
         struct smbfs_fctx       *n_dirseq;      /* ff context */
         int             n_dirofs;       /* last ff offset */
         int             n_fidrefs;
-        uint16_t        n_fid;          /* file handle */
+        smb_fh_t        *n_fid;         /* file handle */
         enum vtype      n_ovtype;       /* vnode type opened */
-        uint32_t        n_rights;       /* granted rights */
-        int             n_vcgenid;      /* gereration no. (reconnect) */
 
         /*
          * Misc. bookkeeping
          */
         cred_t          *r_cred;        /* current credentials */
         u_offset_t      r_nextr;        /* next read offset (read-ahead) */
         long            r_mapcnt;       /* count of mmapped pages */
+        uint_t          r_inmap;        /* to serialize read/write and mmap */
         uint_t          r_count;        /* # of refs not reflect in v_count */
         uint_t          r_awcount;      /* # of outstanding async write */
         uint_t          r_gcount;       /* getattrs waiting to flush pages */
         uint_t          r_flags;        /* flags, see below */
-        uint32_t        n_flag;         /* NXXX flags below */
+        uint32_t        n_flag;         /* N--- flags below */
         uint_t          r_error;        /* async write error */
         kcondvar_t      r_cv;           /* condvar for blocked threads */
         avl_tree_t      r_dir;          /* cache of readdir responses */
         rddir_cache     *r_direof;      /* pointer to the EOF entry */
+        u_offset_t      r_modaddr;      /* address for page in writenp */
         kthread_t       *r_serial;      /* id of purging thread */
         list_t          r_indelmap;     /* list of delmap callers */
 
         /*
          * Attributes: local, and as last seen on the server.