Steve French <smfrench@xxxxxxxxx> wrote: > The path from fscache_uncache_all_inode_pages is: > fscache_uncache_all_inode_pages-->__fscache_uncache_all_inode_pages > (line 132 of fs/fscache/page.c) -->__fscache_uncache_page (locks on > line 1120 and then on line 1141 "goto done" without unlocking it) This bit, you mean? if (TestClearPageFsCache(page) && object->cache->ops->uncache_page) { /* the cache backend releases the cookie lock */ fscache_stat(&fscache_n_cop_uncache_page); object->cache->ops->uncache_page(object, page); fscache_stat_d(&fscache_n_cop_uncache_page); goto done; } Note the comment. Here's the unlock: void cachefiles_uncache_page(struct fscache_object *_object, struct page *page) __releases(&object->fscache.cookie->lock) { struct cachefiles_object *object; object = container_of(_object, struct cachefiles_object, fscache); _enter("%p,{%lu}", object, page->index); spin_unlock(&object->fscache.cookie->lock); } David