Messages in this thread Patch in this message | | | Date | Fri, 15 May 2009 13:25:36 +0800 | From | Wei Yongjun <> | Subject | [PATCHv2] devpts: fix to set default values of mount options |
| |
If devpts is mounted with no option specified, the default values of mount options will no be set. This happend in my Fedora11Beta box.
$ mkdir /dev/pts2
$ mount -t devpts devpts /dev/pts2 $ cat /proc/mounts devpts /dev/pts2 devpts rw,relatime,mode=000,ptmxmode=000 0 0
# umount /dev/pts2 $ mount -t devpts -o gid=0 devpts /dev/pts2 $ cat /proc/mounts devpts /dev/pts2 devpts rw,relatime,gid=0,mode=600,ptmxmode=000 0 0
This patch fixed this problem.
Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> --- fs/devpts/inode.c | 12 +++++++----- 1 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c index 21165cf..13392b5 100644 --- a/fs/devpts/inode.c +++ b/fs/devpts/inode.c @@ -105,6 +105,9 @@ static int parse_mount_options(char *data, int op, struct pts_mount_opts *opts) if (op == PARSE_MOUNT) opts->newinstance = 0; + if (!data) + return 0; + while ((p = strsep(&data, ",")) != NULL) { substring_t args[MAX_OPT_ARGS]; int token; @@ -356,11 +359,10 @@ static int devpts_get_sb(struct file_system_type *fs_type, struct super_block *s; memset(&opts, 0, sizeof(opts)); - if (data) { - error = parse_mount_options(data, PARSE_MOUNT, &opts); - if (error) - return error; - } + + error = parse_mount_options(data, PARSE_MOUNT, &opts); + if (error) + return error; if (opts.newinstance) s = sget(fs_type, NULL, set_anon_super, NULL); -- 1.5.3.8
| |