Skip to content

Commit

Permalink
fat: ix mount option parsing
Browse files Browse the repository at this point in the history
parse_options() is supposed to return value < 0 on error however we
returned 0 (success) in a lot of cases.  This actually was not a problem
in practice because match_token() used by parse_options() is clever and
catches most of the problems for us.

Signed-off-by: Jan Kara <[email protected]>
Cc: OGAWA Hirofumi <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
jankara authored and torvalds committed Dec 18, 2012
1 parent 58156c8 commit 5b3d5ae
Showing 1 changed file with 11 additions and 11 deletions.
22 changes: 11 additions & 11 deletions fs/fat/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -972,51 +972,51 @@ static int parse_options(struct super_block *sb, char *options, int is_vfat,
break;
case Opt_uid:
if (match_int(&args[0], &option))
return 0;
return -EINVAL;
opts->fs_uid = make_kuid(current_user_ns(), option);
if (!uid_valid(opts->fs_uid))
return 0;
return -EINVAL;
break;
case Opt_gid:
if (match_int(&args[0], &option))
return 0;
return -EINVAL;
opts->fs_gid = make_kgid(current_user_ns(), option);
if (!gid_valid(opts->fs_gid))
return 0;
return -EINVAL;
break;
case Opt_umask:
if (match_octal(&args[0], &option))
return 0;
return -EINVAL;
opts->fs_fmask = opts->fs_dmask = option;
break;
case Opt_dmask:
if (match_octal(&args[0], &option))
return 0;
return -EINVAL;
opts->fs_dmask = option;
break;
case Opt_fmask:
if (match_octal(&args[0], &option))
return 0;
return -EINVAL;
opts->fs_fmask = option;
break;
case Opt_allow_utime:
if (match_octal(&args[0], &option))
return 0;
return -EINVAL;
opts->allow_utime = option & (S_IWGRP | S_IWOTH);
break;
case Opt_codepage:
if (match_int(&args[0], &option))
return 0;
return -EINVAL;
opts->codepage = option;
break;
case Opt_flush:
opts->flush = 1;
break;
case Opt_time_offset:
if (match_int(&args[0], &option))
return 0;
return -EINVAL;
if (option < -12 * 60 || option > 12 * 60)
return 0;
return -EINVAL;
opts->tz_set = 1;
opts->time_offset = option;
break;
Expand Down

0 comments on commit 5b3d5ae

Please sign in to comment.