diff options
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r-- | fs/btrfs/super.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 22855a18eb48..7f5b2889949a 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c | |||
@@ -66,8 +66,8 @@ static void btrfs_put_super(struct super_block *sb) | |||
66 | enum { | 66 | enum { |
67 | Opt_degraded, Opt_subvol, Opt_device, Opt_nodatasum, Opt_nodatacow, | 67 | Opt_degraded, Opt_subvol, Opt_device, Opt_nodatasum, Opt_nodatacow, |
68 | Opt_max_extent, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, | 68 | Opt_max_extent, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, |
69 | Opt_ssd, Opt_nossd, Opt_thread_pool, Opt_noacl, Opt_compress, | 69 | Opt_ssd, Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl, |
70 | Opt_notreelog, Opt_ratio, Opt_flushoncommit, Opt_err, | 70 | Opt_compress, Opt_notreelog, Opt_ratio, Opt_flushoncommit, Opt_err, |
71 | }; | 71 | }; |
72 | 72 | ||
73 | static match_table_t tokens = { | 73 | static match_table_t tokens = { |
@@ -83,6 +83,7 @@ static match_table_t tokens = { | |||
83 | {Opt_thread_pool, "thread_pool=%d"}, | 83 | {Opt_thread_pool, "thread_pool=%d"}, |
84 | {Opt_compress, "compress"}, | 84 | {Opt_compress, "compress"}, |
85 | {Opt_ssd, "ssd"}, | 85 | {Opt_ssd, "ssd"}, |
86 | {Opt_ssd_spread, "ssd_spread"}, | ||
86 | {Opt_nossd, "nossd"}, | 87 | {Opt_nossd, "nossd"}, |
87 | {Opt_noacl, "noacl"}, | 88 | {Opt_noacl, "noacl"}, |
88 | {Opt_notreelog, "notreelog"}, | 89 | {Opt_notreelog, "notreelog"}, |
@@ -174,9 +175,17 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) | |||
174 | printk(KERN_INFO "btrfs: use ssd allocation scheme\n"); | 175 | printk(KERN_INFO "btrfs: use ssd allocation scheme\n"); |
175 | btrfs_set_opt(info->mount_opt, SSD); | 176 | btrfs_set_opt(info->mount_opt, SSD); |
176 | break; | 177 | break; |
178 | case Opt_ssd_spread: | ||
179 | printk(KERN_INFO "btrfs: use spread ssd " | ||
180 | "allocation scheme\n"); | ||
181 | btrfs_set_opt(info->mount_opt, SSD); | ||
182 | btrfs_set_opt(info->mount_opt, SSD_SPREAD); | ||
183 | break; | ||
177 | case Opt_nossd: | 184 | case Opt_nossd: |
178 | printk(KERN_INFO "btrfs: not using ssd allocation scheme\n"); | 185 | printk(KERN_INFO "btrfs: not using ssd allocation " |
186 | "scheme\n"); | ||
179 | btrfs_clear_opt(info->mount_opt, SSD); | 187 | btrfs_clear_opt(info->mount_opt, SSD); |
188 | btrfs_clear_opt(info->mount_opt, SSD_SPREAD); | ||
180 | break; | 189 | break; |
181 | case Opt_nobarrier: | 190 | case Opt_nobarrier: |
182 | printk(KERN_INFO "btrfs: turning off barriers\n"); | 191 | printk(KERN_INFO "btrfs: turning off barriers\n"); |
@@ -429,7 +438,9 @@ static int btrfs_show_options(struct seq_file *seq, struct vfsmount *vfs) | |||
429 | seq_printf(seq, ",thread_pool=%d", info->thread_pool_size); | 438 | seq_printf(seq, ",thread_pool=%d", info->thread_pool_size); |
430 | if (btrfs_test_opt(root, COMPRESS)) | 439 | if (btrfs_test_opt(root, COMPRESS)) |
431 | seq_puts(seq, ",compress"); | 440 | seq_puts(seq, ",compress"); |
432 | if (btrfs_test_opt(root, SSD)) | 441 | if (btrfs_test_opt(root, SSD_SPREAD)) |
442 | seq_puts(seq, ",ssd_spread"); | ||
443 | else if (btrfs_test_opt(root, SSD)) | ||
433 | seq_puts(seq, ",ssd"); | 444 | seq_puts(seq, ",ssd"); |
434 | if (btrfs_test_opt(root, NOTREELOG)) | 445 | if (btrfs_test_opt(root, NOTREELOG)) |
435 | seq_puts(seq, ",notreelog"); | 446 | seq_puts(seq, ",notreelog"); |