fs: remove inode_lock from iput_final and prune_icache
Now that inode state changes are protected by the inode->i_lock and the inode LRU manipulations by the inode_lru_lock, we can remove the inode_lock from prune_icache and the initial part of iput_final(). instead of using the inode_lock to protect the inode during iput_final, use the inode->i_lock instead. This protects the inode against new references being taken while we change the inode state to I_FREEING, as well as preventing prune_icache from grabbing the inode while we are manipulating it. Hence we no longer need the inode_lock in iput_final prior to setting I_FREEING on the inode. For prune_icache, we no longer need the inode_lock to protect the LRU list, and the inodes themselves are protected against freeing races by the inode->i_lock. Hence we can lift the inode_lock from prune_icache as well. Signed-off-by:Dave Chinner <dchinner@redhat.com> Signed-off-by:
Al Viro <viro@zeniv.linux.org.uk>
Showing
- Documentation/filesystems/Locking 1 addition, 1 deletionDocumentation/filesystems/Locking
- Documentation/filesystems/porting 11 additions, 5 deletionsDocumentation/filesystems/porting
- Documentation/filesystems/vfs.txt 1 addition, 1 deletionDocumentation/filesystems/vfs.txt
- fs/inode.c 3 additions, 14 deletionsfs/inode.c
- fs/logfs/inode.c 1 addition, 1 deletionfs/logfs/inode.c
Loading
Please register or sign in to comment