What happened to this work? -- Steve On Mon, 4 May 2020 11:00:25 +0200 Emanuele Giuseppe Esposito <eesposit@xxxxxxxxxx> wrote: > libfs.c has many functions that are useful to implement dentry and inode > operations, but not many at the filesystem level. As a result, code to > create files and inodes has a lot of duplication, to the point that > tracefs has copied several hundred lines from debugfs. > > The main two libfs.c functions for filesystems are simple_pin_fs and > simple_release_fs, which hide a somewhat complicated locking sequence > that is needed to serialize vfs_kern_mount and mntget. In this series, > my aim is to add functions that create dentries and inodes of various > kinds (either anonymous inodes, or directory/file/symlink). These > functions take the code that was duplicated across debugfs and tracefs > and move it to libfs.c. > > In order to limit the number of arguments to the new functions, the > series first creates a data type that is passed to both > simple_pin_fs/simple_release_fs and the new creation functions. The new > struct, introduced in patch 2, simply groups the "mount" and "count" > arguments to simple_pin_fs and simple_release_fs. > > Patches 1-4 are preparations to introduce the new simple_fs struct and > new functions that are useful in the remainder of the series. Patch 5 > introduces the dentry and inode creation functions. Patch 6-7 can then > adopt them in debugfs and tracefs. > > Signed-off-by: Emanuele Giuseppe Esposito <eesposit@xxxxxxxxxx> > > v1->v2: rename simple_new_inode in new_inode_current_time, > more detailed explanations, put all common code in fs/libfs.c > > v2->v3: remove unused debugfs_get_inode and tracefs_get_inode > functions > > Emanuele Giuseppe Esposito (7): > apparmor: just use vfs_kern_mount to make .null > libfs: wrap simple_pin_fs/simple_release_fs arguments in a struct > libfs: introduce new_inode_current_time > libfs: add alloc_anon_inode wrapper > libfs: add file creation functions > debugfs: switch to simplefs inode creation API > tracefs: switch to simplefs inode creation API > > drivers/gpu/drm/drm_drv.c | 11 +- > drivers/misc/cxl/api.c | 13 +- > drivers/scsi/cxlflash/ocxl_hw.c | 14 +- > fs/binfmt_misc.c | 9 +- > fs/configfs/mount.c | 10 +- > fs/debugfs/inode.c | 169 +++--------------- > fs/libfs.c | 299 ++++++++++++++++++++++++++++++-- > fs/tracefs/inode.c | 106 ++--------- > include/linux/fs.h | 31 +++- > security/apparmor/apparmorfs.c | 38 ++-- > security/inode.c | 11 +- > 11 files changed, 399 insertions(+), 312 deletions(-) >