From: Al Viro Date: Thu, 18 Sep 2014 21:38:59 +0000 (-0400) Subject: gfs2: bugger off early if O_CREAT open finds a directory X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=986cdb862e4aafc92a1537e04388898fc42b8bc0;p=deliverable%2Flinux.git gfs2: bugger off early if O_CREAT open finds a directory Signed-off-by: Al Viro --- diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index c4ed823d150e..310e2487239d 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)) {