Signed-off-by: "Eric W. Biederman" <ebied...@xmission.com> --- fs/devpts/inode.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c index 80c78bb472a9..46d633ab16c7 100644 --- a/fs/devpts/inode.c +++ b/fs/devpts/inode.c @@ -462,6 +462,7 @@ static int devpts_fill_super(struct super_block *s, void *data, int silent) { struct inode *inode; + int error; s->s_blocksize = 1024; s->s_blocksize_bits = 10; @@ -469,10 +470,16 @@ devpts_fill_super(struct super_block *s, void *data, int silent) s->s_op = &devpts_sops; s->s_time_gran = 1; + error = -ENOMEM; s->s_fs_info = new_pts_fs_info(); if (!s->s_fs_info) goto fail; + error = parse_mount_options(data, &DEVPTS_SB(s)->mount_opts); + if (error) + goto fail; + + error = -ENOMEM; inode = new_inode(s); if (!inode) goto fail; @@ -490,7 +497,7 @@ devpts_fill_super(struct super_block *s, void *data, int silent) pr_err("get root dentry failed\n"); fail: - return -ENOMEM; + return error; } #ifdef CONFIG_DEVPTS_MULTIPLE_INSTANCES @@ -557,10 +564,6 @@ static struct dentry *devpts_mount(struct file_system_type *fs_type, if (error) goto out_undo_sget; - error = parse_mount_options(data, &DEVPTS_SB(s)->mount_opts); - if (error) - goto out_undo_sget; - error = mknod_ptmx(s); if (error) goto out_undo_sget; -- 2.6.3