On Thu, Jul 15, 2021 at 10:09:37AM -0400, Josef Bacik wrote: > I'm going to restate what I think the problem is you're having just so I'm > sure we're on the same page. > > 1. We export a btrfs volume via nfsd that has multiple subvolumes. > 2. We run find, and when we stat a file, nfsd doesn't send along our bogus > st_dev, it sends it's own thing (I assume?). This confuses du/find because > you get the same inode number with different parents. > > Is this correct? If that's the case then it' be relatively straightforward > to add another callback into export_operations to grab this fsid right? > Hell we could simply return the objectid of the root since that's unique > across the entire file system. We already do our magic FH encoding to make > sure we keep all this straight for NFS, another callback to give that info > isn't going to kill us. Thanks, Hell no. btrfs is broken plain and simple, and we've been arguing about this for years without progress. btrfs needs to stop claiming different st_dev inside the same mount, otherwise hell is going to break lose left right and center, and this is just one of the many cases where it does.