8 #ifndef __LINUX_FS_NFS_CALLBACK_H
9 #define __LINUX_FS_NFS_CALLBACK_H
12 #define NFS4_CALLBACK 0x40000000
13 #define NFS4_CALLBACK_XDRSIZE 2048
14 #define NFS4_CALLBACK_BUFSIZE (1024 + NFS4_CALLBACK_XDRSIZE)
82 #if defined(CONFIG_NFS_V4_1)
84 struct referring_call {
89 struct referring_call_list {
92 struct referring_call *rcl_refcalls;
95 struct cb_sequenceargs {
103 struct referring_call_list *csa_rclists;
106 struct cb_sequenceres {
115 extern __be32 nfs4_callback_sequence(
struct cb_sequenceargs *args,
116 struct cb_sequenceres *
res,
119 extern int nfs41_validate_delegation_stateid(
struct nfs_delegation *delegation,
122 #define RCA4_TYPE_MASK_RDATA_DLG 0
123 #define RCA4_TYPE_MASK_WDATA_DLG 1
124 #define RCA4_TYPE_MASK_DIR_DLG 2
125 #define RCA4_TYPE_MASK_FILE_LAYOUT 3
126 #define RCA4_TYPE_MASK_BLK_LAYOUT 4
127 #define RCA4_TYPE_MASK_OBJ_LAYOUT_MIN 8
128 #define RCA4_TYPE_MASK_OBJ_LAYOUT_MAX 9
129 #define RCA4_TYPE_MASK_OTHER_LAYOUT_MIN 12
130 #define RCA4_TYPE_MASK_OTHER_LAYOUT_MAX 15
131 #define RCA4_TYPE_MASK_ALL 0xf31f
133 struct cb_recallanyargs {
139 extern __be32 nfs4_callback_recallany(
struct cb_recallanyargs *args,
143 struct cb_recallslotargs {
147 extern __be32 nfs4_callback_recallslot(
struct cb_recallslotargs *args,
151 struct cb_layoutrecallargs {
166 extern __be32 nfs4_callback_layoutrecall(
167 struct cb_layoutrecallargs *args,
170 extern void nfs4_check_drain_bc_complete(
struct nfs4_session *ses);
172 struct cb_devicenotifyitem {
179 struct cb_devicenotifyargs {
181 struct cb_devicenotifyitem *devs;
184 extern __be32 nfs4_callback_devicenotify(
185 struct cb_devicenotifyargs *args,
195 #if IS_ENABLED(CONFIG_NFS_V4)
198 extern int nfs4_validate_delegation_stateid(
struct nfs_delegation *delegation,
200 extern int nfs4_set_callback_sessionid(
struct nfs_client *clp);
207 #define NFS41_BC_MIN_CALLBACKS 1
208 #define NFS41_BC_MAX_CALLBACKS 1