Hi Al, We're seeing cases where fscache is reporting cookie collisions that appears to be due to ->evict_inode() running parallel with a new inode for the same filesystem object getting set up. What's happening is that in all of 9p, afs, ceph, cifs and nfs, the fscache cookie is being relinquished in ->evict_inode(), but that appears to be too late because by that time, a new inode can be being allocated and a new cookie get acquired. evict_inode is a slow process, potentially, because it has to dismantle the pagecache and wait for any outstanding DMA to the cache; then seal the cache object - which involves a synchronous journalled op (setxattr), which means that there's a lot of scope for a race. Is there a better place to this? drop_inode() maybe? And is there a good place to wait on all the DMAs that might be in progress to/from the cache? (This might involve waiting for PG_locked or PG_fscache to be cleared on each page). David