From mboxrd@z Thu Jan 1 00:00:00 1970 From: Al Viro Date: Wed, 19 Nov 2014 19:34:49 +0000 Subject: [Cluster-devel] [PATCH 1/3] gfs2: bugger off early if O_CREAT open finds a directory In-Reply-To: <20141119193404.GY7996@ZenIV.linux.org.uk> References: <20141119193404.GY7996@ZenIV.linux.org.uk> Message-ID: <20141119193449.GZ7996@ZenIV.linux.org.uk> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Signed-off-by: Al Viro --- fs/gfs2/inode.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index c4ed823..310e248 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c @@ -624,6 +624,11 @@ static int gfs2_create_inode(struct inode *dir, struct dentry *dentry, inode = gfs2_dir_search(dir, &dentry->d_name, !S_ISREG(mode) || excl); error = PTR_ERR(inode); if (!IS_ERR(inode)) { + if (S_ISDIR(inode->i_mode)) { + iput(inode); + inode = ERR_PTR(-EISDIR); + goto fail_gunlock; + } d = d_splice_alias(inode, dentry); error = PTR_ERR(d); if (IS_ERR(d)) { -- 1.7.10.4