All of lore.kernel.org
 help / color / mirror / Atom feed
From: Timothy Shimmin <tes@sgi.com>
To: Jeff Layton <jlayton@redhat.com>
Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
	xfs-oss <xfs@oss.sgi.com>
Subject: Re: [PATCH 2/4] Fix mainline filesystems to handle ATTR_KILL_ bits correctly
Date: Tue, 21 Aug 2007 15:35:08 +1000	[thread overview]
Message-ID: <46CA798C.1020101@sgi.com> (raw)
In-Reply-To: <200708202053.l7KKrMYv017763@dantu.rdu.redhat.com>

Jeff Layton wrote:
> This should fix all of the filesystems in the mainline kernels to handle
> ATTR_KILL_SUID and ATTR_KILL_SGID correctly. For most of them, this is
> just a matter of making sure that they call generic_attrkill early in
> the setattr inode op.
> 
> Signed-off-by: Jeff Layton <jlayton@redhat.com>
> ---
>  fs/xfs/linux-2.6/xfs_iops.c               |    5 ++++-
> --- a/fs/xfs/linux-2.6/xfs_iops.c
> +++ b/fs/xfs/linux-2.6/xfs_iops.c
> @@ -651,12 +651,15 @@ xfs_vn_setattr(
>  	struct iattr	*attr)
>  {
>  	struct inode	*inode = dentry->d_inode;
> -	unsigned int	ia_valid = attr->ia_valid;
> +	unsigned int	ia_valid;
>  	bhv_vnode_t	*vp = vn_from_inode(inode);
>  	bhv_vattr_t	vattr = { 0 };
>  	int		flags = 0;
>  	int		error;
>  
> +	generic_attrkill(inode->i_mode, attr);
> +	ia_valid = attr->ia_valid;
> +
>  	if (ia_valid & ATTR_UID) {
>  		vattr.va_mask |= XFS_AT_UID;
>  		vattr.va_uid = attr->ia_uid;

Looks reasonable to me for XFS.
Acked-by: Tim Shimmin <tes@sgi.com>

So before, this clearing would happen directly in notify_change()
and now this won't happen until notify_change() calls i_op->setattr
which for a particular fs it can call generic_attrkill() to do it.
So I guess for the cases where i_op->setattr is called outside of
via notify_change, we don't normally have ATTR_KILL_SUID/SGID
set so that nothing will happen there?
I guess just wondering the effect with having the code on all
setattr's. (I'm not familiar with the code path)

--Tim

  parent reply	other threads:[~2007-08-21  5:35 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-08-20 20:53 [Cluster-devel] [PATCH 2/4] Fix mainline filesystems to handle ATTR_KILL_ bits correctly Jeff Layton
2007-08-20 20:53 ` Jeff Layton
2007-08-20 20:53 ` Jeff Layton
2007-08-20 21:07 ` [Jfs-discussion] " Dave Kleikamp
2007-08-21  5:35 ` Timothy Shimmin [this message]
2007-08-21 11:35   ` Jeff Layton
2007-08-21 21:21     ` Josef Sipek
2007-08-21 22:23       ` Jeff Layton
2007-08-28  1:37         ` Timothy Shimmin
2007-08-21 15:04 ` Jan Harkes

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=46CA798C.1020101@sgi.com \
    --to=tes@sgi.com \
    --cc=jlayton@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --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.