From: Andreas Gruenbacher <agruen@suse.de>
To: Jeff Layton <jlayton@redhat.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>,
sfrench@us.ibm.com, ffilz@us.ibm.com, adilger@sun.com,
sandeen@redhat.com, tytso@mit.edu, bfields@citi.umich.edu,
linux-fsdevel@vger.kernel.org, nfsv4@linux-nfs.org,
linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH -V4 08/11] vfs: Add new file and directory create permission flags
Date: Mon, 27 Sep 2010 15:14:00 +0200 [thread overview]
Message-ID: <201009271514.00279.agruen@suse.de> (raw)
In-Reply-To: <20100924115423.530813c3@tlielax.poochiereds.net>
On Friday 24 September 2010 17:54:23 Jeff Layton wrote:
> On Fri, 24 Sep 2010 18:18:11 +0530
> "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com> wrote:
> > @@ -2415,7 +2418,7 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de
> > if (!inode)
> > return -ENOENT;
> >
> > - error = may_create(dir, new_dentry);
> > + error = may_create(dir, new_dentry, S_ISDIR(inode->i_mode));
>
> ^^^^ this is a little
> scary, but even if it's
> a directory, it'll get
> kicked out in a later
> check. Would it be
> clearer to move up the
> S_ISDIR() check in this
> function and then pass
> this in as false?
Ah, you mean this:
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -2450,7 +2450,9 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de
if (!inode)
return -ENOENT;
- error = may_create(dir, new_dentry, S_ISDIR(inode->i_mode));
+ if (S_ISDIR(inode->i_mode))
+ return -EPERM;
+ error = may_create(dir, new_dentry, 0);
if (error)
return error;
@@ -2464,8 +2466,6 @@ int vfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_de
return -EPERM;
if (!dir->i_op->link)
return -EPERM;
- if (S_ISDIR(inode->i_mode))
- return -EPERM;
error = security_inode_link(old_dentry, dir, new_dentry);
if (error)
This is a clear improvement; I don't think it matters that user-space will
get -EPERM instead of -EXDEV when trying to hard-link a directory across
devices.
Thanks,
Andreas
next prev parent reply other threads:[~2010-09-27 13:14 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-24 12:48 [PATCH -V4 00/11] New ACL format for better NFSv4 acl interoperability Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 01/11] vfs: Indicate that the permission functions take all the MAY_* flags Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 02/11] vfs: Pass all mask flags down to iop->check_acl Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 03/11] vfs: Add a comment to inode_permission() Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 04/11] vfs: Add generic IS_ACL() test for acl support Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 05/11] vfs: Add IS_RICHACL() test for richacl support Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 06/11] vfs: Optimize out IS_RICHACL() if CONFIG_FS_RICHACL is not defined Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 07/11] vfs: Make acl_permission_check() work for richacls Aneesh Kumar K.V
2010-09-24 15:50 ` Jeff Layton
2010-09-24 18:55 ` Aneesh Kumar K. V
2010-09-27 13:03 ` Andreas Gruenbacher
2010-09-24 12:48 ` [PATCH -V4 08/11] vfs: Add new file and directory create permission flags Aneesh Kumar K.V
2010-09-24 15:54 ` Jeff Layton
2010-09-24 19:16 ` Aneesh Kumar K. V
2010-09-24 19:23 ` Jeff Layton
2010-09-27 13:14 ` Andreas Gruenbacher [this message]
2011-01-02 23:21 ` Ted Ts'o
2011-01-03 5:20 ` Andreas Dilger
2011-01-03 5:59 ` Andreas Dilger
2011-01-03 14:20 ` Aneesh Kumar K. V
2010-09-24 12:48 ` [PATCH -V4 09/11] vfs: Add delete child and delete self " Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 10/11] vfs: Make the inode passed to inode_change_ok non-const Aneesh Kumar K.V
2010-09-24 12:48 ` [PATCH -V4 11/11] vfs: Add permission flags for setting file attributes Aneesh Kumar K.V
2010-10-12 0:24 ` [PATCH -V4 00/11] New ACL format for better NFSv4 acl interoperability J. Bruce Fields
2010-10-12 7:17 ` Aneesh Kumar K. V
2010-10-12 15:35 ` J. Bruce Fields
2010-10-25 19:09 ` J. Bruce Fields
2010-10-26 4:35 ` Aneesh Kumar K. V
2010-11-01 15:30 ` J. Bruce Fields
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=201009271514.00279.agruen@suse.de \
--to=agruen@suse.de \
--cc=adilger@sun.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=bfields@citi.umich.edu \
--cc=ffilz@us.ibm.com \
--cc=jlayton@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nfsv4@linux-nfs.org \
--cc=sandeen@redhat.com \
--cc=sfrench@us.ibm.com \
--cc=tytso@mit.edu \
/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
all inboxes | Powered by JetHome®