aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/super.c
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2008-01-29 16:03:38 -0500
committerChris Mason <chris.mason@oracle.com>2008-09-25 11:04:00 -0400
commit6f568d35a045dbb8a13fe71bfc32e85e39a986cb (patch)
treedf5cb5826dfb46a2514bfba34f8473dc65ea7081 /fs/btrfs/super.c
parent291d673e6a22d9c6834e939f66c7cfef90669021 (diff)
Btrfs: mount -o max_inline=size to control the maximum inline extent size
Signed-off-by: Chris Mason <chris.mason@oracle.com>
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r--fs/btrfs/super.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index f8a1016600b1..a46300c4753a 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -64,7 +64,7 @@ static void btrfs_put_super (struct super_block * sb)
64 64
65enum { 65enum {
66 Opt_subvol, Opt_nodatasum, Opt_nodatacow, Opt_max_extent, 66 Opt_subvol, Opt_nodatasum, Opt_nodatacow, Opt_max_extent,
67 Opt_alloc_start, Opt_nobarrier, Opt_ssd, Opt_err, 67 Opt_max_inline, Opt_alloc_start, Opt_nobarrier, Opt_ssd, Opt_err,
68}; 68};
69 69
70static match_table_t tokens = { 70static match_table_t tokens = {
@@ -73,6 +73,7 @@ static match_table_t tokens = {
73 {Opt_nodatacow, "nodatacow"}, 73 {Opt_nodatacow, "nodatacow"},
74 {Opt_nobarrier, "nobarrier"}, 74 {Opt_nobarrier, "nobarrier"},
75 {Opt_max_extent, "max_extent=%s"}, 75 {Opt_max_extent, "max_extent=%s"},
76 {Opt_max_inline, "max_inline=%s"},
76 {Opt_alloc_start, "alloc_start=%s"}, 77 {Opt_alloc_start, "alloc_start=%s"},
77 {Opt_ssd, "ssd"}, 78 {Opt_ssd, "ssd"},
78 {Opt_err, NULL} 79 {Opt_err, NULL}
@@ -178,6 +179,22 @@ static int parse_options (char * options,
178 } 179 }
179 } 180 }
180 break; 181 break;
182 case Opt_max_inline:
183 if (info) {
184 char *num = match_strdup(&args[0]);
185 if (num) {
186 info->max_inline =
187 btrfs_parse_size(num);
188 kfree(num);
189
190 info->max_inline = max_t(u64,
191 info->max_inline,
192 root->sectorsize);
193 printk("btrfs: max_inline at %Lu\n",
194 info->max_inline);
195 }
196 }
197 break;
181 case Opt_alloc_start: 198 case Opt_alloc_start:
182 if (info) { 199 if (info) {
183 char *num = match_strdup(&args[0]); 200 char *num = match_strdup(&args[0]);