Re: [PATCH v2 00/18] Xattr inode operation removal

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

 



On Fri, May 20, 2016 at 01:14:17PM +0200, Andreas Gruenbacher wrote:
> This is version 2 of the xattr inode operation removal patch series. The
> patches are available in git form at:
> 
>   https://git.kernel.org/cgit/linux/kernel/git/agruen/linux.git/log/?h=work.xattr
> 

I just finished some tests on this patch, afaict, I couldn't find any
regressions, you can add:

Tested-by: Carlos Maiolino <cmaiolino@xxxxxxxxxx>

> The purpose of this series is to remove unnecessary differences between the
> xattr implementations on different filesystems and to simplify things.  With
> the exception of redirectors like fuse, overlayfs, and ecryptfs, all
> filesystems perform some de-multiplexing based on the xattr name, so it makes
> sense to make that the default; filesystems that don't do any de-multiplexing
> can easily use a catch-all xattr handler.
> 
> The patch series is structured as follows:
> 
>  * The initial patches convert the remaining filesystems over to use xattr
>    handlers for implementing their de-multiplexing.
> 
>  * Next, a new IOP_XATTR inode operations flag is introduced: the flag is set
>    when an inode supports xattrs.  On most filesystems, the IOP_XATTR flag is
>    automatically initialized correctly when the inode is allocated based on
>    whether or not the s_xattr field in the inode's superblock is defined.
>    Filesystems that support xattrs on some but not all inodes can clear the
>    IOP_XATTR flag appropriately.
> 
>  * The IOP_XATTR flag is then used to get rid of the two remaining places where
>    xattr inode operations other than the generic ones are used: bad inodes and
>    libfs empty directories.
> 
>  * After that, we get rid of the remaining direct accesses to xattr inode
>    operations.
> 
>  * Finally, we stop calling the xattr inode operations and remove them.
> 
> Note that these patches only remove the getxattr, setxattr, and removexattr
> inode operations. The listxattr inode operation does not do any attribute name
> de-multiplexing, and remains unchanged except for checking the new IOP_XATTR
> flag as well now.
> 
> Note that this patch series still breaks Lustre.  I'm hoping that the Lustre
> developers will come up with a patch to switch lustre over to use xattr
> handlers.
> 
> Thanks,
> Andreas
> 
> Andreas Gruenbacher (18):
>   xattr: Remove unnecessary NULL attribute name check
>   jffs2: Remove jffs2_{get,set,remove}xattr macros
>   hfs: Switch to generic xattr handlers
>   kernfs: Switch to generic xattr handlers
>   sockfs: getxattr: Fail with -EOPNOTSUPP for invalid attribute names
>   sockfs: Get rid of getxattr iop
>   ecryptfs: Switch to generic xattr handlers
>   overlayfs: Switch to generic xattr handlers
>   fuse: Switch to generic xattr handlers
>   evm: Turn evm_update_evmxattr into void function
>   vfs: Move xattr_resolve_name to the front of fs/xattr.c
>   vfs: Add IOP_XATTR inode operations flag
>   vfs: Use IOP_XATTR flag for bad-inode handling
>   libfs: Use IOP_XATTR flag for empty directory handling
>   xattr: Add __vfs_{get,set,remove}xattr helpers
>   vfs: Check for the IOP_XATTR flag in listxattr
>   xattr: Stop calling {get,set,remove}xattr inode operations
>   vfs: Remove {get,set,remove}xattr inode operations
> 
>  Documentation/filesystems/Locking     |  24 +++-
>  Documentation/filesystems/vfs.txt     |  45 ++++---
>  arch/ia64/kernel/perfmon.c            |   4 +-
>  drivers/gpu/drm/drm_drv.c             |   1 +
>  fs/9p/vfs_inode_dotl.c                |   9 --
>  fs/aio.c                              |   2 +-
>  fs/anon_inodes.c                      |   2 +-
>  fs/bad_inode.c                        |  21 +--
>  fs/block_dev.c                        |   2 +-
>  fs/btrfs/inode.c                      |  12 --
>  fs/btrfs/tests/btrfs-tests.c          |   2 +-
>  fs/cachefiles/bind.c                  |   4 +-
>  fs/cachefiles/namei.c                 |   4 +-
>  fs/ceph/dir.c                         |   3 -
>  fs/ceph/inode.c                       |   6 -
>  fs/cifs/cifsfs.c                      |   9 --
>  fs/ecryptfs/ecryptfs_kernel.h         |   2 +
>  fs/ecryptfs/inode.c                   |  57 +++++---
>  fs/ecryptfs/main.c                    |   1 +
>  fs/ecryptfs/mmap.c                    |  11 +-
>  fs/ext2/file.c                        |   3 -
>  fs/ext2/namei.c                       |   6 -
>  fs/ext2/symlink.c                     |   6 -
>  fs/ext4/file.c                        |   3 -
>  fs/ext4/namei.c                       |   6 -
>  fs/ext4/symlink.c                     |   9 --
>  fs/f2fs/file.c                        |   3 -
>  fs/f2fs/namei.c                       |  12 --
>  fs/fuse/dir.c                         |  40 ++++--
>  fs/fuse/fuse_i.h                      |   2 +
>  fs/fuse/inode.c                       |   1 +
>  fs/gfs2/inode.c                       |   9 --
>  fs/hfs/attr.c                         |  82 ++++++++----
>  fs/hfs/hfs_fs.h                       |   6 +-
>  fs/hfs/inode.c                        |   5 +-
>  fs/hfs/super.c                        |   1 +
>  fs/hfsplus/dir.c                      |   3 -
>  fs/hfsplus/inode.c                    |   3 -
>  fs/inode.c                            |   2 +
>  fs/jffs2/dir.c                        |   3 -
>  fs/jffs2/file.c                       |   3 -
>  fs/jffs2/symlink.c                    |   3 -
>  fs/jffs2/xattr.h                      |   6 -
>  fs/jfs/file.c                         |   3 -
>  fs/jfs/namei.c                        |   3 -
>  fs/jfs/symlink.c                      |   6 -
>  fs/kernfs/dir.c                       |   3 -
>  fs/kernfs/inode.c                     | 153 +++++++++++----------
>  fs/kernfs/kernfs-internal.h           |   6 +-
>  fs/kernfs/mount.c                     |   1 +
>  fs/kernfs/symlink.c                   |   3 -
>  fs/libfs.c                            |  24 +---
>  fs/nfs/nfs3proc.c                     |   6 -
>  fs/nfs/nfs4proc.c                     |   6 -
>  fs/nsfs.c                             |   2 +-
>  fs/ocfs2/file.c                       |   3 -
>  fs/ocfs2/namei.c                      |   3 -
>  fs/ocfs2/symlink.c                    |   3 -
>  fs/orangefs/inode.c                   |   3 -
>  fs/orangefs/namei.c                   |   3 -
>  fs/orangefs/symlink.c                 |   1 -
>  fs/overlayfs/copy_up.c                |   4 +-
>  fs/overlayfs/dir.c                    |   3 -
>  fs/overlayfs/inode.c                  |  46 +++++--
>  fs/overlayfs/overlayfs.h              |   6 +-
>  fs/overlayfs/super.c                  |   5 +-
>  fs/pipe.c                             |   2 +-
>  fs/reiserfs/file.c                    |   3 -
>  fs/reiserfs/namei.c                   |   9 --
>  fs/squashfs/inode.c                   |   1 -
>  fs/squashfs/namei.c                   |   1 -
>  fs/squashfs/symlink.c                 |   1 -
>  fs/squashfs/xattr.h                   |   1 -
>  fs/ubifs/dir.c                        |   3 -
>  fs/ubifs/file.c                       |   6 -
>  fs/xattr.c                            | 245 +++++++++++++++++-----------------
>  fs/xfs/xfs_iops.c                     |  12 --
>  include/linux/fs.h                    |   6 +-
>  include/linux/xattr.h                 |   6 +-
>  mm/shmem.c                            |  15 ---
>  net/socket.c                          |  59 ++++----
>  security/commoncap.c                  |  25 ++--
>  security/integrity/evm/evm.h          |   7 +-
>  security/integrity/evm/evm_crypto.c   |  20 ++-
>  security/integrity/evm/evm_main.c     |   4 +-
>  security/integrity/ima/ima_appraise.c |  21 ++-
>  security/selinux/hooks.c              |  19 +--
>  security/smack/smack_lsm.c            |  12 +-
>  88 files changed, 529 insertions(+), 683 deletions(-)
> 
> -- 
> 2.5.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

-- 
Carlos
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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