Re: [PATCHv3 2/3] ext4: allocate buffer-cache for superblock in, non-movable area

From: Jan Kara
Date: Thu Aug 28 2014 - 06:06:58 EST


On Thu 28-08-14 11:32:29, Gioh Kim wrote:
>
> A buffer-cache for superblock is disturbing page migration,
> because the buffer-cache is not released until unmount.
> The buffer-cache must be allocated from non-movable area.
The patch looks good. You can add:
Reviewed-by: Jan Kara <jack@xxxxxxx>

Honza

>
> Signed-off-by: Gioh Kim <gioh.kim@xxxxxxx>
> ---
> fs/ext4/super.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/fs/ext4/super.c b/fs/ext4/super.c
> index 32b43ad..e4b62b3 100644
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -3435,7 +3435,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
> logical_sb_block = sb_block;
> }
>
> - if (!(bh = sb_bread(sb, logical_sb_block))) {
> + if (!(bh = sb_bread_unmovable(sb, logical_sb_block))) {
> ext4_msg(sb, KERN_ERR, "unable to read superblock");
> goto out_fail;
> }
> @@ -3645,7 +3645,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
> brelse(bh);
> logical_sb_block = sb_block * EXT4_MIN_BLOCK_SIZE;
> offset = do_div(logical_sb_block, blocksize);
> - bh = sb_bread(sb, logical_sb_block);
> + bh = sb_bread_unmovable(sb, logical_sb_block);
> if (!bh) {
> ext4_msg(sb, KERN_ERR,
> "Can't read superblock on 2nd try");
> @@ -3867,7 +3867,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
>
> for (i = 0; i < db_count; i++) {
> block = descriptor_loc(sb, logical_sb_block, i);
> - sbi->s_group_desc[i] = sb_bread(sb, block);
> + sbi->s_group_desc[i] = sb_bread_unmovable(sb, block);
> if (!sbi->s_group_desc[i]) {
> ext4_msg(sb, KERN_ERR,
> "can't read group descriptor %d", i);
> --
> 1.7.9.5
>
--
Jan Kara <jack@xxxxxxx>
SUSE Labs, CR
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/