mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 23:10:53 +07:00
Btrfs: use u64 for subvolid when parsing mount options
Although for most time, int is enough for subvolid, we should ensure safety in theory. Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com> Reviewed-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
parent
2c334e87f3
commit
1493381f2f
@ -327,7 +327,7 @@ enum {
|
|||||||
static match_table_t tokens = {
|
static match_table_t tokens = {
|
||||||
{Opt_degraded, "degraded"},
|
{Opt_degraded, "degraded"},
|
||||||
{Opt_subvol, "subvol=%s"},
|
{Opt_subvol, "subvol=%s"},
|
||||||
{Opt_subvolid, "subvolid=%d"},
|
{Opt_subvolid, "subvolid=%s"},
|
||||||
{Opt_device, "device=%s"},
|
{Opt_device, "device=%s"},
|
||||||
{Opt_nodatasum, "nodatasum"},
|
{Opt_nodatasum, "nodatasum"},
|
||||||
{Opt_nodatacow, "nodatacow"},
|
{Opt_nodatacow, "nodatacow"},
|
||||||
@ -673,8 +673,8 @@ static int btrfs_parse_early_options(const char *options, fmode_t flags,
|
|||||||
{
|
{
|
||||||
substring_t args[MAX_OPT_ARGS];
|
substring_t args[MAX_OPT_ARGS];
|
||||||
char *device_name, *opts, *orig, *p;
|
char *device_name, *opts, *orig, *p;
|
||||||
|
char *num = NULL;
|
||||||
int error = 0;
|
int error = 0;
|
||||||
int intarg;
|
|
||||||
|
|
||||||
if (!options)
|
if (!options)
|
||||||
return 0;
|
return 0;
|
||||||
@ -704,16 +704,14 @@ static int btrfs_parse_early_options(const char *options, fmode_t flags,
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case Opt_subvolid:
|
case Opt_subvolid:
|
||||||
error = match_int(&args[0], &intarg);
|
num = match_strdup(&args[0]);
|
||||||
if (!error) {
|
if (num) {
|
||||||
goto out;
|
*subvol_objectid = memparse(num, NULL);
|
||||||
} else if (intarg >= 0) {
|
kfree(num);
|
||||||
/* we want the original fs_tree */
|
/* we want the original fs_tree */
|
||||||
if (!intarg)
|
if (!*subvol_objectid)
|
||||||
*subvol_objectid =
|
*subvol_objectid =
|
||||||
BTRFS_FS_TREE_OBJECTID;
|
BTRFS_FS_TREE_OBJECTID;
|
||||||
else
|
|
||||||
*subvol_objectid = intarg;
|
|
||||||
} else {
|
} else {
|
||||||
error = -EINVAL;
|
error = -EINVAL;
|
||||||
goto out;
|
goto out;
|
||||||
|
Loading…
Reference in New Issue
Block a user