lkml.org 
[lkml]   [2011]   [Jan]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH -V4 08/11] vfs: Add new file and directory create permission flags
    Date
    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 <tytso@mit.edu> wrote:

    > 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:
    >>
    >> 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


    \
     
     \ /
      Last update: 2011-01-03 06:21    [W:4.606 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site