summaryrefslogtreecommitdiffstats
path: root/source/smbd
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-03-11 12:37:01 -0700
committerKarolin Seeger <kseeger@samba.org>2008-04-11 09:09:43 +0200
commit03825a9c5e565d9a9e381d67754d02d75547fcc0 (patch)
tree5933eea75da247aac7bf2662658943604200fcdc /source/smbd
parent683866f410fd5862adbf563061ec0f7c8327c5db (diff)
downloadsamba-03825a9c5e565d9a9e381d67754d02d75547fcc0.tar.gz
samba-03825a9c5e565d9a9e381d67754d02d75547fcc0.tar.xz
samba-03825a9c5e565d9a9e381d67754d02d75547fcc0.zip
Fix S3 to pass the test_raw_oplock_exclusive3 test.
Jeremy. (cherry picked from commit 028302fac53083d66c969b876db1d831e53b8e35)
Diffstat (limited to 'source/smbd')
-rw-r--r--source/smbd/open.c5
-rw-r--r--source/smbd/trans2.c2
2 files changed, 4 insertions, 3 deletions
diff --git a/source/smbd/open.c b/source/smbd/open.c
index cc785033790..0cc48c4f1c3 100644
--- a/source/smbd/open.c
+++ b/source/smbd/open.c
@@ -1366,7 +1366,7 @@ NTSTATUS open_file_ntcreate(connection_struct *conn,
se_map_generic(&access_mask, &file_generic_mapping);
open_access_mask = access_mask;
- if (flags2 & O_TRUNC) {
+ if ((flags2 & O_TRUNC) || (oplock_request & FORCE_OPLOCK_BREAK_TO_NONE)) {
open_access_mask |= FILE_WRITE_DATA; /* This will cause oplock breaks. */
}
@@ -1378,7 +1378,8 @@ NTSTATUS open_file_ntcreate(connection_struct *conn,
* mean the same thing under DOS and Unix.
*/
- if (access_mask & (FILE_WRITE_DATA | FILE_APPEND_DATA)) {
+ if ((access_mask & (FILE_WRITE_DATA | FILE_APPEND_DATA)) ||
+ (oplock_request & FORCE_OPLOCK_BREAK_TO_NONE)) {
/* DENY_DOS opens are always underlying read-write on the
file handle, no matter what the requested access mask
says. */
diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c
index 92a8ad2d853..c9380f99ea1 100644
--- a/source/smbd/trans2.c
+++ b/source/smbd/trans2.c
@@ -4930,7 +4930,7 @@ static NTSTATUS smb_set_file_size(connection_struct *conn,
}
status = open_file_ntcreate(conn, req, fname, psbuf,
- FILE_WRITE_DATA,
+ FILE_READ_ATTRIBUTES|FILE_WRITE_ATTRIBUTES,
FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
FILE_OPEN,
0,