diff options
author | Gordon Ross <gwr@racktopsystems.com> | 2022-02-23 09:25:16 -0500 |
---|---|---|
committer | Toomas Soome <tsoome@me.com> | 2022-12-14 00:03:52 +0200 |
commit | 7f6a299e282ed51917878b84744774a6634e5dc6 (patch) | |
tree | d86a52cd10c6433fc30ec9602adeb727c22ed97b /usr/src/uts/common/fs/smbsrv/smb_oplock.c | |
parent | 72b35b0568511bf35ca88532dff910dc0f16847f (diff) | |
download | illumos-joyent-7f6a299e282ed51917878b84744774a6634e5dc6.tar.gz |
15210 smbtorture lease and oplock failures
Reviewed by: Joyce McIntosh <jmcintosh@racktopsystems.com>
Reviewed by: Andy Stormont <andyjstormont@gmail.com>
Reviewed by: Matt Barden <mbarden@racktopsystems.com>
Approved by: Dan McDonald <danmcd@mnx.io>
Diffstat (limited to 'usr/src/uts/common/fs/smbsrv/smb_oplock.c')
-rw-r--r-- | usr/src/uts/common/fs/smbsrv/smb_oplock.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/usr/src/uts/common/fs/smbsrv/smb_oplock.c b/usr/src/uts/common/fs/smbsrv/smb_oplock.c index a3fd103fa1..58447a98f3 100644 --- a/usr/src/uts/common/fs/smbsrv/smb_oplock.c +++ b/usr/src/uts/common/fs/smbsrv/smb_oplock.c @@ -55,7 +55,7 @@ smb1_oplock_ack_break(smb_request_t *sr, uchar_t oplock_level) smb_llist_enter(&node->n_ofile_list, RW_READER); mutex_enter(&node->n_oplock.ol_mutex); - ofile->f_oplock.og_breaking = 0; + ofile->f_oplock.og_breaking = B_FALSE; cv_broadcast(&ofile->f_oplock.og_ack_cv); (void) smb_oplock_ack_break(sr, ofile, &NewLevel); @@ -189,7 +189,7 @@ smb1_oplock_send_break(smb_request_t *sr) * We're expecting an ACK. Wait in this thread * so we can log clients that don't respond. */ - status = smb_oplock_wait_ack(sr); + status = smb_oplock_wait_ack(sr, NewLevel); if (status == 0) return; @@ -207,7 +207,7 @@ smb1_oplock_send_break(smb_request_t *sr) smb_llist_enter(&node->n_ofile_list, RW_READER); mutex_enter(&node->n_oplock.ol_mutex); - ofile->f_oplock.og_breaking = 0; + ofile->f_oplock.og_breaking = B_FALSE; cv_broadcast(&ofile->f_oplock.og_ack_cv); status = smb_oplock_ack_break(sr, ofile, &NewLevel); @@ -313,8 +313,9 @@ smb1_oplock_acquire(smb_request_t *sr, boolean_t level2ok) case NT_STATUS_OPLOCK_BREAK_IN_PROGRESS: ofile->f_oplock.og_dialect = (level2ok) ? NT_LM_0_12 : LANMAN2_1; - ofile->f_oplock.og_state = op->op_oplock_state; - ofile->f_oplock.og_breaking = 0; + ofile->f_oplock.og_state = op->op_oplock_state; + ofile->f_oplock.og_breakto = op->op_oplock_state; + ofile->f_oplock.og_breaking = B_FALSE; break; case NT_STATUS_OPLOCK_NOT_GRANTED: op->op_oplock_level = SMB_OPLOCK_NONE; |