On Thu, Jul 04, 2013 at 01:51:38PM +0400, Andrew Vagin wrote:
> We are not first who suffer from this problem:
> https://bugzilla.redhat.com/show_bug.cgi?id=711881
> http://marc.info/?l=linux-btrfs&m=130074451403261
> https://bugzilla.openvz.org/show_bug.cgi?id=2653

> And about 2 years ago Mark Fasheh tried to fix this problem:
> http://thr3ads.net/btrfs-devel/2011/05/2346176-RFC-PATCH-0-2-btrfs-vfs-Return-same-device-in-stat-2-and-proc-pid-maps
> 
> Eric Biederman sugested to not create a new method and use vfs_getattr,
> but here is a few problems:
> * fanotify doesn't have dentry, but its fdinfo contains device.
> * vfs_getattr can fail and which device should be shown in this case?
> * vfs_getattr gets much more parameters, so here is a question about
>   performance degradation.
> 
> So I have a question: Can two inodes from different subvolumes have
> equal inode numbers?

Yes, subvolumes are separate inode number spaces.

> If someone have any suggestions how to fix this problem or any
> explanation why this is not a problem at all, please write here.

The xstat syscall instead of the potentially heavyweight vfs_getattr
could fix that, but it's not merged. For suse kernels we've taken the
hackish approach of patching fs/proc/task_mmu.c:show_map_vma() (and the
nommu variant) and use vfs_getattr only for btrfs.

http://kernel.opensuse.org/cgit/kernel-source/tree/patches.suse/btrfs-use-correct-device-for-maps.patch?id=2434fa6ee93a83b117461eb13f24272606677fec

Only a temporary and not upstreamable solution, but without it the core
packaging tool zypper would not work correctly.

david
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to