diff options
author | Chris Mason <chris.mason@oracle.com> | 2009-03-13 10:11:24 -0400 |
---|---|---|
committer | Chris Mason <chris.mason@oracle.com> | 2009-03-24 16:14:26 -0400 |
commit | 1887be66dcc3140a81d1299958a41fc0eedfa64f (patch) | |
tree | 3f0666948a83c48c77e0c37dca1c71a6aff9eb1d /fs/btrfs/delayed-ref.h | |
parent | 44871b1b24b593996db43495cf4484cc580bdc10 (diff) |
Btrfs: try to cleanup delayed refs while freeing extents
When extents are freed, it is likely that we've removed the last
delayed reference update for the extent. This checks the delayed
ref tree when things are freed, and if no ref updates area left it
immediately processes the delayed ref.
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/delayed-ref.h')
-rw-r--r-- | fs/btrfs/delayed-ref.h | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/fs/btrfs/delayed-ref.h b/fs/btrfs/delayed-ref.h index 37919e5c007f..c345fee9f96b 100644 --- a/fs/btrfs/delayed-ref.h +++ b/fs/btrfs/delayed-ref.h | |||
@@ -137,9 +137,8 @@ int btrfs_add_delayed_ref(struct btrfs_trans_handle *trans, | |||
137 | u64 ref_generation, u64 owner_objectid, int action, | 137 | u64 ref_generation, u64 owner_objectid, int action, |
138 | int pin); | 138 | int pin); |
139 | 139 | ||
140 | struct btrfs_delayed_ref * | 140 | struct btrfs_delayed_ref_head * |
141 | btrfs_find_delayed_ref(struct btrfs_trans_handle *trans, u64 bytenr, | 141 | btrfs_find_delayed_ref_head(struct btrfs_trans_handle *trans, u64 bytenr); |
142 | u64 parent); | ||
143 | int btrfs_delayed_ref_pending(struct btrfs_trans_handle *trans, u64 bytenr); | 142 | int btrfs_delayed_ref_pending(struct btrfs_trans_handle *trans, u64 bytenr); |
144 | int btrfs_lock_delayed_ref(struct btrfs_trans_handle *trans, | 143 | int btrfs_lock_delayed_ref(struct btrfs_trans_handle *trans, |
145 | struct btrfs_delayed_ref_node *ref, | 144 | struct btrfs_delayed_ref_node *ref, |