summaryrefslogtreecommitdiff
path: root/fs/smb/server/oplock.h
diff options
context:
space:
mode:
authorNamjae Jeon <linkinjeon@kernel.org>2023-12-08 14:33:41 +0900
committerSteve French <stfrench@microsoft.com>2023-12-08 10:11:33 -0600
commitd47d9886aeef79feba7adac701a510d65f3682b5 (patch)
tree2cfe999a8e3c99a987e664862aad666e59e7cdc9 /fs/smb/server/oplock.h
parenteb547407f3572d2110cb1194ecd8865b3371a7a4 (diff)
ksmbd: send v2 lease break notification for directory
If client send different parent key, different client guid, or there is no parent lease key flags in create context v2 lease, ksmbd send lease break to client. Signed-off-by: Namjae Jeon <linkinjeon@kernel.org> Signed-off-by: Steve French <stfrench@microsoft.com>
Diffstat (limited to 'fs/smb/server/oplock.h')
-rw-r--r--fs/smb/server/oplock.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/smb/server/oplock.h b/fs/smb/server/oplock.h
index 672127318c75..b64d1536882a 100644
--- a/fs/smb/server/oplock.h
+++ b/fs/smb/server/oplock.h
@@ -36,6 +36,7 @@ struct lease_ctx_info {
__u8 parent_lease_key[SMB2_LEASE_KEY_SIZE];
__le16 epoch;
int version;
+ bool is_dir;
};
struct lease_table {
@@ -54,6 +55,7 @@ struct lease {
__u8 parent_lease_key[SMB2_LEASE_KEY_SIZE];
int version;
unsigned short epoch;
+ bool is_dir;
struct lease_table *l_lb;
};
@@ -125,4 +127,6 @@ struct oplock_info *lookup_lease_in_table(struct ksmbd_conn *conn,
int find_same_lease_key(struct ksmbd_session *sess, struct ksmbd_inode *ci,
struct lease_ctx_info *lctx);
void destroy_lease_table(struct ksmbd_conn *conn);
+void smb_send_parent_lease_break_noti(struct ksmbd_file *fp,
+ struct lease_ctx_info *lctx);
#endif /* __KSMBD_OPLOCK_H */