]> 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)
commit13b6839a654d977f6e7ac575199f39320ee269a8
tree826776f72eece263cf99594708e9c173f386f52a
parent6e235e017149230cadc57f22ee53e1dba1db5644
btrfs: remove dead snapshot-aware defrag code

Snapshot-aware defrag has been disabled since commit 104a69ae2970
("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 97008d2cf7d7 ("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