]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: remove dead snapshot-aware defrag code
authorOmar Sandoval <osandov@fb.com>
Tue, 3 Dec 2019 01:34:18 +0000 (17:34 -0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 20 Jan 2020 15:40:54 +0000 (16:40 +0100)
commitacab507cc943c23c2e71dbf0625cf5bf0802b5a9
tree826776f72eece263cf99594708e9c173f386f52a
parent108832d519f72d5ae219f6137dc885518573872d
btrfs: remove dead snapshot-aware defrag code

Snapshot-aware defrag has been disabled since commit 860576292e17
("Btrfs: disable snapshot aware defrag for now") almost 6 years ago.
Let's remove the dead code. If someone is up to the task of bringing it
back, they can dig it up from git.

This is logically a revert of commit 051faae2bb5c ("Btrfs:
snapshot-aware defrag") except that now we have to clear the
EXTENT_DEFRAG bit to avoid need_force_cow() returning true forever.

The reasons to disable were caused by runtime problems (like long stalls
or memory consumption) on heavily referenced extents (eg. thousands of
snapshots). There were attempts to fix that but never finished.

Current defrag breaks the extent references and some users prefer that
behaviour over the one implemented by snapshot aware (ie. keeping links
for defragmentation).  To enable both usecases we'd need to extend
defrag ioctl but let's do that properly from scratch.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Omar Sandoval <osandov@fb.com>
Reviewed-by: David Sterba <dsterba@suse.com>
[ enhance ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c