summaryrefslogtreecommitdiff
path: root/fs/devpts/inode.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2010-03-21 04:57:43 +0300
committerAl Viro <viro@zeniv.linux.org.uk>2010-05-22 02:31:12 +0400
commit894680710d813137077ad7cb351b713f64cabbdf (patch)
tree67cd171f70f8dd938374bf02c1c8d562d08a3f61 /fs/devpts/inode.c
parenta135aa2cd76a1de1a84312e0bb3498a5da76782d (diff)
downloadlinux-894680710d813137077ad7cb351b713f64cabbdf.tar.xz
Simplify devpts_get_sb() failure exits
postpone simple_set_mnt() until we know we won't fail. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/devpts/inode.c')
-rw-r--r--fs/devpts/inode.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
index 0120247b41c0..8b3ffd5b5235 100644
--- a/fs/devpts/inode.c
+++ b/fs/devpts/inode.c
@@ -384,18 +384,15 @@ static int devpts_get_sb(struct file_system_type *fs_type,
s->s_flags |= MS_ACTIVE;
}
- simple_set_mnt(mnt, s);
-
memcpy(&(DEVPTS_SB(s))->mount_opts, &opts, sizeof(opts));
error = mknod_ptmx(s);
if (error)
- goto out_dput;
+ goto out_undo_sget;
- return 0;
+ simple_set_mnt(mnt, s);
-out_dput:
- dput(s->s_root); /* undo dget() in simple_set_mnt() */
+ return 0;
out_undo_sget:
deactivate_locked_super(s);