Move across mount,sb

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux