[Linux-cachefs] PROBLEM: ASSERT(object->dentry) fails in cachefiles_delete_object()

David Howells dhowells at redhat.com
Thu Sep 18 10:20:37 UTC 2014


Manuel Schölling <manuel.schoelling at gmx.de> wrote:

> [1. text/plain; object_fscache_cookie.txt]
> ...
>   flags = 23

That would be 0x17, or:

	FSCACHE_COOKIE_LOOKING_UP
	FSCACHE_COOKIE_NO_DATA_YET
	FSCACHE_COOKIE_UNAVAILABLE
	FSCACHE_COOKIE_RELINQUISHED

so fscache_relinquish_cookie() was called and the cookie thinks it was still
in the process of being looked up.

> [2. text/plain; object_fscache_parent_cookie.txt]   
> ...
>   flags = 32

That would be 0x20, or:

	FSCACHE_COOKIE_ENABLED

so that appears to be live.

> [3. text/plain; object_fscache_parent.txt]
> ...
>   state = 0xffffffffa02b07c0 <fscache_osm_WAIT_FOR_CMD>,
> ...
>   lookup_jif = 4298902188, 
>   oob_event_mask = 96, 
>   event_mask = 109, 
>   events = 16, 
>   flags = 56, 

The flags are 0x38, or:

	FSCACHE_OBJECT_IS_LIVE
	FSCACHE_OBJECT_IS_LOOKED_UP
	FSCACHE_OBJECT_IS_AVAILABLE

so the parent object looks okay.

So it does just look like I've failed to take account of the fact that I can
get to the DROP_OBJECT state without actually looking up the object - and thus
I might not see object->dentry having been set yet.

David




More information about the Linux-cachefs mailing list