Message ID | 20170820115209.56957-1-wshilong@ddn.com |
---|---|
State | Accepted, archived |
Headers | show |
On Sun, Aug 20, 2017 at 07:52:09PM +0800, Wang Shilong wrote: > From: Jan Kara <jack@suse.cz> > > From: Jan Kara <jack@suse.cz> > > In recently_deleted() function we want to check whether inode is still > cached in buffer cache. Use sb_find_get_block() for that instead of > sb_getblk() to avoid unnecessary allocation of bdev page and buffer > heads. > > Signed-off-by: Jan Kara <jack@suse.cz> Thanks, applied. - Ted
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 507bfb3..0d03e73 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c @@ -707,9 +707,9 @@ static int recently_deleted(struct super_block *sb, ext4_group_t group, int ino) if (unlikely(!gdp)) return 0; - bh = sb_getblk(sb, ext4_inode_table(sb, gdp) + + bh = sb_find_get_block(sb, ext4_inode_table(sb, gdp) + (ino / inodes_per_block)); - if (unlikely(!bh) || !buffer_uptodate(bh)) + if (!bh || !buffer_uptodate(bh)) /* * If the block is not in the buffer cache, then it * must have been written out.