[Linux-cachefs] [PATCH] fscache: extended "dying" check before emitting EV_INVALIDATE

David Howells dhowells at redhat.com
Tue Apr 23 16:57:46 UTC 2013


Max Kellermann <mk at cm4all.com> wrote:

> Before emitting an FSCACHE_OBJECT_EV_INVALIDATE event, the function
> __fscache_invalidate() checks whether the fscache_object is currently
> "dying".  This checks only the current state, not the queued events
> that will very soon lead to the object's death.

This should not be a problem, I think.  EV_RETIRE and EV_RELEASE should only be
set by fscache_relinquish_cookie().  If you (the netfs) call that to dispose of
a cookie to fscache, you shouldn't thereafter be calling fscache_invalidate()
on it.  The only case in which __fscache_invalidate() should see a dying object
is if the caching backend withdraws it (ie. EV_WITHDRAW is set).

Do you have a backtrace?

David




More information about the Linux-cachefs mailing list