diff options
Diffstat (limited to 'fs/btrfs/extent_map.c')
| -rw-r--r-- | fs/btrfs/extent_map.c | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c index be94030e1dfb..138afa955370 100644 --- a/fs/btrfs/extent_map.c +++ b/fs/btrfs/extent_map.c @@ -763,7 +763,13 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end,  			goto next;  		} +		flags = em->flags;  		clear_bit(EXTENT_FLAG_PINNED, &em->flags); +		/* +		 * In case we split the extent map, we want to preserve the +		 * EXTENT_FLAG_LOGGING flag on our extent map, but we don't want +		 * it on the new extent maps. +		 */  		clear_bit(EXTENT_FLAG_LOGGING, &flags);  		modified = !list_empty(&em->list); @@ -774,7 +780,6 @@ void btrfs_drop_extent_map_range(struct btrfs_inode *inode, u64 start, u64 end,  		if (em->start >= start && em_end <= end)  			goto remove_em; -		flags = em->flags;  		gen = em->generation;  		compressed = test_bit(EXTENT_FLAG_COMPRESSED, &em->flags); |