diff options
-rw-r--r-- | usr/src/uts/common/fs/smbsrv/smb2_durable.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/usr/src/uts/common/fs/smbsrv/smb2_durable.c b/usr/src/uts/common/fs/smbsrv/smb2_durable.c index 41bd824b60..c783cd9659 100644 --- a/usr/src/uts/common/fs/smbsrv/smb2_durable.c +++ b/usr/src/uts/common/fs/smbsrv/smb2_durable.c @@ -179,6 +179,8 @@ preserve_some: /* preserve_opens == SMB2_DH_PRESERVE_SOME */ switch (of->dh_vers) { + uint32_t ol_state; + case SMB2_RESILIENT: return (B_TRUE); @@ -188,7 +190,11 @@ preserve_some: /* FALLTHROUGH */ case SMB2_DURABLE_V1: /* IS durable (v1 or v2) */ - if ((of->f_oplock.og_state & (OPLOCK_LEVEL_BATCH | + if (of->f_lease != NULL) + ol_state = of->f_lease->ls_state; + else + ol_state = of->f_oplock.og_state; + if ((ol_state & (OPLOCK_LEVEL_BATCH | OPLOCK_LEVEL_CACHE_HANDLE)) != 0) return (B_TRUE); /* FALLTHROUGH */ |