Take ->i_bdev/->i_cdev handling out of clear_inode()
PATCH 6/58 Take ->i_bdev/->i_cdev handling out of clear_inode()
All call chains to clear_inode() pass through evict_inode() and clear_inode() should be called by evict_inode() exactly once. So we can pull i_bdev/i_cdev detaching up to evict_inode() itself.
Signed-off-by Al Viro <[email protected]>
--- fs/inode.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
fs/inode.c +4 -4
@@ -313,10 +313,6 @@ void clear_inode(struct inode *inode)inode_sync_wait (inode);if (inode->i_sb->s_op->clear_inode) inode->i_sb->s_op->clear_inode (inode); -if (S_ISBLK (inode->i_mode) && inode->i_bdev) -bd_forget (inode); -if (S_ISCHR (inode->i_mode) && inode->i_cdev) -cd_forget (inode); inode->i_state =I_FREEING |I_CLEAR ; }EXPORT_SYMBOL (clear_inode);
@@ -334,6 +330,10 @@ static void evict(struct inode *inode, int delete)truncate_inode_pages (&inode->i_data,0 );clear_inode (inode); } +if (S_ISBLK (inode->i_mode) && inode->i_bdev) +bd_forget (inode); +if (S_ISCHR (inode->i_mode) && inode->i_cdev) +cd_forget (inode); }/*
Signature · 1 line
1.5.6.5