Lines Matching defs:call
65 AFS_CALL_CL_PROC_REPLY, /* Client: rxrpc call complete; processing reply */
93 * a record of an in-progress RxRPC call
96 const struct afs_call_type *type; /* type of call */
101 struct rxrpc_call *rxcall; /* RxRPC call handle */
102 struct key *key; /* security for this call */
133 bool drop_ref; /* T if need to drop ref for incoming call */
142 u32 operation_ID; /* operation ID for an incoming call */
158 /* deliver request or reply data to an call
159 * - returning an error will cause the call to be aborted
161 int (*deliver)(struct afs_call *call);
163 /* clean up a call */
164 void (*destructor)(struct afs_call *call);
170 void (*done)(struct afs_call *call);
751 afs_dataversion_t dv_before; /* Data version before the call */
752 unsigned int cb_break_before; /* cb_break + cb_s_break before the call */
770 const struct afs_call_type *type; /* Type of call done */
836 struct afs_call *call;
1261 static inline void afs_make_op_call(struct afs_operation *op, struct afs_call *call,
1264 op->call = call;
1265 op->type = call->type;
1266 call->op = op;
1267 call->key = op->key;
1268 call->intr = !(op->flags & AFS_OPERATION_UNINTR);
1269 afs_make_call(&op->ac, call, gfp);
1272 static inline void afs_extract_begin(struct afs_call *call, void *buf, size_t size)
1274 call->kvec[0].iov_base = buf;
1275 call->kvec[0].iov_len = size;
1276 iov_iter_kvec(&call->def_iter, READ, call->kvec, 1, size);
1279 static inline void afs_extract_to_tmp(struct afs_call *call)
1281 afs_extract_begin(call, &call->tmp, sizeof(call->tmp));
1284 static inline void afs_extract_to_tmp64(struct afs_call *call)
1286 afs_extract_begin(call, &call->tmp64, sizeof(call->tmp64));
1289 static inline void afs_extract_discard(struct afs_call *call, size_t size)
1291 iov_iter_discard(&call->def_iter, READ, size);
1294 static inline void afs_extract_to_buf(struct afs_call *call, size_t size)
1296 afs_extract_begin(call, call->buffer, size);
1299 static inline int afs_transfer_reply(struct afs_call *call)
1301 return afs_extract_data(call, false);
1304 static inline bool afs_check_call_state(struct afs_call *call,
1307 return READ_ONCE(call->state) == state;
1310 static inline bool afs_set_call_state(struct afs_call *call,
1316 spin_lock_bh(&call->state_lock);
1317 if (call->state == from) {
1318 call->state = to;
1319 trace_afs_call_state(call, from, to, 0, 0);
1322 spin_unlock_bh(&call->state_lock);
1326 static inline void afs_set_call_complete(struct afs_call *call,
1332 spin_lock_bh(&call->state_lock);
1333 state = call->state;
1335 call->abort_code = remote_abort;
1336 call->error = error;
1337 call->state = AFS_CALL_COMPLETE;
1338 trace_afs_call_state(call, state, AFS_CALL_COMPLETE,
1342 spin_unlock_bh(&call->state_lock);
1344 trace_afs_call_done(call);
1348 * call because the work item may be queued again.
1350 if (call->drop_ref)
1351 afs_put_call(call);
1598 static inline int afs_io_error(struct afs_call *call, enum afs_io_error where)
1600 trace_afs_io_error(call->debug_id, -EIO, where);