1 #include <linux/lustre_mdc.h>
2 void mdc_pack_req_body(struct ptlrpc_request *req, int offset,
3 __u64 valid, struct lu_fid *fid, int ea_size);
4 void mdc_pack_rep_body(struct ptlrpc_request *);
5 void mdc_readdir_pack(struct ptlrpc_request *req, int pos, __u64 offset,
6 __u32 size, struct lu_fid *fid);
7 void mdc_getattr_pack(struct ptlrpc_request *req, int valid, int offset,
8 int flags, struct mdc_op_data *data);
9 void mdc_setattr_pack(struct ptlrpc_request *req, int offset,
10 struct mdc_op_data *data,
11 struct iattr *iattr, void *ea, int ealen,
12 void *ea2, int ea2len);
13 void mdc_create_pack(struct ptlrpc_request *req, int offset,
14 struct mdc_op_data *op_data, const void *data, int datalen,
15 __u32 mode, __u32 uid, __u32 gid, __u32 cap_effective,
17 void mdc_open_pack(struct ptlrpc_request *req, int offset,
18 struct mdc_op_data *op_data, __u32 mode, __u64 rdev,
19 __u32 flags, const void *data, int datalen);
20 void mdc_join_pack(struct ptlrpc_request *req, int offset,
21 struct mdc_op_data *op_data, __u64 head_size);
22 void mdc_unlink_pack(struct ptlrpc_request *req, int offset,
23 struct mdc_op_data *data);
24 void mdc_link_pack(struct ptlrpc_request *req, int offset,
25 struct mdc_op_data *data);
26 void mdc_rename_pack(struct ptlrpc_request *req, int offset,
27 struct mdc_op_data *data,
28 const char *old, int oldlen, const char *new, int newlen);
29 void mdc_close_pack(struct ptlrpc_request *req, int offset, struct mdc_op_data *op_data,
30 int valid, struct obd_client_handle *och);
32 struct mdc_open_data {
33 struct obd_client_handle *mod_och;
34 struct ptlrpc_request *mod_open_req;
35 struct ptlrpc_request *mod_close_req;
39 struct semaphore rpcl_sem;
40 struct lookup_intent *rpcl_it;
43 static inline void mdc_init_rpc_lock(struct mdc_rpc_lock *lck)
45 sema_init(&lck->rpcl_sem, 1);
49 static inline void mdc_get_rpc_lock(struct mdc_rpc_lock *lck,
50 struct lookup_intent *it)
59 static inline void mdc_put_rpc_lock(struct mdc_rpc_lock *lck,
60 struct lookup_intent *it)
64 LASSERT(it == lck->rpcl_it);
69 LASSERT(it == lck->rpcl_it);
76 extern quota_interface_t *quota_interface;