Hi Tejun, On Thu 18-02-16 08:00:33, Tejun Heo wrote: > On Thu, Feb 18, 2016 at 10:55:38AM +0100, Jan Kara wrote: > > I'm not sure I understand the question. Do you mean why both s_active and > > s_umount rwsem exist? s_active is a reference count keeping superblock > > Yes. > > > alive - e.g. if the filesystem is mounted in more places, we need a > > reference for each mountpoint. s_umount is used when we want to block any > > I could be mistaken but I *think* we used to reject umounts based on > s_active and s_umount is the mechanism to delay umounts rather than > failing them and probably with bind mounts the behavior changed. > > > umount operation until we are done. For example sync(2) is using it to make > > sure superblock doesn't disappear and so that we don't keep superblock > > alive after admin called umount(2). > > So, the question is why aren't we just using s_active and draining it > on umount of the last mountpoint. Because, right now, the behavior is > weird in that we allow umounts to proceed but then let the superblock > hang onto the block device till s_active is drained. This really > should be synchronous. Hum, I'm not sure. I guess Al can give you more qualified answer than me. Added to CC... Honza -- Jan Kara <jack@xxxxxxxx> SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html