diff options
Diffstat (limited to 'fs/ext4/super.c')
| -rw-r--r-- | fs/ext4/super.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 61182fe6254e..fb15c9c0be74 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
| @@ -1026,6 +1026,8 @@ static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs) | |||
| 1026 | !(def_mount_opts & EXT4_DEFM_NODELALLOC)) | 1026 | !(def_mount_opts & EXT4_DEFM_NODELALLOC)) |
| 1027 | seq_puts(seq, ",nodelalloc"); | 1027 | seq_puts(seq, ",nodelalloc"); |
| 1028 | 1028 | ||
| 1029 | if (test_opt(sb, MBLK_IO_SUBMIT)) | ||
| 1030 | seq_puts(seq, ",mblk_io_submit"); | ||
| 1029 | if (sbi->s_stripe) | 1031 | if (sbi->s_stripe) |
| 1030 | seq_printf(seq, ",stripe=%lu", sbi->s_stripe); | 1032 | seq_printf(seq, ",stripe=%lu", sbi->s_stripe); |
| 1031 | /* | 1033 | /* |
| @@ -1197,7 +1199,6 @@ static const struct super_operations ext4_sops = { | |||
| 1197 | .quota_write = ext4_quota_write, | 1199 | .quota_write = ext4_quota_write, |
| 1198 | #endif | 1200 | #endif |
| 1199 | .bdev_try_to_free_page = bdev_try_to_free_page, | 1201 | .bdev_try_to_free_page = bdev_try_to_free_page, |
| 1200 | .trim_fs = ext4_trim_fs | ||
| 1201 | }; | 1202 | }; |
| 1202 | 1203 | ||
| 1203 | static const struct super_operations ext4_nojournal_sops = { | 1204 | static const struct super_operations ext4_nojournal_sops = { |
| @@ -1240,8 +1241,8 @@ enum { | |||
| 1240 | Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota, | 1241 | Opt_jqfmt_vfsold, Opt_jqfmt_vfsv0, Opt_jqfmt_vfsv1, Opt_quota, |
| 1241 | Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err, | 1242 | Opt_noquota, Opt_ignore, Opt_barrier, Opt_nobarrier, Opt_err, |
| 1242 | Opt_resize, Opt_usrquota, Opt_grpquota, Opt_i_version, | 1243 | Opt_resize, Opt_usrquota, Opt_grpquota, Opt_i_version, |
| 1243 | Opt_stripe, Opt_delalloc, Opt_nodelalloc, | 1244 | Opt_stripe, Opt_delalloc, Opt_nodelalloc, Opt_mblk_io_submit, |
| 1244 | Opt_block_validity, Opt_noblock_validity, | 1245 | Opt_nomblk_io_submit, Opt_block_validity, Opt_noblock_validity, |
| 1245 | Opt_inode_readahead_blks, Opt_journal_ioprio, | 1246 | Opt_inode_readahead_blks, Opt_journal_ioprio, |
| 1246 | Opt_dioread_nolock, Opt_dioread_lock, | 1247 | Opt_dioread_nolock, Opt_dioread_lock, |
| 1247 | Opt_discard, Opt_nodiscard, | 1248 | Opt_discard, Opt_nodiscard, |
| @@ -1305,6 +1306,8 @@ static const match_table_t tokens = { | |||
| 1305 | {Opt_resize, "resize"}, | 1306 | {Opt_resize, "resize"}, |
| 1306 | {Opt_delalloc, "delalloc"}, | 1307 | {Opt_delalloc, "delalloc"}, |
| 1307 | {Opt_nodelalloc, "nodelalloc"}, | 1308 | {Opt_nodelalloc, "nodelalloc"}, |
| 1309 | {Opt_mblk_io_submit, "mblk_io_submit"}, | ||
| 1310 | {Opt_nomblk_io_submit, "nomblk_io_submit"}, | ||
| 1308 | {Opt_block_validity, "block_validity"}, | 1311 | {Opt_block_validity, "block_validity"}, |
| 1309 | {Opt_noblock_validity, "noblock_validity"}, | 1312 | {Opt_noblock_validity, "noblock_validity"}, |
| 1310 | {Opt_inode_readahead_blks, "inode_readahead_blks=%u"}, | 1313 | {Opt_inode_readahead_blks, "inode_readahead_blks=%u"}, |
| @@ -1726,6 +1729,12 @@ set_qf_format: | |||
| 1726 | case Opt_nodelalloc: | 1729 | case Opt_nodelalloc: |
| 1727 | clear_opt(sbi->s_mount_opt, DELALLOC); | 1730 | clear_opt(sbi->s_mount_opt, DELALLOC); |
| 1728 | break; | 1731 | break; |
| 1732 | case Opt_mblk_io_submit: | ||
| 1733 | set_opt(sbi->s_mount_opt, MBLK_IO_SUBMIT); | ||
| 1734 | break; | ||
| 1735 | case Opt_nomblk_io_submit: | ||
| 1736 | clear_opt(sbi->s_mount_opt, MBLK_IO_SUBMIT); | ||
| 1737 | break; | ||
| 1729 | case Opt_stripe: | 1738 | case Opt_stripe: |
| 1730 | if (match_int(&args[0], &option)) | 1739 | if (match_int(&args[0], &option)) |
| 1731 | return 0; | 1740 | return 0; |
| @@ -2799,9 +2808,6 @@ static void ext4_clear_request_list(void) | |||
| 2799 | struct ext4_li_request *elr; | 2808 | struct ext4_li_request *elr; |
| 2800 | 2809 | ||
| 2801 | mutex_lock(&ext4_li_info->li_list_mtx); | 2810 | mutex_lock(&ext4_li_info->li_list_mtx); |
| 2802 | if (list_empty(&ext4_li_info->li_request_list)) | ||
| 2803 | return; | ||
| 2804 | |||
| 2805 | list_for_each_safe(pos, n, &ext4_li_info->li_request_list) { | 2811 | list_for_each_safe(pos, n, &ext4_li_info->li_request_list) { |
| 2806 | elr = list_entry(pos, struct ext4_li_request, | 2812 | elr = list_entry(pos, struct ext4_li_request, |
| 2807 | lr_request); | 2813 | lr_request); |
| @@ -3268,13 +3274,14 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) | |||
| 3268 | * Test whether we have more sectors than will fit in sector_t, | 3274 | * Test whether we have more sectors than will fit in sector_t, |
| 3269 | * and whether the max offset is addressable by the page cache. | 3275 | * and whether the max offset is addressable by the page cache. |
| 3270 | */ | 3276 | */ |
| 3271 | ret = generic_check_addressable(sb->s_blocksize_bits, | 3277 | err = generic_check_addressable(sb->s_blocksize_bits, |
| 3272 | ext4_blocks_count(es)); | 3278 | ext4_blocks_count(es)); |
| 3273 | if (ret) { | 3279 | if (err) { |
| 3274 | ext4_msg(sb, KERN_ERR, "filesystem" | 3280 | ext4_msg(sb, KERN_ERR, "filesystem" |
| 3275 | " too large to mount safely on this system"); | 3281 | " too large to mount safely on this system"); |
| 3276 | if (sizeof(sector_t) < 8) | 3282 | if (sizeof(sector_t) < 8) |
| 3277 | ext4_msg(sb, KERN_WARNING, "CONFIG_LBDAF not enabled"); | 3283 | ext4_msg(sb, KERN_WARNING, "CONFIG_LBDAF not enabled"); |
| 3284 | ret = err; | ||
| 3278 | goto failed_mount; | 3285 | goto failed_mount; |
| 3279 | } | 3286 | } |
| 3280 | 3287 | ||
