lookup create with O_EXCL patch merged
Steve French <[email protected]>
| Newsgroups | gmane.linux.file-systems.cifs |
|---|---|
| Message-ID | <[email protected]> |
Now that it has been tested by Shirish, merged Jeff's patch into cifs-2.6.git cifs: fix regression with O_EXCL creates and optimize away lookup Signed-off-by: Jeff Layton <[email protected]> Tested-by: Shirish Pargaonkar <[email protected]> CC: Stable Kernel <[email protected]> --- diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c index a40054f..ff55fc6 100644 --- a/fs/cifs/dir.c +++ b/fs/cifs/dir.c @@ -643,6 +643,15 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, } } + /* + * O_EXCL: optimize away the lookup, but don't hash the dentry. Let + * the VFS handle the create. + */ + if (nd->flags & LOOKUP_EXCL) { + d_instantiate(direntry, NULL); + return 0; + } + /* can not grab the rename sem here since it would deadlock in the cases (beginning of sys_rename itself) in which we already have the sb rename sem */ -- Thanks, Steve