diff options
-rw-r--r-- | sys/kern/vfs_mount.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index 3628b3b..dfb46e2 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -134,7 +134,6 @@ static const char *global_opts[] = { "errmsg", "fstype", "fspath", - "rdonly", "ro", "rw", "nosuid", @@ -684,9 +683,13 @@ vfs_donmount(struct thread *td, int fsflags, struct uio *fsoptions) fsflags &= ~MNT_RDONLY; has_rw = 1; } - else if (strcmp(opt->name, "ro") == 0 || - strcmp(opt->name, "rdonly") == 0) + else if (strcmp(opt->name, "ro") == 0) fsflags |= MNT_RDONLY; + else if (strcmp(opt->name, "rdonly") == 0) { + free(opt->name, M_MOUNT); + opt->name = strdup("ro", M_MOUNT); + fsflags |= MNT_RDONLY; + } else if (strcmp(opt->name, "snapshot") == 0) fsflags |= MNT_SNAPSHOT; else if (strcmp(opt->name, "suiddir") == 0) |