mbox series

[0/1,NOT,FOR,MERGE] Basic subdir tracking in nlink

Message ID 20200827150426.23842-1-nborisov@suse.com (mailing list archive)
Headers show
Series Basic subdir tracking in nlink | expand

Message

Nikolay Borisov Aug. 27, 2020, 3:04 p.m. UTC
Here are the various bits and pieces needed to have a full-fledged subdir
tracking in nlink. The kernel code is complete and the accompanying fstests
proves that. Nevertheless, progs would need a bit more work, with the attached
progs patch I get only the following tests failing due to progs' nlink code:
	generic/077, generic/107, generic/498 and generic/547

At this point I won't be working anymore on this unless there is a really
compelling argument to do so, however I'm sending the patches now so that if
anyone should feel inclined to finish the work they they can base their efforts
on mine. At this point what's left is:

* Decide how old kernels are supposed to be supported - tree-checker won't allow
them too mount an fs whose hard link counter for directories is != 1. This would
either require an incompat_ro flag or a coordinated effort to backport the patch
to LTS kernels.

* The remaining fstests failures need to be investigated and fixed.

* btrfs-progs lowmem mode would likely consider a filesystem broken so it will
also need to be adjusted.

Nikolay Borisov (1):
  btrfs: Track subdirectories in nlink

 fs/btrfs/inode.c        | 13 +++++++++++--
 fs/btrfs/ioctl.c        | 10 +++++++---
 fs/btrfs/transaction.c  | 12 ++++++++----
 fs/btrfs/tree-checker.c |  7 +------
 4 files changed, 27 insertions(+), 15 deletions(-)

--
2.17.1