OSDN Git Service

cifs: don't use vfsmount to pin superblock for oplock breaks
[android-x86/kernel.git] / fs / cifs / cifs_fs_sb.h
index 9e77145..525ba59 100644 (file)
@@ -15,6 +15,8 @@
  *   the GNU Lesser General Public License for more details.
  *
  */
+#include <linux/radix-tree.h>
+
 #ifndef _CIFS_FS_SB_H
 #define _CIFS_FS_SB_H
 
 #define CIFS_MOUNT_NOPOSIXBRL   0x2000 /* mandatory not posix byte range lock */
 #define CIFS_MOUNT_NOSSYNC      0x4000 /* don't do slow SMBflush on every sync*/
 #define CIFS_MOUNT_FSCACHE     0x8000 /* local caching enabled */
+#define CIFS_MOUNT_MF_SYMLINKS 0x10000 /* Minshall+French Symlinks enabled */
+#define CIFS_MOUNT_MULTIUSER   0x20000 /* multiuser mount */
 
 struct cifs_sb_info {
-       struct cifsTconInfo *tcon;      /* primary mount */
-       struct list_head nested_tcon_q;
+       struct radix_tree_root tlink_tree;
+#define CIFS_TLINK_MASTER_TAG          0       /* is "master" (mount) tcon */
+       spinlock_t tlink_tree_lock;
        struct nls_table *local_nls;
        unsigned int rsize;
        unsigned int wsize;
+       atomic_t active;
        uid_t   mnt_uid;
        gid_t   mnt_gid;
        mode_t  mnt_file_mode;
        mode_t  mnt_dir_mode;
-       int     mnt_cifs_flags;
+       unsigned int mnt_cifs_flags;
        int     prepathlen;
        char   *prepath; /* relative path under the share to mount to */
 #ifdef CONFIG_CIFS_DFS_UPCALL
        char   *mountdata; /* mount options received at mount time */
 #endif
        struct backing_dev_info bdi;
+       struct delayed_work prune_tlinks;
 };
 #endif                         /* _CIFS_FS_SB_H */