Hi Al Here are some patches that make the icache searchable under RCU. This benefits ext4 (which can use it to find an inode to update the timestamps on) and afs (which can use it to find a vnode to invalidate the callback promise on). It might also benefit NTFS, if its use ilookup5_nowait() can be substituted for. I'm not sure whether it actually needs to wait for inodes that are undergoing deletion. The first patch in the series attempts to fix the non-use of locking in Coda when it moves an inode between buckets because it needs to update the search key. Changes: (v2) Remove the old rehashing code from coda. Use READ_ONCE() in ext4 to access i_state. Minor fixes. The patches can also be found on the following branch: https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=icache-rcu Thanks, David --- David Howells (6): vfs, coda: Fix the lack of locking in FID replacement inode rehashing vfs: Change inode_hash_lock to a seqlock vfs: Allow searching of the icache under RCU conditions afs: Use RCU inode cache search for callback resolution ext4: Search for an inode to update under the RCU lock if we can vfs: Delete find_inode_nowait() fs/afs/callback.c | 12 ++ fs/coda/cnode.c | 16 ++- fs/ext4/inode.c | 54 +++++---- fs/inode.c | 307 ++++++++++++++++++++++++++++++++++++---------------- include/linux/fs.h | 11 +- 5 files changed, 264 insertions(+), 136 deletions(-)