|
@@ -72,7 +72,23 @@ int btrfs_qgroup_inherit(struct btrfs_trans_handle *trans,
|
|
|
struct btrfs_fs_info *fs_info, u64 srcid, u64 objectid,
|
|
|
struct btrfs_qgroup_inherit *inherit);
|
|
|
int btrfs_qgroup_reserve(struct btrfs_root *root, u64 num_bytes);
|
|
|
-void btrfs_qgroup_free(struct btrfs_root *root, u64 num_bytes);
|
|
|
+void btrfs_qgroup_free_refroot(struct btrfs_fs_info *fs_info,
|
|
|
+ u64 ref_root, u64 num_bytes);
|
|
|
+static inline void btrfs_qgroup_free(struct btrfs_root *root, u64 num_bytes)
|
|
|
+{
|
|
|
+ return btrfs_qgroup_free_refroot(root->fs_info, root->objectid,
|
|
|
+ num_bytes);
|
|
|
+}
|
|
|
+
|
|
|
+/*
|
|
|
+ * TODO: Add proper trace point for it, as btrfs_qgroup_free() is
|
|
|
+ * called by everywhere, can't provide good trace for delayed ref case.
|
|
|
+ */
|
|
|
+static inline void btrfs_qgroup_free_delayed_ref(struct btrfs_fs_info *fs_info,
|
|
|
+ u64 ref_root, u64 num_bytes)
|
|
|
+{
|
|
|
+ btrfs_qgroup_free_refroot(fs_info, ref_root, num_bytes);
|
|
|
+}
|
|
|
|
|
|
void assert_qgroups_uptodate(struct btrfs_trans_handle *trans);
|
|
|
|