From a200b604964b191ffbb4cca51156a948086930d6 Mon Sep 17 00:00:00 2001 From: Liu Bo Date: Fri, 6 Jul 2012 03:31:33 -0600 Subject: [PATCH] --- yaml --- r: 318853 b: refs/heads/master c: 067893842341e7b7487062367ecfaa46c97505e0 h: refs/heads/master i: 318851: 68d39a149412a5e3a7733292dc9dfa54356502a0 v: v3 --- [refs] | 2 +- trunk/fs/btrfs/extent-tree.c | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 38a703f4d3dd..ebc24f35aa3c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 83eea1f1bacd5dc7b44dcf84f5fdca54fdea5453 +refs/heads/master: 067893842341e7b7487062367ecfaa46c97505e0 diff --git a/trunk/fs/btrfs/extent-tree.c b/trunk/fs/btrfs/extent-tree.c index d1ebd2a06116..67bd12a52369 100644 --- a/trunk/fs/btrfs/extent-tree.c +++ b/trunk/fs/btrfs/extent-tree.c @@ -5748,7 +5748,11 @@ static noinline int find_free_extent(struct btrfs_trans_handle *trans, ret = do_chunk_alloc(trans, root, num_bytes + 2 * 1024 * 1024, data, CHUNK_ALLOC_LIMITED); - if (ret < 0) { + /* + * Do not bail out on ENOSPC since we + * can do more things. + */ + if (ret < 0 && ret != -ENOSPC) { btrfs_abort_transaction(trans, root, ret); goto out;