diff options
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r-- | fs/btrfs/super.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 2cc5b80eeae9..196790375bb3 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c | |||
@@ -321,6 +321,7 @@ enum { | |||
321 | Opt_no_space_cache, Opt_recovery, Opt_skip_balance, | 321 | Opt_no_space_cache, Opt_recovery, Opt_skip_balance, |
322 | Opt_check_integrity, Opt_check_integrity_including_extent_data, | 322 | Opt_check_integrity, Opt_check_integrity_including_extent_data, |
323 | Opt_check_integrity_print_mask, Opt_fatal_errors, | 323 | Opt_check_integrity_print_mask, Opt_fatal_errors, |
324 | Opt_commit_interval, | ||
324 | Opt_err, | 325 | Opt_err, |
325 | }; | 326 | }; |
326 | 327 | ||
@@ -361,6 +362,7 @@ static match_table_t tokens = { | |||
361 | {Opt_check_integrity_including_extent_data, "check_int_data"}, | 362 | {Opt_check_integrity_including_extent_data, "check_int_data"}, |
362 | {Opt_check_integrity_print_mask, "check_int_print_mask=%d"}, | 363 | {Opt_check_integrity_print_mask, "check_int_print_mask=%d"}, |
363 | {Opt_fatal_errors, "fatal_errors=%s"}, | 364 | {Opt_fatal_errors, "fatal_errors=%s"}, |
365 | {Opt_commit_interval, "commit=%d"}, | ||
364 | {Opt_err, NULL}, | 366 | {Opt_err, NULL}, |
365 | }; | 367 | }; |
366 | 368 | ||
@@ -645,6 +647,29 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) | |||
645 | goto out; | 647 | goto out; |
646 | } | 648 | } |
647 | break; | 649 | break; |
650 | case Opt_commit_interval: | ||
651 | intarg = 0; | ||
652 | ret = match_int(&args[0], &intarg); | ||
653 | if (ret < 0) { | ||
654 | printk(KERN_ERR | ||
655 | "btrfs: invalid commit interval\n"); | ||
656 | ret = -EINVAL; | ||
657 | goto out; | ||
658 | } | ||
659 | if (intarg > 0) { | ||
660 | if (intarg > 300) { | ||
661 | printk(KERN_WARNING | ||
662 | "btrfs: excessive commit interval %d\n", | ||
663 | intarg); | ||
664 | } | ||
665 | info->commit_interval = intarg; | ||
666 | } else { | ||
667 | printk(KERN_INFO | ||
668 | "btrfs: using default commit interval %ds\n", | ||
669 | BTRFS_DEFAULT_COMMIT_INTERVAL); | ||
670 | info->commit_interval = BTRFS_DEFAULT_COMMIT_INTERVAL; | ||
671 | } | ||
672 | break; | ||
648 | case Opt_err: | 673 | case Opt_err: |
649 | printk(KERN_INFO "btrfs: unrecognized mount option " | 674 | printk(KERN_INFO "btrfs: unrecognized mount option " |
650 | "'%s'\n", p); | 675 | "'%s'\n", p); |
@@ -981,6 +1006,8 @@ static int btrfs_show_options(struct seq_file *seq, struct dentry *dentry) | |||
981 | info->metadata_ratio); | 1006 | info->metadata_ratio); |
982 | if (btrfs_test_opt(root, PANIC_ON_FATAL_ERROR)) | 1007 | if (btrfs_test_opt(root, PANIC_ON_FATAL_ERROR)) |
983 | seq_puts(seq, ",fatal_errors=panic"); | 1008 | seq_puts(seq, ",fatal_errors=panic"); |
1009 | if (info->commit_interval != BTRFS_DEFAULT_COMMIT_INTERVAL) | ||
1010 | seq_printf(seq, ",commit=%d", info->commit_interval); | ||
984 | return 0; | 1011 | return 0; |
985 | } | 1012 | } |
986 | 1013 | ||