Add 'dmu_tx' kstats entry
[zfs.git] / include / sys / zfs_vfsops.h
index ae5f811..7b70f32 100644 (file)
@@ -43,6 +43,7 @@ struct znode;
 
 typedef struct zfs_sb {
        struct super_block *z_sb;       /* generic super_block */
+       struct backing_dev_info z_bdi;  /* generic backing dev info */
        struct zfs_sb   *z_parent;      /* parent fs */
        objset_t        *z_os;          /* objset reference */
        uint64_t        z_flags;        /* super_block flags */
@@ -66,7 +67,8 @@ typedef struct zfs_sb {
        boolean_t       z_unmounted;    /* unmounted */
        rrwlock_t       z_teardown_lock;
        krwlock_t       z_teardown_inactive_lock;
-       list_t          z_all_znodes;   /* all vnodes in the fs */
+       list_t          z_all_znodes;   /* all znodes in the fs */
+       uint64_t        z_nr_znodes;    /* number of znodes in the fs */
        kmutex_t        z_znodes_lock;  /* lock for z_all_znodes */
        struct inode    *z_ctldir;      /* .zfs directory inode */
        boolean_t       z_show_ctldir;  /* expose .zfs in the root dir */
@@ -75,6 +77,7 @@ typedef struct zfs_sb {
        boolean_t       z_use_fuids;    /* version allows fuids */
        boolean_t       z_replay;       /* set during ZIL replay */
        boolean_t       z_use_sa;       /* version allow system attributes */
+       boolean_t       z_xattr_sa;     /* allow xattrs to be stores as SA */
        uint64_t        z_version;      /* ZPL version */
        uint64_t        z_shares_dir;   /* hidden shares dir */
        kmutex_t        z_lock;
@@ -110,10 +113,10 @@ typedef struct zfs_sb {
 
 /*
  * Allow a maximum number of links.  While ZFS does not internally limit
- * this most Linux filesystems do.  It's probably a good idea to limit
- * this to a large value until it is validated that this is safe.
+ * this the inode->i_nlink member is defined as an unsigned int.  To be
+ * safe we use 2^31-1 as the limit.
  */
-#define ZFS_LINK_MAX           65536
+#define ZFS_LINK_MAX           ((1U << 31) - 1U)
 
 /*
  * Normal filesystems (those not under .zfs/snapshot) have a total
@@ -178,8 +181,14 @@ extern boolean_t zfs_owner_overquota(zfs_sb_t *zsb, struct znode *,
 extern boolean_t zfs_fuid_overquota(zfs_sb_t *zsb, boolean_t isgroup,
     uint64_t fuid);
 extern int zfs_set_version(zfs_sb_t *zsb, uint64_t newvers);
+extern int zfs_get_zplprop(objset_t *os, zfs_prop_t prop,
+    uint64_t *value);
 extern int zfs_sb_create(const char *name, zfs_sb_t **zsbp);
+extern int zfs_sb_setup(zfs_sb_t *zsb, boolean_t mounting);
 extern void zfs_sb_free(zfs_sb_t *zsb);
+extern int zfs_sb_prune(struct super_block *sb, unsigned long nr_to_scan,
+    int *objects);
+extern int zfs_sb_teardown(zfs_sb_t *zsb, boolean_t unmounting);
 extern int zfs_check_global_label(const char *dsname, const char *hexsl);
 extern boolean_t zfs_is_readonly(zfs_sb_t *zsb);