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 cifs_swn_set_server_dstaddr(struct TCP_Server_Info * server)27static 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 cifs_swn_reset_server_dstaddr(struct TCP_Server_Info * server)36static inline void cifs_swn_reset_server_dstaddr(struct TCP_Server_Info *server) 37 { 38 server->use_swn_dstaddr = false; 39 } 40 41 #else 42 cifs_swn_register(struct cifs_tcon * tcon)43static inline int cifs_swn_register(struct cifs_tcon *tcon) { return 0; } cifs_swn_unregister(struct cifs_tcon * tcon)44static inline int cifs_swn_unregister(struct cifs_tcon *tcon) { return 0; } cifs_swn_notify(struct sk_buff * s,struct genl_info * i)45static inline int cifs_swn_notify(struct sk_buff *s, struct genl_info *i) { return 0; } cifs_swn_dump(struct seq_file * m)46static inline void cifs_swn_dump(struct seq_file *m) {} cifs_swn_check(void)47static inline void cifs_swn_check(void) {} cifs_swn_set_server_dstaddr(struct TCP_Server_Info * server)48static inline bool cifs_swn_set_server_dstaddr(struct TCP_Server_Info *server) { return false; } cifs_swn_reset_server_dstaddr(struct TCP_Server_Info * server)49static 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