[Cluster-devel] [PATCH 1/3] gfs2: bugger off early if O_CREAT open finds a directory
Bob Peterson
rpeterso at redhat.com
Wed Nov 19 20:33:29 UTC 2014
----- Original Message -----
> Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
> ---
> 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
>
>
Hm. Seems wrong that it should return 0 if the dirent exists (mkdir of a
directory that already exists) but it looks like it already behaves that way.
So I guess so. It may warrant further investigation.
Bob Peterson
Red Hat File Systems
More information about the Cluster-devel
mailing list