瀏覽代碼

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>
Al Viro 15 年之前
父節點
當前提交
894680710d
共有 1 個文件被更改,包括 3 次插入6 次删除
  1. 3 6
      fs/devpts/inode.c

+ 3 - 6
fs/devpts/inode.c

@@ -384,18 +384,15 @@ static int devpts_get_sb(struct file_system_type *fs_type,
 		s->s_flags |= MS_ACTIVE;
 		s->s_flags |= MS_ACTIVE;
 	}
 	}
 
 
-	simple_set_mnt(mnt, s);
-
 	memcpy(&(DEVPTS_SB(s))->mount_opts, &opts, sizeof(opts));
 	memcpy(&(DEVPTS_SB(s))->mount_opts, &opts, sizeof(opts));
 
 
 	error = mknod_ptmx(s);
 	error = mknod_ptmx(s);
 	if (error)
 	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:
 out_undo_sget:
 	deactivate_locked_super(s);
 	deactivate_locked_super(s);