diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2016-09-14 14:53:33 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-09-23 05:31:31 -0400 |
commit | dee87d47365e47078e3ba72a64d50ff25927e498 (patch) | |
tree | 8b9e0a2baec2cb581deb71c945db6c34bc7b13ce | |
parent | a3081893cab48df3facff8144d9506610213241a (diff) |
devpts: Move parse_mount_options into fill_super
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | fs/devpts/inode.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c index 79a5941c2474..c59d39f2d512 100644 --- a/fs/devpts/inode.c +++ b/fs/devpts/inode.c | |||
@@ -395,6 +395,7 @@ static int | |||
395 | devpts_fill_super(struct super_block *s, void *data, int silent) | 395 | devpts_fill_super(struct super_block *s, void *data, int silent) |
396 | { | 396 | { |
397 | struct inode *inode; | 397 | struct inode *inode; |
398 | int error; | ||
398 | 399 | ||
399 | s->s_iflags &= ~SB_I_NODEV; | 400 | s->s_iflags &= ~SB_I_NODEV; |
400 | s->s_blocksize = 1024; | 401 | s->s_blocksize = 1024; |
@@ -403,10 +404,16 @@ devpts_fill_super(struct super_block *s, void *data, int silent) | |||
403 | s->s_op = &devpts_sops; | 404 | s->s_op = &devpts_sops; |
404 | s->s_time_gran = 1; | 405 | s->s_time_gran = 1; |
405 | 406 | ||
407 | error = -ENOMEM; | ||
406 | s->s_fs_info = new_pts_fs_info(s); | 408 | s->s_fs_info = new_pts_fs_info(s); |
407 | if (!s->s_fs_info) | 409 | if (!s->s_fs_info) |
408 | goto fail; | 410 | goto fail; |
409 | 411 | ||
412 | error = parse_mount_options(data, PARSE_MOUNT, &DEVPTS_SB(s)->mount_opts); | ||
413 | if (error) | ||
414 | goto fail; | ||
415 | |||
416 | error = -ENOMEM; | ||
410 | inode = new_inode(s); | 417 | inode = new_inode(s); |
411 | if (!inode) | 418 | if (!inode) |
412 | goto fail; | 419 | goto fail; |
@@ -424,7 +431,7 @@ devpts_fill_super(struct super_block *s, void *data, int silent) | |||
424 | pr_err("get root dentry failed\n"); | 431 | pr_err("get root dentry failed\n"); |
425 | 432 | ||
426 | fail: | 433 | fail: |
427 | return -ENOMEM; | 434 | return error; |
428 | } | 435 | } |
429 | 436 | ||
430 | /* | 437 | /* |
@@ -437,13 +444,8 @@ static struct dentry *devpts_mount(struct file_system_type *fs_type, | |||
437 | int flags, const char *dev_name, void *data) | 444 | int flags, const char *dev_name, void *data) |
438 | { | 445 | { |
439 | int error; | 446 | int error; |
440 | struct pts_mount_opts opts; | ||
441 | struct super_block *s; | 447 | struct super_block *s; |
442 | 448 | ||
443 | error = parse_mount_options(data, PARSE_MOUNT, &opts); | ||
444 | if (error) | ||
445 | return ERR_PTR(error); | ||
446 | |||
447 | s = sget(fs_type, NULL, set_anon_super, flags, NULL); | 449 | s = sget(fs_type, NULL, set_anon_super, flags, NULL); |
448 | if (IS_ERR(s)) | 450 | if (IS_ERR(s)) |
449 | return ERR_CAST(s); | 451 | return ERR_CAST(s); |
@@ -455,8 +457,6 @@ static struct dentry *devpts_mount(struct file_system_type *fs_type, | |||
455 | s->s_flags |= MS_ACTIVE; | 457 | s->s_flags |= MS_ACTIVE; |
456 | } | 458 | } |
457 | 459 | ||
458 | memcpy(&(DEVPTS_SB(s))->mount_opts, &opts, sizeof(opts)); | ||
459 | |||
460 | error = mknod_ptmx(s); | 460 | error = mknod_ptmx(s); |
461 | if (error) | 461 | if (error) |
462 | goto out_undo_sget; | 462 | goto out_undo_sget; |