On Tue, Nov 03 2015, Chris Mason wrote: > On Mon, Nov 02, 2015 at 03:50:12PM -0500, J. Bruce Fields wrote: >> On Wed, Oct 28, 2015 at 07:25:10AM +0900, Neil Brown wrote: >> > >> > If you create a subvolume in btrfs and access it (by name) without >> > mounting it, then the subvolume looks like a separate mount to some >> > extent, returning a different st_dev to stat(), but it doesn't look like >> > a separate mount in that it isn't listed in /proc/mounts. This >> > inconsistency can confuse tools. >> > >> > This patch causes these subvolumes to become separate mounts by using >> > the VFS' automount functionality, much like NFS uses automount when it >> > discovered mountpoints on the server. >> > >> > The VFS currently makes it impossible to auto-mount a directory on to itself >> > (i.e. a bind mount). For NFS this isn't a problem as a new superblock >> > is created for the child filesystem so there are two separate dentries >> > (and inodes) for the one directory: one in the parent filesystem, one in >> > the child (note that the two superblocks share a common connection to >> > the server so there is still a lot of commonality). >> > >> > BTRFS has chosen instead to use a single superblock for all subvolumes. >> >> Naive question: was there a reason for that choice? > > They are really all part of the same FS, the single super better fits. > Or said another way, it felt like there would be dramatically more duct > tape around supers-per-subvolume than there was abusing st_dev. > > Neil's patch came up after I told him a few of us had tried to do the > same thing and failed to find clean vfs changes to make it possible...he > took it as a challenge. Now I have to remember what it was about our > past attempts that I didn't like. > > I'll test this and queue for 4.5 if it all works out, thanks Neil! I'd rather resend with proper documentation updates and s-o-b before it gets queued if that is OK. So once you are happy, please let me know and I'll do it "properly". Thanks, NeilBrown
Attachment:
signature.asc
Description: PGP signature