Re: [patch 3/6] vfs: mountinfo stable peer group id

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

 



> IOW, mark_mounts_for_expiry() should do the following:
> 	grabbing namespace_sem exclusive
> 	grab vfsmount_lock
> 	walk the list as it does now, except that it should do the right
> check from the very beginning (propagate_mount_busy())
> 	without dropping the vfsmount_lock, go through the collected list,
> calling umount_tree()
> 	drop the locks
> 	do release_mounts()
> The second pass is needed since umount_tree() might do interesting things
> to expiry list, so we make life easier for ourselves by leaving that to
> second pass when we just want to drain the resulting list until it's empty.
> 
> Does anybody see holes in the above?
> 
> shrink_submounts() is _probably_ similar (lock/collect/umount_tree on all/
> unlock/release_mounts), but I'm not sure if I understand WTF is really
> attempted in there.
> 
> Is there any reason why we do that in ->umount_begin() and not *after*
> it, unconditionally, straight from do_umount()?  AFAICS, the only reason
> why it's done from fs-specific code is figuring out which mount-list
> should the stuff go back to, and that's both broken *and* not needed
> with sanitized locking as above.  While we are at it, I'd rather return
> ->umount_begin() to its previous prototype, TYVM - the less filesystem
> sees vfsmounts, the better off we all are...

All of that seems sane to me.

Miklos
--
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