]>
Commit | Line | Data |
---|---|---|
e2f34481 NJ |
1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /* | |
3 | * Copyright (C) 2018 Samsung Electronics Co., Ltd. | |
4 | */ | |
5 | ||
6 | #ifndef __TREE_CONNECT_MANAGEMENT_H__ | |
7 | #define __TREE_CONNECT_MANAGEMENT_H__ | |
8 | ||
9 | #include <linux/hashtable.h> | |
10 | ||
8b758859 | 11 | #include "../ksmbd_netlink.h" |
e2f34481 NJ |
12 | |
13 | struct ksmbd_share_config; | |
14 | struct ksmbd_user; | |
af7c39d9 | 15 | struct ksmbd_conn; |
e2f34481 | 16 | |
33b235a6 NJ |
17 | enum { |
18 | TREE_NEW = 0, | |
19 | TREE_CONNECTED, | |
20 | TREE_DISCONNECTED | |
21 | }; | |
30210947 | 22 | |
e2f34481 NJ |
23 | struct ksmbd_tree_connect { |
24 | int id; | |
25 | ||
26 | unsigned int flags; | |
27 | struct ksmbd_share_config *share_conf; | |
28 | struct ksmbd_user *user; | |
29 | ||
30 | struct list_head list; | |
31 | ||
32 | int maximal_access; | |
33 | bool posix_extensions; | |
33b235a6 NJ |
34 | atomic_t refcount; |
35 | wait_queue_head_t refcount_q; | |
36 | unsigned int t_state; | |
e2f34481 NJ |
37 | }; |
38 | ||
39 | struct ksmbd_tree_conn_status { | |
40 | unsigned int ret; | |
41 | struct ksmbd_tree_connect *tree_conn; | |
42 | }; | |
43 | ||
44 | static inline int test_tree_conn_flag(struct ksmbd_tree_connect *tree_conn, | |
45 | int flag) | |
46 | { | |
47 | return tree_conn->flags & flag; | |
48 | } | |
49 | ||
50 | struct ksmbd_session; | |
51 | ||
52 | struct ksmbd_tree_conn_status | |
af7c39d9 | 53 | ksmbd_tree_conn_connect(struct ksmbd_conn *conn, struct ksmbd_session *sess, |
16b5f54e | 54 | const char *share_name); |
33b235a6 | 55 | void ksmbd_tree_connect_put(struct ksmbd_tree_connect *tcon); |
e2f34481 NJ |
56 | |
57 | int ksmbd_tree_conn_disconnect(struct ksmbd_session *sess, | |
58 | struct ksmbd_tree_connect *tree_conn); | |
59 | ||
60 | struct ksmbd_tree_connect *ksmbd_tree_conn_lookup(struct ksmbd_session *sess, | |
61 | unsigned int id); | |
62 | ||
e2f34481 NJ |
63 | int ksmbd_tree_conn_session_logoff(struct ksmbd_session *sess); |
64 | ||
65 | #endif /* __TREE_CONNECT_MANAGEMENT_H__ */ |