btrfs: qgroup: Move reserved data accounting from btrfs_delayed_ref_head to btrfs_qgr...
[sfrench/cifs-2.6.git] / fs / btrfs / qgroup.h
index 5e93733b78c84fa2dbf0fbde21f85d854f15e438..46ba7bd2961cd1edcbbabb341b3fb350416e929b 100644 (file)
@@ -107,6 +107,17 @@ struct btrfs_qgroup_extent_record {
        struct rb_node node;
        u64 bytenr;
        u64 num_bytes;
+
+       /*
+        * For qgroup reserved data space freeing.
+        *
+        * @data_rsv_refroot and @data_rsv will be recorded after
+        * BTRFS_ADD_DELAYED_EXTENT is called.
+        * And will be used to free reserved qgroup space at
+        * transaction commit time.
+        */
+       u32 data_rsv;           /* reserved data space needs to be freed */
+       u64 data_rsv_refroot;   /* which root the reserved data belongs to */
        struct ulist *old_roots;
 };
 
@@ -326,15 +337,6 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans, u64 srcid,
 void btrfs_qgroup_free_refroot(struct btrfs_fs_info *fs_info,
                               u64 ref_root, u64 num_bytes,
                               enum btrfs_qgroup_rsv_type type);
-static inline void btrfs_qgroup_free_delayed_ref(struct btrfs_fs_info *fs_info,
-                                                u64 ref_root, u64 num_bytes)
-{
-       if (!test_bit(BTRFS_FS_QUOTA_ENABLED, &fs_info->flags))
-               return;
-       trace_btrfs_qgroup_free_delayed_ref(fs_info, ref_root, num_bytes);
-       btrfs_qgroup_free_refroot(fs_info, ref_root, num_bytes,
-                                 BTRFS_QGROUP_RSV_DATA);
-}
 
 #ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 int btrfs_verify_qgroup_counts(struct btrfs_fs_info *fs_info, u64 qgroupid,