Skip to content

Commit

Permalink
mount options: fix affs
Browse files Browse the repository at this point in the history
Add a .show_options super operation to affs.

Use generic_show_options() and save the complete option string in
affs_fill_super() and affs_remount().

Signed-off-by: Miklos Szeredi <[email protected]>
Cc: Roman Zippel <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Miklos Szeredi authored and Linus Torvalds committed Feb 8, 2008
1 parent e11400b commit e9b3961
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions fs/affs/super.c
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ static const struct super_operations affs_sops = {
.write_super = affs_write_super,
.statfs = affs_statfs,
.remount_fs = affs_remount,
.show_options = generic_show_options,
};

enum {
Expand Down Expand Up @@ -272,6 +273,8 @@ static int affs_fill_super(struct super_block *sb, void *data, int silent)
u8 sig[4];
int ret = -EINVAL;

save_mount_options(sb, data);

pr_debug("AFFS: read_super(%s)\n",data ? (const char *)data : "no options");

sb->s_magic = AFFS_SUPER_MAGIC;
Expand Down Expand Up @@ -487,14 +490,21 @@ affs_remount(struct super_block *sb, int *flags, char *data)
int root_block;
unsigned long mount_flags;
int res = 0;
char *new_opts = kstrdup(data, GFP_KERNEL);

pr_debug("AFFS: remount(flags=0x%x,opts=\"%s\")\n",*flags,data);

*flags |= MS_NODIRATIME;

if (!parse_options(data,&uid,&gid,&mode,&reserved,&root_block,
&blocksize,&sbi->s_prefix,sbi->s_volume,&mount_flags))
if (!parse_options(data, &uid, &gid, &mode, &reserved, &root_block,
&blocksize, &sbi->s_prefix, sbi->s_volume,
&mount_flags)) {
kfree(new_opts);
return -EINVAL;
}
kfree(sb->s_options);
sb->s_options = new_opts;

sbi->s_flags = mount_flags;
sbi->s_mode = mode;
sbi->s_uid = uid;
Expand Down

0 comments on commit e9b3961

Please sign in to comment.