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: wang di <di.wang@intel.com>
Reviewed-on: http://review.whamcloud.com/10761
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4906
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
wang di 2016-08-16 16:19:27 -04:00 committed by Greg Kroah-Hartman
parent a043a1020f
commit 049e215e0e
2 changed files with 27 additions and 1 deletions

View File

@ -830,6 +830,15 @@ struct md_op_data {
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 {
CLI_SET_MEA = 1 << 0,
CLI_RM_ENTRY = 1 << 1,
@ -1039,7 +1048,9 @@ struct md_ops {
struct ptlrpc_request **);
int (*readpage)(struct obd_export *, struct md_op_data *,
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 *,
struct ptlrpc_request **);

View File

@ -1535,6 +1535,21 @@ static inline int md_readpage(struct obd_export *exp, struct md_op_data *opdata,
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,
struct ptlrpc_request **request)
{