From: Carlos Maiolino <cmaiolino@redhat.com>
To: linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v2 00/18] Xattr inode operation removal
Date: Thu, 26 May 2016 21:39:17 +0200 [thread overview]
Message-ID: <20160526193917.GD734@redhat.com> (raw)
In-Reply-To: <1463742875-9836-1-git-send-email-agruenba@redhat.com>
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@redhat.com>
> 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@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Carlos
prev parent reply other threads:[~2016-05-26 19:39 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-20 11:14 [PATCH v2 00/18] Xattr inode operation removal Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 01/18] xattr: Remove unnecessary NULL attribute name check Andreas Gruenbacher
2016-05-26 12:49 ` Carlos Maiolino
2016-05-20 11:14 ` [PATCH v2 02/18] jffs2: Remove jffs2_{get,set,remove}xattr macros Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 03/18] hfs: Switch to generic xattr handlers Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 04/18] kernfs: " Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 05/18] sockfs: getxattr: Fail with -EOPNOTSUPP for invalid attribute names Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 06/18] sockfs: Get rid of getxattr iop Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 07/18] ecryptfs: Switch to generic xattr handlers Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 08/18] overlayfs: " Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 09/18] fuse: " Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 10/18] evm: Turn evm_update_evmxattr into void function Andreas Gruenbacher
2016-05-25 5:30 ` James Morris
2016-05-25 11:08 ` Mimi Zohar
2016-05-20 11:14 ` [PATCH v2 11/18] vfs: Move xattr_resolve_name to the front of fs/xattr.c Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 12/18] vfs: Add IOP_XATTR inode operations flag Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 13/18] vfs: Use IOP_XATTR flag for bad-inode handling Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 14/18] libfs: Use IOP_XATTR flag for empty directory handling Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 15/18] xattr: Add __vfs_{get,set,remove}xattr helpers Andreas Gruenbacher
2016-05-25 5:38 ` James Morris
2016-05-20 11:14 ` [PATCH v2 16/18] vfs: Check for the IOP_XATTR flag in listxattr Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 17/18] xattr: Stop calling {get,set,remove}xattr inode operations Andreas Gruenbacher
2016-05-20 11:14 ` [PATCH v2 18/18] vfs: Remove " Andreas Gruenbacher
2016-05-26 19:39 ` Carlos Maiolino [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160526193917.GD734@redhat.com \
--to=cmaiolino@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).