A union mount clones the vfsmount tree of all of the read-only layersof the union and keeps a reference to it in the vfsmount of thetopmost layer of the union.

clone_union_tree() takes the path of the proposed union mountpoint andattempts to clones every vfsmount mounted at that same pathname, aswell as their submounts. All these mounts must be read-only, notslave, and not shared.

put_union_sb() unwinds everything clone_union_tree() does. It iscalled when the superblock is deactivated. Thus, you can lazy unmounta union mount and when the last reference goes away, the union will betorn down.