diff options
| -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 | } |
