Loading fs/cifs/dir.c +17 −9 Original line number Diff line number Diff line Loading @@ -162,18 +162,16 @@ cifs_fill_fileinfo(struct inode *newinode, __u16 fileHandle, pCifsInode = CIFS_I(newinode); if (pCifsInode) { /* if readable file instance put first in list*/ if (write_only) { if (write_only) list_add_tail(&pCifsFile->flist, &pCifsInode->openFileList); } else { list_add(&pCifsFile->flist, &pCifsInode->openFileList); } else list_add(&pCifsFile->flist, &pCifsInode->openFileList); if ((oplock & 0xF) == OPLOCK_EXCLUSIVE) { pCifsInode->clientCanCacheAll = true; pCifsInode->clientCanCacheRead = true; cFYI(1, ("Exclusive Oplock inode %p", newinode)); cFYI(1, ("Exclusive Oplock inode %p", newinode)); } else if ((oplock & 0xF) == OPLOCK_READ) pCifsInode->clientCanCacheRead = true; } Loading Loading @@ -668,6 +666,16 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, parent_dir_inode->i_sb, mode, nd->intent.open.flags, &oplock, &fileHandle, xid); /* * This code works around a bug in * samba posix open in samba versions 3.3.1 * and earlier where create works * but open fails with invalid parameter. * If either of these error codes are * returned, follow the normal lookup. * Otherwise, the error during posix open * is handled. */ if ((rc != -EINVAL) && (rc != -EOPNOTSUPP)) posix_open = true; } Loading fs/cifs/file.c +1 −3 Original line number Diff line number Diff line Loading @@ -307,11 +307,9 @@ int cifs_open(struct inode *inode, struct file *file) rc = 0; FreeXid(xid); return rc; } else { if ((file->f_flags & O_CREAT) && (file->f_flags & O_EXCL)) } else if ((file->f_flags & O_CREAT) && (file->f_flags & O_EXCL)) cERROR(1, ("could not find file instance for " "new file %p", file)); } full_path = build_path_from_dentry(file->f_path.dentry); if (full_path == NULL) { Loading Loading
fs/cifs/dir.c +17 −9 Original line number Diff line number Diff line Loading @@ -162,18 +162,16 @@ cifs_fill_fileinfo(struct inode *newinode, __u16 fileHandle, pCifsInode = CIFS_I(newinode); if (pCifsInode) { /* if readable file instance put first in list*/ if (write_only) { if (write_only) list_add_tail(&pCifsFile->flist, &pCifsInode->openFileList); } else { list_add(&pCifsFile->flist, &pCifsInode->openFileList); } else list_add(&pCifsFile->flist, &pCifsInode->openFileList); if ((oplock & 0xF) == OPLOCK_EXCLUSIVE) { pCifsInode->clientCanCacheAll = true; pCifsInode->clientCanCacheRead = true; cFYI(1, ("Exclusive Oplock inode %p", newinode)); cFYI(1, ("Exclusive Oplock inode %p", newinode)); } else if ((oplock & 0xF) == OPLOCK_READ) pCifsInode->clientCanCacheRead = true; } Loading Loading @@ -668,6 +666,16 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry, parent_dir_inode->i_sb, mode, nd->intent.open.flags, &oplock, &fileHandle, xid); /* * This code works around a bug in * samba posix open in samba versions 3.3.1 * and earlier where create works * but open fails with invalid parameter. * If either of these error codes are * returned, follow the normal lookup. * Otherwise, the error during posix open * is handled. */ if ((rc != -EINVAL) && (rc != -EOPNOTSUPP)) posix_open = true; } Loading
fs/cifs/file.c +1 −3 Original line number Diff line number Diff line Loading @@ -307,11 +307,9 @@ int cifs_open(struct inode *inode, struct file *file) rc = 0; FreeXid(xid); return rc; } else { if ((file->f_flags & O_CREAT) && (file->f_flags & O_EXCL)) } else if ((file->f_flags & O_CREAT) && (file->f_flags & O_EXCL)) cERROR(1, ("could not find file instance for " "new file %p", file)); } full_path = build_path_from_dentry(file->f_path.dentry); if (full_path == NULL) { Loading