Hi!
With BTRFS to XFS/Ext4 the inode number of the target file stays the same in
with both cp and mv case (/mnt/zeit is a freshly created XFS in this example):
merkaba:~> ls -li foo /mnt/zeit/moo
6609270 foo
99 /mnt/zeit/moo
merkaba:~> cp foo /mnt/zeit/moo
merkaba:~> ls -li foo /mnt/zeit/moo
6609270 8 foo
99 /mnt/zeit/moo
merkaba:~> cp -p foo /mnt/zeit/moo
merkaba:~> ls -li foo /mnt/zeit/moo
6609270 foo
99 /mnt/zeit/moo
merkaba:~> mv foo /mnt/zeit/moo
merkaba:~> ls -lid /mnt/zeit/moo
99 -rw-r--r-- 1 root root 6 Okt 13 12:28 /mnt/zeit/moo
With BTRFS as target filesystem however in the mv case I get a new inode:
merkaba:~> ls -li foo /home/moo
6609289 -rw-r--r-- 1 root root 6 Okt 13 12:34 foo
16476276 -rw-r--r-- 1 root root 6 Okt 13 12:34 /home/moo
merkaba:~> cp foo /home/moo
merkaba:~> ls -li foo /home/moo
6609289 -rw-r--r-- 1 root root 6 Okt 13 12:34 foo
16476276 -rw-r--r-- 1 root root 6 Okt 13 12:34 /home/moo
merkaba:~> cp -p foo /home/moo
merkaba:~> ls -li foo /home/moo
6609289 -rw-r--r-- 1 root root 6 Okt 13 12:34 foo
16476276 -rw-r--r-- 1 root root 6 Okt 13 12:34 /home/moo
merkaba:~> mv foo /home/moo
merkaba:~> ls -li /home/moo
16476280 -rw-r--r-- 1 root root 6 Okt 13 12:34 /home/moo
Is this intentional and/or somehow related to the copy on write specifics of
the filesystem?
I think even with COW it can just overwrite the existing file instead of
removing the old one and creating a new one – but it wouldn´t give much of a
benefit unless the target file is nocow.
(Also I thought only certain other utilities had supercow powers, but well
BTRFS seems to have them as well :)
Thanks,
--
Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html