On 17/06/20 23:00, Steven Rostedt wrote: > > What happened to this work? Nobody has acked it or queued it. Al? Paolo > -- 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(-) >> >