]> git.proxmox.com Git - mirror_zfs.git/blobdiff - include/sys/zfs_vfsops.h
Add support for user/group dnode accounting & quota
[mirror_zfs.git] / include / sys / zfs_vfsops.h
index 28407c6f76fe1c725b3a56aff10e6d7bccaa0129..b59ace5b1996b151ee06ea0e4ad7b0384d8e1ee9 100644 (file)
@@ -110,10 +110,13 @@ typedef struct zfs_sb {
        kmutex_t        z_lock;
        uint64_t        z_userquota_obj;
        uint64_t        z_groupquota_obj;
+       uint64_t        z_userobjquota_obj;
+       uint64_t        z_groupobjquota_obj;
        uint64_t        z_replay_eof;   /* New end of file - replay only */
        sa_attr_type_t  *z_attr_table;  /* SA attr mapping->id */
-#define        ZFS_OBJ_MTX_SZ  256
-       kmutex_t        *z_hold_mtx;    /* znode hold locks */
+       uint64_t        z_hold_size;    /* znode hold array size */
+       avl_tree_t      *z_hold_trees;  /* znode hold trees */
+       kmutex_t        *z_hold_locks;  /* znode hold locks */
 } zfs_sb_t;
 
 #define        ZFS_SUPER_MAGIC 0x2fc12fc1
@@ -189,6 +192,8 @@ extern boolean_t zfs_owner_overquota(zfs_sb_t *zsb, struct znode *,
     boolean_t isgroup);
 extern boolean_t zfs_fuid_overquota(zfs_sb_t *zsb, boolean_t isgroup,
     uint64_t fuid);
+extern boolean_t zfs_fuid_overobjquota(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);