obd_enqueue_update_f upcall, struct md_op_data *op_data,
const union ldlm_policy_data *policy, __u64 lock_flags);
-int mdc_resource_get_unused_res(struct obd_export *exp,
- struct ldlm_res_id *res_id,
- struct list_head *cancels,
- enum ldlm_mode mode, __u64 bits);
-int mdc_resource_get_unused(struct obd_export *exp, const struct lu_fid *fid,
- struct list_head *cancels, enum ldlm_mode mode,
- __u64 bits);
+int mdc_resource_cancel_unused_res(struct obd_export *exp,
+ struct ldlm_res_id *res_id,
+ struct list_head *cancels,
+ enum ldlm_mode mode, __u64 bits);
+int mdc_resource_cancel_unused(struct obd_export *exp, const struct lu_fid *fid,
+ struct list_head *cancels, enum ldlm_mode mode,
+ __u64 bits);
/* mdc/mdc_request.c */
int mdc_fid_alloc(const struct lu_env *env, struct obd_export *exp,
struct lu_fid *fid, struct md_op_data *op_data);
else
mode = LCK_CR;
}
- count = mdc_resource_get_unused(exp, &op_data->op_fid2,
- &cancels, mode,
- MDS_INODELOCK_OPEN);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid2,
+ &cancels, mode,
+ MDS_INODELOCK_OPEN);
}
/* If CREATE, cancel parent's UPDATE lock. */
mode = LCK_EX;
else
mode = LCK_CR;
- count += mdc_resource_get_unused(exp, &op_data->op_fid1,
- &cancels, mode,
- MDS_INODELOCK_UPDATE);
+ count += mdc_resource_cancel_unused(exp, &op_data->op_fid1,
+ &cancels, mode,
+ MDS_INODELOCK_UPDATE);
req = ptlrpc_request_alloc(class_exp2cliimp(exp),
&RQF_LDLM_INTENT_OPEN);
if (fid_is_sane(&op_data->op_fid1))
/* cancel parent's UPDATE lock. */
- count = mdc_resource_get_unused(exp, &op_data->op_fid1,
- &cancels, LCK_EX,
- MDS_INODELOCK_UPDATE);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid1,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_UPDATE);
req = ptlrpc_request_alloc(class_exp2cliimp(exp),
&RQF_LDLM_INTENT_CREATE);
if (fid_is_sane(&op_data->op_fid2) && (it->it_op & IT_LAYOUT) &&
(it->it_open_flags & FMODE_WRITE)) {
- count = mdc_resource_get_unused(exp, &op_data->op_fid2,
- &cancels, LCK_EX,
- MDS_INODELOCK_LAYOUT);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid2,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_LAYOUT);
}
req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_CLIENT, 0);
/* Find and cancel locally locks matched by inode @bits & @mode in the resource
* found by @fid. Found locks are added into @cancel list. Returns the amount of
- * locks added to @cancels list. */
-int mdc_resource_get_unused_res(struct obd_export *exp,
- struct ldlm_res_id *res_id,
- struct list_head *cancels,
- enum ldlm_mode mode, __u64 bits)
+ * locks added to @cancels list.
+ */
+int mdc_resource_cancel_unused_res(struct obd_export *exp,
+ struct ldlm_res_id *res_id,
+ struct list_head *cancels,
+ enum ldlm_mode mode, __u64 bits)
{
struct ldlm_namespace *ns = exp->exp_obd->obd_namespace;
union ldlm_policy_data policy = { { 0 } };
RETURN(count);
}
-int mdc_resource_get_unused(struct obd_export *exp, const struct lu_fid *fid,
- struct list_head *cancels, enum ldlm_mode mode,
- __u64 bits)
+int mdc_resource_cancel_unused(struct obd_export *exp, const struct lu_fid *fid,
+ struct list_head *cancels, enum ldlm_mode mode,
+ __u64 bits)
{
struct ldlm_res_id res_id;
fid_build_reg_res_name(fid, &res_id);
- return mdc_resource_get_unused_res(exp, &res_id, cancels, mode, bits);
+ return mdc_resource_cancel_unused_res(exp, &res_id, cancels, mode, bits);
}
int mdc_setattr(struct obd_export *exp, struct md_op_data *op_data,
bits |= MDS_INODELOCK_LOOKUP;
if ((op_data->op_flags & MF_MDC_CANCEL_FID1) &&
(fid_is_sane(&op_data->op_fid1)))
- count = mdc_resource_get_unused(exp, &op_data->op_fid1,
- &cancels, LCK_EX, bits);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid1,
+ &cancels, LCK_EX, bits);
req = ptlrpc_request_alloc(class_exp2cliimp(exp),
&RQF_MDS_REINT_SETATTR);
if (req == NULL) {
count = 0;
if ((op_data->op_flags & MF_MDC_CANCEL_FID1) &&
(fid_is_sane(&op_data->op_fid1)))
- count = mdc_resource_get_unused(exp, &op_data->op_fid1,
- &cancels, LCK_EX,
- MDS_INODELOCK_UPDATE);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid1,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_UPDATE);
req = ptlrpc_request_alloc(class_exp2cliimp(exp),
&RQF_MDS_REINT_CREATE_ACL);
if ((op_data->op_flags & MF_MDC_CANCEL_FID1) &&
(fid_is_sane(&op_data->op_fid1)))
- count = mdc_resource_get_unused(exp, &op_data->op_fid1,
- &cancels, LCK_EX,
- MDS_INODELOCK_UPDATE);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid1,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_UPDATE);
if ((op_data->op_flags & MF_MDC_CANCEL_FID3) &&
(fid_is_sane(&op_data->op_fid3)))
/* cancel DOM lock only if it has no data to flush */
- count += mdc_resource_get_unused(exp, &op_data->op_fid3,
- &cancels, LCK_EX,
- op_data->op_cli_flags &
- CLI_DIRTY_DATA ?
- MDS_INODELOCK_ELC :
- MDS_INODELOCK_FULL);
+ count += mdc_resource_cancel_unused(exp, &op_data->op_fid3,
+ &cancels, LCK_EX,
+ op_data->op_cli_flags &
+ CLI_DIRTY_DATA ?
+ MDS_INODELOCK_ELC :
+ MDS_INODELOCK_FULL);
req = ptlrpc_request_alloc(class_exp2cliimp(exp),
&RQF_MDS_REINT_UNLINK);
if (req == NULL) {
if ((op_data->op_flags & MF_MDC_CANCEL_FID2) &&
(fid_is_sane(&op_data->op_fid2)))
- count = mdc_resource_get_unused(exp, &op_data->op_fid2,
- &cancels, LCK_EX,
- MDS_INODELOCK_UPDATE);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid2,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_UPDATE);
if ((op_data->op_flags & MF_MDC_CANCEL_FID1) &&
(fid_is_sane(&op_data->op_fid1)))
- count += mdc_resource_get_unused(exp, &op_data->op_fid1,
- &cancels, LCK_EX,
- MDS_INODELOCK_UPDATE);
+ count += mdc_resource_cancel_unused(exp, &op_data->op_fid1,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_UPDATE);
req = ptlrpc_request_alloc(class_exp2cliimp(exp), &RQF_MDS_REINT_LINK);
if (req == NULL) {
if ((op_data->op_flags & MF_MDC_CANCEL_FID1) &&
(fid_is_sane(&op_data->op_fid1)))
- count = mdc_resource_get_unused(exp, &op_data->op_fid1,
- &cancels, LCK_EX,
- MDS_INODELOCK_UPDATE);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid1,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_UPDATE);
if ((op_data->op_flags & MF_MDC_CANCEL_FID2) &&
(fid_is_sane(&op_data->op_fid2)))
- count += mdc_resource_get_unused(exp, &op_data->op_fid2,
- &cancels, LCK_EX,
- MDS_INODELOCK_UPDATE);
+ count += mdc_resource_cancel_unused(exp, &op_data->op_fid2,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_UPDATE);
if ((op_data->op_flags & MF_MDC_CANCEL_FID3) &&
(fid_is_sane(&op_data->op_fid3)))
- count += mdc_resource_get_unused(exp, &op_data->op_fid3,
- &cancels, LCK_EX,
- MDS_INODELOCK_LOOKUP);
+ count += mdc_resource_cancel_unused(exp, &op_data->op_fid3,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_LOOKUP);
if ((op_data->op_flags & MF_MDC_CANCEL_FID4) &&
(fid_is_sane(&op_data->op_fid4)))
- count += mdc_resource_get_unused(exp, &op_data->op_fid4,
- &cancels, LCK_EX,
- MDS_INODELOCK_ELC);
+ count += mdc_resource_cancel_unused(exp, &op_data->op_fid4,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_ELC);
req = ptlrpc_request_alloc(class_exp2cliimp(exp),
op_data->op_cli_flags & CLI_MIGRATE ?
if (op_data->op_flags & MF_MDC_CANCEL_FID1 &&
fid_is_sane(&op_data->op_fid1))
- count = mdc_resource_get_unused(exp, &op_data->op_fid1,
- &cancels, LCK_EX,
- MDS_INODELOCK_LAYOUT);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid1,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_LAYOUT);
req = ptlrpc_request_alloc(class_exp2cliimp(exp),
&RQF_MDS_REINT_RESYNC);
req_capsule_set_size(&req->rq_pill, &RMF_EADATA,
RCL_CLIENT, 0);
- count = mdc_resource_get_unused(exp, fid,
- &cancels, LCK_EX,
- MDS_INODELOCK_XATTR);
+ count = mdc_resource_cancel_unused(exp, fid,
+ &cancels, LCK_EX,
+ MDS_INODELOCK_XATTR);
rc = mdc_prep_elc_req(exp, req, MDS_REINT, &cancels, count);
if (rc)
for (i = 0; i < req_hr->hr_itemcount; i++, hui++) {
if (!fid_is_sane(&hui->hui_fid))
continue;
- count += mdc_resource_get_unused(exp, &hui->hui_fid, cancels,
- LCK_EX, MDS_INODELOCK_LAYOUT);
+ count += mdc_resource_cancel_unused(exp, &hui->hui_fid, cancels,
+ LCK_EX, MDS_INODELOCK_LAYOUT);
}
return count;
* So the client must cancel its layout locks on the 2 fids
* with the request RPC to avoid extra RPC round trips.
*/
- count = mdc_resource_get_unused(exp, &op_data->op_fid1, &cancels,
- LCK_EX, MDS_INODELOCK_LAYOUT |
- MDS_INODELOCK_XATTR);
- count += mdc_resource_get_unused(exp, &op_data->op_fid2, &cancels,
- LCK_EX, MDS_INODELOCK_LAYOUT |
- MDS_INODELOCK_XATTR);
+ count = mdc_resource_cancel_unused(exp, &op_data->op_fid1, &cancels,
+ LCK_EX, MDS_INODELOCK_LAYOUT |
+ MDS_INODELOCK_XATTR);
+ count += mdc_resource_cancel_unused(exp, &op_data->op_fid2, &cancels,
+ LCK_EX, MDS_INODELOCK_LAYOUT |
+ MDS_INODELOCK_XATTR);
req = ptlrpc_request_alloc(class_exp2cliimp(exp),
&RQF_MDS_SWAP_LAYOUTS);