diff options
-rw-r--r-- | source3/include/smb.h | 4 | ||||
-rw-r--r-- | source3/smbd/open.c | 15 | ||||
-rw-r--r-- | source3/smbd/oplock.c | 1 | ||||
-rw-r--r-- | source3/smbd/trans2.c | 5 | ||||
-rw-r--r-- | source4/torture/raw/oplock.c | 3 |
5 files changed, 9 insertions, 19 deletions
diff --git a/source3/include/smb.h b/source3/include/smb.h index 9dd8c58d80..8dd6555b54 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -675,10 +675,10 @@ enum remote_arch_types {RA_UNKNOWN, RA_WFWG, RA_OS2, RA_WIN95, RA_WINNT, * write. */ /* #define DEFERRED_OPEN_ENTRY 0x20 */ /* Not used anymore */ /* #define UNUSED_SHARE_MODE_ENTRY 0x40 */ /* Not used anymore */ -#define FORCE_OPLOCK_BREAK_TO_NONE 0x80 +/* #define FORCE_OPLOCK_BREAK_TO_NONE 0x80 */ /* Not used anymore */ /* None of the following should ever appear in fsp->oplock_request. */ -#define SAMBA_PRIVATE_OPLOCK_MASK (INTERNAL_OPEN_ONLY|FORCE_OPLOCK_BREAK_TO_NONE) +#define SAMBA_PRIVATE_OPLOCK_MASK (INTERNAL_OPEN_ONLY) #define EXCLUSIVE_OPLOCK_TYPE(lck) ((lck) & ((unsigned int)EXCLUSIVE_OPLOCK|(unsigned int)BATCH_OPLOCK)) #define BATCH_OPLOCK_TYPE(lck) ((lck) & (unsigned int)BATCH_OPLOCK) diff --git a/source3/smbd/open.c b/source3/smbd/open.c index c28d2a39fa..f4210d7417 100644 --- a/source3/smbd/open.c +++ b/source3/smbd/open.c @@ -1184,14 +1184,6 @@ static NTSTATUS send_break_message(files_struct *fsp, /* Create the message. */ share_mode_entry_to_message(msg, exclusive); - /* Add in the FORCE_OPLOCK_BREAK_TO_NONE bit in the message if set. We - don't want this set in the share mode struct pointed to by lck. */ - - if (oplock_request & FORCE_OPLOCK_BREAK_TO_NONE) { - SSVAL(msg,OP_BREAK_MSG_OP_TYPE_OFFSET, - exclusive->op_type | FORCE_OPLOCK_BREAK_TO_NONE); - } - status = messaging_send_buf(fsp->conn->sconn->msg_ctx, exclusive->pid, MSG_SMB_BREAK_REQUEST, (uint8 *)msg, @@ -1914,10 +1906,7 @@ static int calculate_open_access_flags(uint32_t access_mask, * mean the same thing under DOS and Unix. */ - need_write = - ((access_mask & (FILE_WRITE_DATA | FILE_APPEND_DATA)) || - (oplock_request & FORCE_OPLOCK_BREAK_TO_NONE)); - + need_write = (access_mask & (FILE_WRITE_DATA | FILE_APPEND_DATA)); if (!need_write) { return O_RDONLY; } @@ -2181,7 +2170,7 @@ static NTSTATUS open_file_ntcreate(connection_struct *conn, open_access_mask = access_mask; - if ((flags2 & O_TRUNC) || (oplock_request & FORCE_OPLOCK_BREAK_TO_NONE)) { + if (flags2 & O_TRUNC) { open_access_mask |= FILE_WRITE_DATA; /* This will cause oplock breaks. */ } diff --git a/source3/smbd/oplock.c b/source3/smbd/oplock.c index 434bafa3ca..4cdf68bc65 100644 --- a/source3/smbd/oplock.c +++ b/source3/smbd/oplock.c @@ -535,7 +535,6 @@ static void process_oplock_break_message(struct messaging_context *msg_ctx, use_kernel = lp_kernel_oplocks(SNUM(fsp->conn)) && koplocks; if ((global_client_caps & CAP_LEVEL_II_OPLOCKS) && - !(msg.op_type & FORCE_OPLOCK_BREAK_TO_NONE) && !(use_kernel && !(koplocks->flags & KOPLOCKS_LEVEL2_SUPPORTED)) && lp_level2_oplocks(SNUM(fsp->conn))) { break_to_level2 = True; diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c index aaf0e62289..e6bb12c42f 100644 --- a/source3/smbd/trans2.c +++ b/source3/smbd/trans2.c @@ -5900,7 +5900,7 @@ static NTSTATUS smb_set_file_size(connection_struct *conn, FILE_OPEN, /* create_disposition*/ 0, /* create_options */ FILE_ATTRIBUTE_NORMAL, /* file_attributes */ - FORCE_OPLOCK_BREAK_TO_NONE, /* oplock_request */ + 0, /* oplock_request */ 0, /* allocation_size */ 0, /* private_flags */ NULL, /* sd */ @@ -6891,7 +6891,7 @@ static NTSTATUS smb_set_file_allocation_info(connection_struct *conn, FILE_OPEN, /* create_disposition*/ 0, /* create_options */ FILE_ATTRIBUTE_NORMAL, /* file_attributes */ - FORCE_OPLOCK_BREAK_TO_NONE, /* oplock_request */ + 0, /* oplock_request */ 0, /* allocation_size */ 0, /* private_flags */ NULL, /* sd */ @@ -6919,7 +6919,6 @@ static NTSTATUS smb_set_file_allocation_info(connection_struct *conn, * if there are no pending writes. */ trigger_write_time_update_immediate(new_fsp); - close_file(req, new_fsp, NORMAL_CLOSE); return NT_STATUS_OK; } diff --git a/source4/torture/raw/oplock.c b/source4/torture/raw/oplock.c index ad21623fc9..c2e086aa95 100644 --- a/source4/torture/raw/oplock.c +++ b/source4/torture/raw/oplock.c @@ -264,6 +264,9 @@ static uint8_t get_setinfo_break_count(struct torture_context *tctx) if (TARGET_IS_W2K12(tctx)) { return 2; } + if (TARGET_IS_SAMBA3(tctx)) { + return 2; + } return 1; } |