Whamcloud - gitweb
Return an error from simple_mkdir() if the target exists and isn't a directory.
authoradilger <adilger>
Tue, 23 Apr 2002 07:15:49 +0000 (07:15 +0000)
committeradilger <adilger>
Tue, 23 Apr 2002 07:15:49 +0000 (07:15 +0000)
lustre/lib/simple.c

index 366ec68..8876504 100644 (file)
@@ -54,8 +54,12 @@ int simple_mkdir(struct dentry *dir, char *name, int mode)
         if (IS_ERR(dchild))
                 RETURN(PTR_ERR(dchild));
 
-        if (dchild->d_inode)
+        if (dchild->d_inode) {
+               if (!S_ISDIR(dchild->d_inode->i_mode))
+                       GOTO(out, err = -ENOTDIR);
+
                 GOTO(out, err = -EEXIST);
+       }
 
         err = vfs_mkdir(dir->d_inode, dchild, mode);
 out: