summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent-tree.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-07-10 19:16:43 +1000
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2012-07-10 19:16:43 +1000
commit50bba07d6a16ce4a3b4f6abb44bfd3645c046ef6 (patch)
treec76f080377dd611857fa33f38a2b8a2af4576f8b /fs/btrfs/extent-tree.c
parenta8b91e43afd736fcebb0836359e5ddaeae45b2ab (diff)
parent50fb31cfed9218b439360caf7c0399b00042da15 (diff)
downloadblackbird-op-linux-50bba07d6a16ce4a3b4f6abb44bfd3645c046ef6.tar.gz
blackbird-op-linux-50bba07d6a16ce4a3b4f6abb44bfd3645c046ef6.zip
Merge branch 'merge' into next
We want to bring in the latest IRQ fixes
Diffstat (limited to 'fs/btrfs/extent-tree.c')
-rw-r--r--fs/btrfs/extent-tree.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 4b5a1e1bdefb..6e1d36702ff7 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -2347,12 +2347,10 @@ next:
return count;
}
-
static void wait_for_more_refs(struct btrfs_delayed_ref_root *delayed_refs,
- unsigned long num_refs)
+ unsigned long num_refs,
+ struct list_head *first_seq)
{
- struct list_head *first_seq = delayed_refs->seq_head.next;
-
spin_unlock(&delayed_refs->lock);
pr_debug("waiting for more refs (num %ld, first %p)\n",
num_refs, first_seq);
@@ -2381,6 +2379,7 @@ int btrfs_run_delayed_refs(struct btrfs_trans_handle *trans,
struct btrfs_delayed_ref_root *delayed_refs;
struct btrfs_delayed_ref_node *ref;
struct list_head cluster;
+ struct list_head *first_seq = NULL;
int ret;
u64 delayed_start;
int run_all = count == (unsigned long)-1;
@@ -2436,8 +2435,10 @@ again:
*/
consider_waiting = 1;
num_refs = delayed_refs->num_entries;
+ first_seq = root->fs_info->tree_mod_seq_list.next;
} else {
- wait_for_more_refs(delayed_refs, num_refs);
+ wait_for_more_refs(delayed_refs,
+ num_refs, first_seq);
/*
* after waiting, things have changed. we
* dropped the lock and someone else might have
OpenPOWER on IntegriCloud