[patch] cifs: accidentally creating empty files
Dan Carpenter
dan.carpenter at oracle.com
Tue Sep 27 15:28:10 MDT 2011
This solves a problem for where a user without write permissions
was creating empty files. This function was supposed to do a lookup
only, the create happens later.
Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 72d448b..8515afe 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -566,11 +566,13 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
if (nd && !(nd->flags & LOOKUP_DIRECTORY) &&
(nd->flags & LOOKUP_OPEN) && !pTcon->broken_posix_open &&
(nd->intent.open.file->f_flags & O_CREAT)) {
+ unsigned int f_flags;
+
+ f_flags = (nd->intent.open.file->f_flags & ~O_CREAT);
rc = cifs_posix_open(full_path, &newInode,
parent_dir_inode->i_sb,
nd->intent.open.create_mode,
- nd->intent.open.file->f_flags, &oplock,
- &fileHandle, xid);
+ f_flags, &oplock, &fileHandle, xid);
/*
* The check below works around a bug in POSIX
* open in samba versions 3.3.1 and earlier where
More information about the samba-technical
mailing list