diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/btrfs/extent_io.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index dcce98d0ec4f..0cb88f8146ea 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -2809,8 +2809,13 @@ int try_release_extent_state(struct extent_map_tree *map, | |||
2809 | else { | 2809 | else { |
2810 | if ((mask & GFP_NOFS) == GFP_NOFS) | 2810 | if ((mask & GFP_NOFS) == GFP_NOFS) |
2811 | mask = GFP_NOFS; | 2811 | mask = GFP_NOFS; |
2812 | clear_extent_bit(tree, start, end, EXTENT_UPTODATE, | 2812 | /* |
2813 | 1, 1, NULL, mask); | 2813 | * at this point we can safely clear everything except the |
2814 | * locked bit and the nodatasum bit | ||
2815 | */ | ||
2816 | clear_extent_bit(tree, start, end, | ||
2817 | ~(EXTENT_LOCKED | EXTENT_NODATASUM), | ||
2818 | 0, 0, NULL, mask); | ||
2814 | } | 2819 | } |
2815 | return ret; | 2820 | return ret; |
2816 | } | 2821 | } |