btrfs: let tree defrag work in SSD mode
Long time ago (2008) the defrag was automatic for new b-tree writes but has been disabled after performance problems. There was a leftover in tree-defrag.c that effectively stops any defragmentation on b-trees. This is a bit unexpected and IMHO undesired. The SSD mode is an optimization and defrag is supposed to work if the users asks for it. Related commits:6702ed490cBtrfs: Add run time btree defrag, and an ioctl to force btree defrage18e4809b1Btrfs: Add mount -o ssd, which includes optimizations for seek free storageb3236e68bfBtrfs: Leave on the tree defragger in mount -o ssd, it still helps there9afbb0b752Btrfs: Disable tree defrag in SSD mode The last three commits switch the defrag+ssd off/on/off and the last one3f157a2fd2Btrfs: Online btree defragmentation fixes misses the bits from tree-defrag.c to revert to the behaviour introduced ine18e4809b1. Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
committed by
Chris Mason
parent
53e489bc8c
commit
13028901a4
@@ -52,9 +52,6 @@ int btrfs_defrag_leaves(struct btrfs_trans_handle *trans,
|
|||||||
if (!test_bit(BTRFS_ROOT_REF_COWS, &root->state))
|
if (!test_bit(BTRFS_ROOT_REF_COWS, &root->state))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (btrfs_test_opt(root, SSD))
|
|
||||||
goto out;
|
|
||||||
|
|
||||||
path = btrfs_alloc_path();
|
path = btrfs_alloc_path();
|
||||||
if (!path)
|
if (!path)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|||||||
Reference in New Issue
Block a user