Hello,
touch /tmp/foo;
mount /tmp /mnt --bind;
strace -e rename mv /tmp/foo /mnt/bar
Ideally, I would expect, that since /tmp and /mnt are the same
filesystem, that the move operation would complete without _copying_ the
file. But strace returns
rename("/tmp/foo", "/mnt/bar") = -1 EXDEV (Invalid cross-device link)
The piece of code identified is fs/namei.c:2578:do_rename()
error = -EXDEV;
if (oldnd.mnt != newnd.mnt)
goto exit2;
Why is EXDEV returned when _vfs mountpoints_ are crossed? Should not it
be more like the following?
error = -EXDEV;
if (oldnd.mnt->mnt_sb != newnd.mnt->mnt_sb)
goto exit2;
Jan
--
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html