aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/super.c
diff options
context:
space:
mode:
authorGioh Kim <gioh.kim@lge.com>2014-09-04 22:36:15 -0400
committerTheodore Ts'o <tytso@mit.edu>2014-09-04 22:36:15 -0400
commita8ac900b8163703340a2fdad11c32f96b8fe686d (patch)
treec8b656297fea56be775cf22f3ed32479fb2b39ad /fs/ext4/super.c
parent3b5e6454aaf6b4439b19400d8365e2ec2d24e411 (diff)
ext4: use non-movable memory for the ext4 superblock
Since the ext4 superblock is not released until the file system is unmounted, allocate the buffer cache entry for the ext4 superblock out of the non-moveable are to allow page migrations and thus CMA allocations to more easily succeed if the CMA area is limited. Signed-off-by: Gioh Kim <gioh.kim@lge.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r--fs/ext4/super.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 487c65b8cff0..4b81747b3a80 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3436,7 +3436,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
3436 logical_sb_block = sb_block; 3436 logical_sb_block = sb_block;
3437 } 3437 }
3438 3438
3439 if (!(bh = sb_bread(sb, logical_sb_block))) { 3439 if (!(bh = sb_bread_unmovable(sb, logical_sb_block))) {
3440 ext4_msg(sb, KERN_ERR, "unable to read superblock"); 3440 ext4_msg(sb, KERN_ERR, "unable to read superblock");
3441 goto out_fail; 3441 goto out_fail;
3442 } 3442 }
@@ -3646,7 +3646,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
3646 brelse(bh); 3646 brelse(bh);
3647 logical_sb_block = sb_block * EXT4_MIN_BLOCK_SIZE; 3647 logical_sb_block = sb_block * EXT4_MIN_BLOCK_SIZE;
3648 offset = do_div(logical_sb_block, blocksize); 3648 offset = do_div(logical_sb_block, blocksize);
3649 bh = sb_bread(sb, logical_sb_block); 3649 bh = sb_bread_unmovable(sb, logical_sb_block);
3650 if (!bh) { 3650 if (!bh) {
3651 ext4_msg(sb, KERN_ERR, 3651 ext4_msg(sb, KERN_ERR,
3652 "Can't read superblock on 2nd try"); 3652 "Can't read superblock on 2nd try");
@@ -3868,7 +3868,7 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
3868 3868
3869 for (i = 0; i < db_count; i++) { 3869 for (i = 0; i < db_count; i++) {
3870 block = descriptor_loc(sb, logical_sb_block, i); 3870 block = descriptor_loc(sb, logical_sb_block, i);
3871 sbi->s_group_desc[i] = sb_bread(sb, block); 3871 sbi->s_group_desc[i] = sb_bread_unmovable(sb, block);
3872 if (!sbi->s_group_desc[i]) { 3872 if (!sbi->s_group_desc[i]) {
3873 ext4_msg(sb, KERN_ERR, 3873 ext4_msg(sb, KERN_ERR,
3874 "can't read group descriptor %d", i); 3874 "can't read group descriptor %d", i);