aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r--fs/btrfs/super.c19
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)
66enum { 66enum {
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
73static match_table_t tokens = { 73static 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");