All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.