Re: [PATCH 30/30] VFS: Destroy the dentries contributed by a superblock on unmounting [try #11]

From: David Howells
Date: Tue Aug 01 2006 - 06:16:36 EST


Jan Blunck <j.blunck@xxxxxxxxxxxxx> wrote:

> IMHO it is better to fix shrink_dcache_for_umount() so that it is a
> replacement for shrink_dcache_sb().

The former may only be used when we *know* there aren't any references
remaining to any of the dentries (as it severely reduces the amount of time
spent holding the dcache_lock). The latter is used in situations in which the
assumptions of the former don't hold true.

Now I could make the former hold the locking a lot more (I had a version of
the patch that did that), but the former destroys all an sb's dentries,
whether or not they're still in use (which they shouldn't be), and the latter
does not.

The latter also doesn't reap the anon list directly; only where anon dentries
are also unused does any anon reaping occur. The former reaps them directly
and forcibly.

So, in conclusion, I don't think you can replace the latter with the former,
and the latter is insufficiently complete to replace the former.

> BTW: Talking about shrink_dcache_sb(): is it really necessary to call
> shrink_dcache_sb() when remounting a filesystem? The only reason I can see
> are changes to the lookup mechanism (hash algorithm etc) but a quick look
> into the different filesystems forbid the change of this options during
> remount.

If you're just remounting, then not all dentries can necessarily be purged
anyway - some of them may still be open. Consider remounting root for
read-only or read-write...

David
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/