summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r--fs/btrfs/super.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index f878337cee6..9771eb8694b 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -325,9 +325,15 @@ static int btrfs_parse_early_options(const char *options, fmode_t flags,
break;
case Opt_subvolid:
intarg = 0;
- match_int(&args[0], &intarg);
- if (intarg)
- *subvol_objectid = intarg;
+ error = match_int(&args[0], &intarg);
+ if (!error) {
+ /* we want the original fs_tree */
+ if (!intarg)
+ *subvol_objectid =
+ BTRFS_FS_TREE_OBJECTID;
+ else
+ *subvol_objectid = intarg;
+ }
break;
case Opt_device:
error = btrfs_scan_one_device(match_strdup(&args[0]),