diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2016-09-14 14:53:34 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-09-23 05:31:31 -0400 |
commit | 180d904442023dfb01c2cdbbf4d17ecd0972081d (patch) | |
tree | 7addcf39fad4d34a7a17f4a2e7c48a1a0dcf109e | |
parent | dee87d47365e47078e3ba72a64d50ff25927e498 (diff) |
devpts: Move the creation of /dev/pts/ptmx into fill_super
The code makes more sense here and things are just clearer.
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 | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c index c59d39f2d512..43773543a783 100644 --- a/fs/devpts/inode.c +++ b/fs/devpts/inode.c | |||
@@ -425,11 +425,19 @@ devpts_fill_super(struct super_block *s, void *data, int silent) | |||
425 | set_nlink(inode, 2); | 425 | set_nlink(inode, 2); |
426 | 426 | ||
427 | s->s_root = d_make_root(inode); | 427 | s->s_root = d_make_root(inode); |
428 | if (s->s_root) | 428 | if (!s->s_root) { |
429 | return 0; | 429 | pr_err("get root dentry failed\n"); |
430 | goto fail; | ||
431 | } | ||
430 | 432 | ||
431 | pr_err("get root dentry failed\n"); | 433 | error = mknod_ptmx(s); |
434 | if (error) | ||
435 | goto fail_dput; | ||
432 | 436 | ||
437 | return 0; | ||
438 | fail_dput: | ||
439 | dput(s->s_root); | ||
440 | s->s_root = NULL; | ||
433 | fail: | 441 | fail: |
434 | return error; | 442 | return error; |
435 | } | 443 | } |
@@ -456,11 +464,6 @@ static struct dentry *devpts_mount(struct file_system_type *fs_type, | |||
456 | goto out_undo_sget; | 464 | goto out_undo_sget; |
457 | s->s_flags |= MS_ACTIVE; | 465 | s->s_flags |= MS_ACTIVE; |
458 | } | 466 | } |
459 | |||
460 | error = mknod_ptmx(s); | ||
461 | if (error) | ||
462 | goto out_undo_sget; | ||
463 | |||
464 | return dget(s->s_root); | 467 | return dget(s->s_root); |
465 | 468 | ||
466 | out_undo_sget: | 469 | out_undo_sget: |