On Thu 01-07-10 19:56:29, Al Viro wrote: > All quotactl callbacks are done with s_umount held shared. > Fine, but ->quota_on() will do kern_path() and _that_ can try to > grab the same thing exclusive - suppose we pass a pathname that > walks into autofs and triggers mounting of the same fs (at a different > mountpoint, that is). That'll end up calling sget(), finding our > superblock and trying to grab s_umount on it. mount(8) sits > uninterruptibly sleeping in mount(2), kern_path() waits for it > to complete and that's not going to happen until the caller of > kern_path() (do_quotactl(), ultimately) finishes. > > Obvious solution is b0rken - we _can't_ take the call of > kern_path() to a point prior to getting (and locking) the superblock. > Why? Because ocfs2 ignores the pathname argument, so failing on > bogus pathnames will blow the userland API compatibility. > > Other alternatives are also not particulary pleasant since > we need s_umount at some point there - we want some exclusion with > remounting. > > Ideas? Not now :(. I'm on vacation this and next week. I'll look into the bug when I return. Honza -- Jan Kara <jack@xxxxxxx> SUSE Labs, CR -- 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