1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * Witness Service client for CIFS |
4 | * |
5 | * Copyright (c) 2020 Samuel Cabrero <scabrero@suse.de> |
6 | */ |
7 | |
8 | #ifndef _CIFS_SWN_H |
9 | #define _CIFS_SWN_H |
10 | #include "cifsglob.h" |
11 | |
12 | struct cifs_tcon; |
13 | struct sk_buff; |
14 | struct genl_info; |
15 | |
16 | #ifdef CONFIG_CIFS_SWN_UPCALL |
17 | extern int cifs_swn_register(struct cifs_tcon *tcon); |
18 | |
19 | extern int cifs_swn_unregister(struct cifs_tcon *tcon); |
20 | |
21 | extern int cifs_swn_notify(struct sk_buff *skb, struct genl_info *info); |
22 | |
23 | extern void cifs_swn_dump(struct seq_file *m); |
24 | |
25 | extern void cifs_swn_check(void); |
26 | |
27 | static inline bool cifs_swn_set_server_dstaddr(struct TCP_Server_Info *server) |
28 | { |
29 | if (server->use_swn_dstaddr) { |
30 | server->dstaddr = server->swn_dstaddr; |
31 | return true; |
32 | } |
33 | return false; |
34 | } |
35 | |
36 | static inline void cifs_swn_reset_server_dstaddr(struct TCP_Server_Info *server) |
37 | { |
38 | server->use_swn_dstaddr = false; |
39 | } |
40 | |
41 | #else |
42 | |
43 | static inline int cifs_swn_register(struct cifs_tcon *tcon) { return 0; } |
44 | static inline int cifs_swn_unregister(struct cifs_tcon *tcon) { return 0; } |
45 | static inline int cifs_swn_notify(struct sk_buff *s, struct genl_info *i) { return 0; } |
46 | static inline void cifs_swn_dump(struct seq_file *m) {} |
47 | static inline void cifs_swn_check(void) {} |
48 | static inline bool cifs_swn_set_server_dstaddr(struct TCP_Server_Info *server) { return false; } |
49 | static inline void cifs_swn_reset_server_dstaddr(struct TCP_Server_Info *server) {} |
50 | |
51 | #endif /* CONFIG_CIFS_SWN_UPCALL */ |
52 | #endif /* _CIFS_SWN_H */ |
53 | |