From: Brian Foster <bfoster@redhat.com>
To: Carlos Maiolino <cmaiolino@redhat.com>
Cc: xfs@oss.sgi.com
Subject: Re: [PATCH 1/2] xfs_vn_rename by xfs_vn_rename2
Date: Thu, 16 Oct 2014 17:04:57 -0400 [thread overview]
Message-ID: <20141016210457.GA33732@bfoster.bfoster> (raw)
In-Reply-To: <1413397042-32229-2-git-send-email-cmaiolino@redhat.com>
On Wed, Oct 15, 2014 at 03:17:21PM -0300, Carlos Maiolino wrote:
> To be able to support RENAME_EXCHANGE flag from renameat2() system call, XFS
> must have its inode_operations updated, exporting .rename2 method, instead of
> .rename.
>
> This patch just replaces the (now old) .rename method by .rename2, using the
> same infra-structure, but checking rename flags.
>
> calls to .rename2 using RENAME_EXCHANGE flag, although now handled inside XFS,
> still returns -EINVAL.
>
> RENAME_NOREPLACE is handled via VFS and we don't need to care about it inside
> xfs_vn_rename2.
>
> Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> ---
> fs/xfs/xfs_iops.c | 17 +++++++++++------
> 1 file changed, 11 insertions(+), 6 deletions(-)
>
> diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
> index 7212949..b2b92c7 100644
> --- a/fs/xfs/xfs_iops.c
> +++ b/fs/xfs/xfs_iops.c
> @@ -379,22 +379,27 @@ xfs_vn_symlink(
> }
>
> STATIC int
> -xfs_vn_rename(
> +xfs_vn_rename2(
The function rename seems unnecessary..? Meh, not a big deal to me
either way. Otherwise, this one seems Ok.
Brian
> struct inode *odir,
> struct dentry *odentry,
> struct inode *ndir,
> - struct dentry *ndentry)
> + struct dentry *ndentry,
> + unsigned int flags)
> {
> struct inode *new_inode = ndentry->d_inode;
> struct xfs_name oname;
> struct xfs_name nname;
>
> + /* XFS does not support RENAME_EXCHANGE yet */
> + if (flags & ~RENAME_NOREPLACE)
> + return -EINVAL;
> +
> xfs_dentry_to_name(&oname, odentry, 0);
> xfs_dentry_to_name(&nname, ndentry, odentry->d_inode->i_mode);
>
> return xfs_rename(XFS_I(odir), &oname, XFS_I(odentry->d_inode),
> - XFS_I(ndir), &nname, new_inode ?
> - XFS_I(new_inode) : NULL);
> + XFS_I(ndir), &nname,
> + new_inode ? XFS_I(new_inode) : NULL);
> }
>
> /*
> @@ -1117,7 +1122,7 @@ static const struct inode_operations xfs_dir_inode_operations = {
> */
> .rmdir = xfs_vn_unlink,
> .mknod = xfs_vn_mknod,
> - .rename = xfs_vn_rename,
> + .rename2 = xfs_vn_rename2,
> .get_acl = xfs_get_acl,
> .set_acl = xfs_set_acl,
> .getattr = xfs_vn_getattr,
> @@ -1145,7 +1150,7 @@ static const struct inode_operations xfs_dir_ci_inode_operations = {
> */
> .rmdir = xfs_vn_unlink,
> .mknod = xfs_vn_mknod,
> - .rename = xfs_vn_rename,
> + .rename2 = xfs_vn_rename2,
> .get_acl = xfs_get_acl,
> .set_acl = xfs_set_acl,
> .getattr = xfs_vn_getattr,
> --
> 2.1.0
>
> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2014-10-16 21:05 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-15 18:17 [PATCH 0/2] Add support to RENAME_EXCHANGE flat to XFS Carlos Maiolino
2014-10-15 18:17 ` [PATCH 1/2] xfs_vn_rename by xfs_vn_rename2 Carlos Maiolino
2014-10-16 21:04 ` Brian Foster [this message]
2014-10-17 9:35 ` Christoph Hellwig
2014-10-21 12:56 ` Carlos Maiolino
2014-10-15 18:17 ` [PATCH 2/2] Add support to RENAME_EXCHANGE flag Carlos Maiolino
2014-10-16 21:05 ` Brian Foster
2014-10-20 0:25 ` Dave Chinner
2014-10-21 13:02 ` Carlos Maiolino
2014-11-07 19:05 ` [PATCH 0/2] Add support to RENAME_EXCHANGE flat to XFS Christoph Hellwig
2014-11-10 12:29 ` Carlos Maiolino
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=20141016210457.GA33732@bfoster.bfoster \
--to=bfoster@redhat.com \
--cc=cmaiolino@redhat.com \
--cc=xfs@oss.sgi.com \
/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.