Hello Jan,
Jan, I still have not heard a single comment about what's wrong with
it... I would really appreciate if you provide me one.
Sorry for the delay. I had to fix a totally bogus patch (mine ;).
The problem with your patch is that it hides too early mntput's. Think about
following situation:
mntput(path->mnt); // too early mntput()
dput(path->dentry);
Assuming that in-between this sequence someone unmounts the file system, your
patch will wait for this dput() to finish before it proceeds with unmounting
the file system. I think this isn't what we want.
No, it won't wait for anything, because if umount happened between
mntput/dput, dentry is not in s_dshrinkers list.
if umount happens in parallell with dput() (where shrinker operations
are), then it will behave ok - will wait for dput() and then umount. It
was intended behaviour!
Also, please, note that such early mntput()'s are bugs!!! because such
dentries can reference freed memory after last mntput(). And I remember
some patches in 2.4.x/2.6.x which fixed this sequence everywhere.
Kirill
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]