aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2016-09-14 14:53:34 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-09-23 05:31:31 -0400
commit180d904442023dfb01c2cdbbf4d17ecd0972081d (patch)
tree7addcf39fad4d34a7a17f4a2e7c48a1a0dcf109e
parentdee87d47365e47078e3ba72a64d50ff25927e498 (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.c19
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;
438fail_dput:
439 dput(s->s_root);
440 s->s_root = NULL;
433fail: 441fail:
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
466out_undo_sget: 469out_undo_sget: