Re: [PATCH] fscache: extended "dying" check before emitting EV_INVALIDATE

From: David Howells
Date: Tue Apr 23 2013 - 12:57:54 EST


Max Kellermann <mk@xxxxxxxxxx> 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
--
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/