Thread (26 messages) 26 messages, 6 authors, 2011-01-03

Re: [PATCH -V4 08/11] vfs: Add new file and directory create permission flags

From: Andreas Dilger <hidden>
Date: 2011-01-03 05:59:00
Also in: linux-fsdevel, lkml

Never mind, I didn't notice this was only for hard linking directories...

Cheers, Andreas

On 2011-01-02, at 22:20, Andreas Dilger [off-list ref] wrote:
Actually, I think it is required by POSIX that EXDEV is returned when cross-linking files. For mv calling rename() at least it uses a return EXDEV to copy the file to the target filesystem instead of just giving up and returning an error. It may be other applications like tar have a similar dependency for link(). 

Cheers, Andreas

On 2011-01-02, at 16:21, Ted Ts'o [off-list ref] wrote:
quoted
I was going through some old patches in the ext4 patchwork list, and
came across this.  It looks like this patch has never been applied to
mainline.  If it's a "clear improvement", any reason not to submit it?

Regards,

                                       - Ted

On Mon, Sep 27, 2010 at 03:14:00PM +0200, Andreas Gruenbacher wrote:
quoted
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
--
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
--
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help