From 02d6b1f7e01aebbfa23a72e652d90d8863aaf73c Mon Sep 17 00:00:00 2001 From: Chris Mason Date: Wed, 23 Sep 2009 20:28:46 -0400 Subject: [PATCH] --- yaml --- r: 165918 b: refs/heads/master c: 11ef160fda9c150cd75db77194bcc66839709662 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/btrfs/extent_io.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 06b42f164bbe..c39b6830b6ef 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 46562cec98368623bcd18d7fd30f20c04afd5978 +refs/heads/master: 11ef160fda9c150cd75db77194bcc66839709662 diff --git a/trunk/fs/btrfs/extent_io.c b/trunk/fs/btrfs/extent_io.c index dcce98d0ec4f..0cb88f8146ea 100644 --- a/trunk/fs/btrfs/extent_io.c +++ b/trunk/fs/btrfs/extent_io.c @@ -2809,8 +2809,13 @@ int try_release_extent_state(struct extent_map_tree *map, else { if ((mask & GFP_NOFS) == GFP_NOFS) mask = GFP_NOFS; - clear_extent_bit(tree, start, end, EXTENT_UPTODATE, - 1, 1, NULL, mask); + /* + * at this point we can safely clear everything except the + * locked bit and the nodatasum bit + */ + clear_extent_bit(tree, start, end, + ~(EXTENT_LOCKED | EXTENT_NODATASUM), + 0, 0, NULL, mask); } return ret; }