aboutsummaryrefslogtreecommitdiffstats
path: root/fs/devpts
diff options
context:
space:
mode:
authorSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>2009-01-28 19:57:12 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2009-03-27 14:43:59 -0400
commita9f184f02aa49d46c4c35311d93cbcd1c61149df (patch)
tree0a2f44b6be19fa876c7b423a1d1f02059952f926 /fs/devpts
parentaf5df56688acfb75c1b15b4e000ec5e82a9cdc29 (diff)
devpts: Must release s_umount on error
We should drop the ->s_umount mutex if an error occurs after the sget()/grab_super() call. This was introduced when adding support for multiple instances of devpts and noticed during a code review/reorg. Signed-off-by: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/devpts')
-rw-r--r--fs/devpts/inode.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c
index bff4052b05e7..140b43144cd8 100644
--- a/fs/devpts/inode.c
+++ b/fs/devpts/inode.c
@@ -385,6 +385,7 @@ static int new_pts_mount(struct file_system_type *fs_type, int flags,
385 385
386fail: 386fail:
387 dput(mnt->mnt_sb->s_root); 387 dput(mnt->mnt_sb->s_root);
388 up_write(&mnt->mnt_sb->s_umount);
388 deactivate_super(mnt->mnt_sb); 389 deactivate_super(mnt->mnt_sb);
389 return err; 390 return err;
390} 391}
@@ -473,6 +474,7 @@ static int init_pts_mount(struct file_system_type *fs_type, int flags,
473 err = mknod_ptmx(mnt->mnt_sb); 474 err = mknod_ptmx(mnt->mnt_sb);
474 if (err) { 475 if (err) {
475 dput(mnt->mnt_sb->s_root); 476 dput(mnt->mnt_sb->s_root);
477 up_write(&mnt->mnt_sb->s_umount);
476 deactivate_super(mnt->mnt_sb); 478 deactivate_super(mnt->mnt_sb);
477 } 479 }
478 480