From 6534120433e1b31543b76533620574d96524bd06 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Fri, 20 Jul 2012 01:17:26 +0400 Subject: [PATCH] --- yaml --- r: 320950 b: refs/heads/master c: 8e4bfca1d1f0de62301dd223675717e7a5f63a27 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/namei.c | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index 404a5d6ace26..b5af254456da 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 921a1650de9eed40dd64d681aba4a4d98856f289 +refs/heads/master: 8e4bfca1d1f0de62301dd223675717e7a5f63a27 diff --git a/trunk/fs/namei.c b/trunk/fs/namei.c index 5bc6f3d1dc8a..cf362dc9d1fd 100644 --- a/trunk/fs/namei.c +++ b/trunk/fs/namei.c @@ -2964,8 +2964,9 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, struct path path; int error; - if (S_ISDIR(mode)) - return -EPERM; + error = may_mknod(mode); + if (error) + return error; dentry = user_path_create(dfd, filename, &path, 0); if (IS_ERR(dentry)) @@ -2973,9 +2974,6 @@ SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, umode_t, mode, if (!IS_POSIXACL(path.dentry->d_inode)) mode &= ~current_umask(); - error = may_mknod(mode); - if (error) - goto out_dput; error = mnt_want_write(path.mnt); if (error) goto out_dput;