[lkml]   [2003]   [Jan]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Patch in this message
    Subject[PATCH] allow rename to "--bind"-mounted filesystem

    I just discovered that rename(2) does not allow you to rename a file within
    the same filesystem if there is a "--bind" in the way. For example:

    # mkdir mydir
    # mount --bind . mydir
    # touch myfile
    # strace -erename perl -e 'rename "myfile", "mydir/myfile2"'
    rename("myfile", "mydir/myfile2") = -1 EXDEV (Invalid cross-device link)

    IMHO it should be possible to do a rename in this situation.

    I propose to remove the check in do_rename() altogether. It shouldn't be
    necessary, since there's also a check for a cross-device rename in
    vfs_rename_dir() and vfs_rename_other().

    Patch below has been tested.


    --- linux-2.4.21-pre3/fs/namei.c.orig 2003-01-18 23:56:46.000000000 +0100
    +++ linux-2.4.21-pre3/fs/namei.c 2003-01-18 23:57:30.000000000 +0100
    @@ -1860,10 +1860,6 @@
    if (error)
    goto exit1;

    - error = -EXDEV;
    - if (oldnd.mnt != newnd.mnt)
    - goto exit2;
    old_dir = oldnd.dentry;
    error = -EBUSY;
    if (oldnd.last_type != LAST_NORM)
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at
     \ /
      Last update: 2005-03-22 13:32    [W:0.021 / U:14.316 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site