问题描述
我有一个基于Centos-7的SMB客户端池连接到使用SMB 3.0的Windows Server 2012 R2上的共享。以下是我的典型用例:
I have a pool of Centos-7 based SMB clients connected to a share on Windows Server 2012 R2 using SMB 3.0. Here is a typical use case for me:
1)客户端1打开文件A,其中oplock = lease和lease state = RW。
1) Client 1 opens file A with oplock=lease and lease state = RW.
2)客户端2出现并打开具有类似参数的相同文件A:oplock = lease,lease state = RW
2) Client 2 comes along and opens the same file A with similar parameter: oplock = lease, lease state= RW
3)客户端1接收租约中断通知,它确认并将其租约状态降级为R
3) Client 1 receives lease break notification, which it acknowledges and its lease state gets downgraded to R
4)客户端1刷新其写入缓存并关闭文件A.
4) Client 1 flushes its write cache and closes file A.
5)客户端2,读/写并关闭文件。
5) Client 2, reads/writes and closes the file.
6)客户端1尝试使用oplock = lease和lease state = RW再次打开文件。根据这里的信息:https://msdn.microsoft.com/en-us/library/dd366158.aspx这应该是允许的。
6) Client 1 tries to open the file again with oplock = lease and lease state = RW. Accoriding to information here: https://msdn.microsoft.com/en-us/library/dd366158.aspx this should be allowed.
"算法应该允许在后续打开时使用相同的
ClientLeaseId 添加其他租约状态标志,以允许升级租约状态。该算法不允许客户端在后续打开时释放租赁状态标志,并使用相同的
ClientLeaseId 来降低租约状态。"
"The algorithm SHOULD allow additional lease state flags on subsequent opens with the sameClientLeaseId to permit upgrading the lease state. The algorithm MUST NOT allow the client to release lease state flags on subsequent opens with the sameClientLeaseId to downgrade the lease state."
7 )服务器将STATUS_INVALID_PARAMETER发送到客户端1的创建/打开请求。我究竟做错了什么?
7) Server sends STATUS_INVALID_PARAMETER to client 1's create/open request. What am I doing wrong?
推荐答案
这篇关于SMB2租约中断后重新打开文件返回STATUS_INVALID PARAMETER的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!