From 9f705501afe6e906ce339b38f6d635c4e2f73eb3 Mon Sep 17 00:00:00 2001 From: Chris Mason Date: Mon, 14 Feb 2011 12:52:08 -0500 Subject: [PATCH] --- yaml --- r: 233231 b: refs/heads/master c: e3f24cc521cb7ba60ac137abd1939e4e03435e80 h: refs/heads/master i: 233229: 2d19a502d5bc45ad724c1c5978ad79600080d90c 233227: b5bd79ea8367a27456f139e0ad0c7af785e85ab7 233223: 74b4a5ca77122a2b067e26c9434dd4772d3f525e 233215: aee49e238ff6655936a0d52d12800afa667474bf v: v3 --- [refs] | 2 +- trunk/fs/btrfs/extent_io.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ccdd3690837b..47c2faacc9f9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: eb14ab8ed24a0405fd056068b28c33a1cd846024 +refs/heads/master: e3f24cc521cb7ba60ac137abd1939e4e03435e80 diff --git a/trunk/fs/btrfs/extent_io.c b/trunk/fs/btrfs/extent_io.c index 0418bf2c9757..e7aeba242701 100644 --- a/trunk/fs/btrfs/extent_io.c +++ b/trunk/fs/btrfs/extent_io.c @@ -2822,9 +2822,17 @@ int try_release_extent_state(struct extent_map_tree *map, * at this point we can safely clear everything except the * locked bit and the nodatasum bit */ - clear_extent_bit(tree, start, end, + ret = clear_extent_bit(tree, start, end, ~(EXTENT_LOCKED | EXTENT_NODATASUM), 0, 0, NULL, mask); + + /* if clear_extent_bit failed for enomem reasons, + * we can't allow the release to continue. + */ + if (ret < 0) + ret = 0; + else + ret = 1; } return ret; }