Re: [PATCH v3 0/7] libfs: group and simplify linux fs code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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(-)
>>
> 




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux