ksmbd: add support for durable handles v1/v2
authorNamjae Jeon <linkinjeon@kernel.org>
Tue, 12 Mar 2024 05:05:57 +0000 (14:05 +0900)
committerSteve French <stfrench@microsoft.com>
Tue, 12 Mar 2024 05:36:39 +0000 (00:36 -0500)
commitc8efcc786146a951091588e5fa7e3c754850cb3c
treecfae57fe799ab4543979346377f6527f72fc6943
parentfa9415d4024fd0c58d24a4ad4f1826fb8bfcc4aa
ksmbd: add support for durable handles v1/v2

Durable file handles allow reopening a file preserved on a short
network outage and transparent client reconnection within a timeout.
i.e. Durable handles aren't necessarily cleaned up when the opening
process terminates.

This patch add support for durable handle version 1 and 2.

To prove durable handles work on ksmbd, I have tested this patch with
the following smbtorture tests:

smb2.durable-open.open-oplock
smb2.durable-open.open-lease
smb2.durable-open.reopen1
smb2.durable-open.reopen1a
smb2.durable-open.reopen1a-lease
smb2.durable-open.reopen2
smb2.durable-open.reopen2a
smb2.durable-open.reopen2-lease
smb2.durable-open.reopen2-lease-v2
smb2.durable-open.reopen3
smb2.durable-open.reopen4
smb2.durable-open.delete_on_close2
smb2.durable-open.file-position
smb2.durable-open.lease
smb2.durable-open.alloc-size
smb2.durable-open.read-only
smb2.durable-v2-open.create-blob
smb2.durable-v2-open.open-oplock
smb2.durable-v2-open.open-lease
smb2.durable-v2-open.reopen1
smb2.durable-v2-open.reopen1a
smb2.durable-v2-open.reopen1a-lease
smb2.durable-v2-open.reopen2
smb2.durable-v2-open.reopen2b

Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/server/ksmbd_netlink.h
fs/smb/server/mgmt/user_session.c
fs/smb/server/oplock.c
fs/smb/server/oplock.h
fs/smb/server/smb2ops.c
fs/smb/server/smb2pdu.c
fs/smb/server/smb2pdu.h
fs/smb/server/vfs_cache.c
fs/smb/server/vfs_cache.h