linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

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