Commit 049e215e authored by wang di's avatar wang di Committed by Greg Kroah-Hartman

staging: lustre: obd: implement md_read_page

This patch adds md_read_page which is a new more
flexiable api that will replace md_readpage.
Signed-off-by: default avatarwang di <di.wang@intel.com>
Reviewed-on: http://review.whamcloud.com/10761
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4906Reviewed-by: default avatarJohn L. Hammond <john.hammond@intel.com>
Reviewed-by: default avatarAndreas Dilger <andreas.dilger@intel.com>
Reviewed-by: default avatarOleg Drokin <oleg.drokin@intel.com>
Signed-off-by: default avatarJames Simmons <jsimmons@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a043a102
...@@ -830,6 +830,15 @@ struct md_op_data { ...@@ -830,6 +830,15 @@ struct md_op_data {
struct lustre_handle op_lease_handle; struct lustre_handle op_lease_handle;
}; };
#define op_stripe_offset op_ioepoch
#define op_max_pages op_valid
struct md_callback {
int (*md_blocking_ast)(struct ldlm_lock *lock,
struct ldlm_lock_desc *desc,
void *data, int flag);
};
enum op_cli_flags { enum op_cli_flags {
CLI_SET_MEA = 1 << 0, CLI_SET_MEA = 1 << 0,
CLI_RM_ENTRY = 1 << 1, CLI_RM_ENTRY = 1 << 1,
...@@ -1039,7 +1048,9 @@ struct md_ops { ...@@ -1039,7 +1048,9 @@ struct md_ops {
struct ptlrpc_request **); struct ptlrpc_request **);
int (*readpage)(struct obd_export *, struct md_op_data *, int (*readpage)(struct obd_export *, struct md_op_data *,
struct page **, struct ptlrpc_request **); struct page **, struct ptlrpc_request **);
int (*read_page)(struct obd_export *, struct md_op_data *,
struct md_callback *cb_op, __u64 hash_offset,
struct page **ppage);
int (*unlink)(struct obd_export *, struct md_op_data *, int (*unlink)(struct obd_export *, struct md_op_data *,
struct ptlrpc_request **); struct ptlrpc_request **);
......
...@@ -1535,6 +1535,21 @@ static inline int md_readpage(struct obd_export *exp, struct md_op_data *opdata, ...@@ -1535,6 +1535,21 @@ static inline int md_readpage(struct obd_export *exp, struct md_op_data *opdata,
return rc; return rc;
} }
static inline int md_read_page(struct obd_export *exp,
struct md_op_data *op_data,
struct md_callback *cb_op,
__u64 hash_offset,
struct page **ppage)
{
int rc;
EXP_CHECK_MD_OP(exp, read_page);
EXP_MD_COUNTER_INCREMENT(exp, read_page);
rc = MDP(exp->exp_obd, read_page)(exp, op_data, cb_op, hash_offset,
ppage);
return rc;
}
static inline int md_unlink(struct obd_export *exp, struct md_op_data *op_data, static inline int md_unlink(struct obd_export *exp, struct md_op_data *op_data,
struct ptlrpc_request **request) struct ptlrpc_request **request)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment