* Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
*
- * Copyright (c) 2011, 2014, Intel Corporation.
+ * Copyright (c) 2011, 2015, Intel Corporation.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
/*
* We got LOOKUP lock, but we really need attrs.
*/
- pmode = it->d.lustre.it_lock_mode;
+ pmode = it->it_lock_mode;
if (pmode) {
- plock.cookie = it->d.lustre.it_lock_handle;
- it->d.lustre.it_lock_mode = 0;
- it->d.lustre.it_data = NULL;
+ plock.cookie = it->it_lock_handle;
+ it->it_lock_mode = 0;
+ it->it_request = NULL;
}
LASSERT(fid_is_sane(&body->mbo_fid1));
* maintain dcache consistency. Thus drop UPDATE|PERM lock here
* and put LOOKUP in request.
*/
- if (it->d.lustre.it_lock_mode != 0) {
- it->d.lustre.it_remote_lock_handle =
- it->d.lustre.it_lock_handle;
- it->d.lustre.it_remote_lock_mode = it->d.lustre.it_lock_mode;
+ if (it->it_lock_mode != 0) {
+ it->it_remote_lock_handle =
+ it->it_lock_handle;
+ it->it_remote_lock_mode = it->it_lock_mode;
}
if (pmode) {
- it->d.lustre.it_lock_handle = plock.cookie;
- it->d.lustre.it_lock_mode = pmode;
+ it->it_lock_handle = plock.cookie;
+ it->it_lock_mode = pmode;
}
EXIT;
if (rc < 0)
GOTO(cleanup, rc);
- lockh = (struct lustre_handle *)&it.d.lustre.it_lock_handle;
+ lockh = (struct lustre_handle *)&it.it_lock_handle;
if (rc > 0 && req == NULL) {
/* slave inode is still valid */
CDEBUG(D_INODE, "slave "DFID" is still valid.\n",
/* refresh slave from server */
body = req_capsule_server_get(&req->rq_pill,
&RMF_MDT_BODY);
- LASSERT(body != NULL);
- if (unlikely(body->mbo_nlink < 2)) {
- CERROR("%s: nlink %d < 2 corrupt stripe %d "DFID
- ":" DFID"\n",
- obd->obd_name, body->mbo_nlink, i,
- PFID(&lsm->lsm_md_oinfo[i].lmo_fid),
- PFID(&lsm->lsm_md_oinfo[0].lmo_fid));
-
- if (it.d.lustre.it_lock_mode && lockh) {
+ if (body == NULL) {
+ if (it.it_lock_mode && lockh) {
ldlm_lock_decref(lockh,
- it.d.lustre.it_lock_mode);
- it.d.lustre.it_lock_mode = 0;
+ it.it_lock_mode);
+ it.it_lock_mode = 0;
}
-
- GOTO(cleanup, rc = -EIO);
+ GOTO(cleanup, rc = -ENOENT);
}
-
i_size_write(inode, body->mbo_size);
inode->i_blocks = body->mbo_blocks;
set_nlink(inode, body->mbo_nlink);
LTIME_S(inode->i_mtime) = body->mbo_mtime;
}
- md_set_lock_data(tgt->ltd_exp, &lockh->cookie, inode, NULL);
- if (it.d.lustre.it_lock_mode != 0 && lockh != NULL) {
- ldlm_lock_decref(lockh, it.d.lustre.it_lock_mode);
- it.d.lustre.it_lock_mode = 0;
+ md_set_lock_data(tgt->ltd_exp, lockh, inode, NULL);
+ if (it.it_lock_mode != 0 && lockh != NULL) {
+ ldlm_lock_decref(lockh, it.it_lock_mode);
+ it.it_lock_mode = 0;
}
}
* Nothing is found, do not access body->fid1 as it is zero and thus
* pointless.
*/
- if ((it->d.lustre.it_disposition & DISP_LOOKUP_NEG) &&
- !(it->d.lustre.it_disposition & DISP_OPEN_CREATE) &&
- !(it->d.lustre.it_disposition & DISP_OPEN_OPEN))
+ if ((it->it_disposition & DISP_LOOKUP_NEG) &&
+ !(it->it_disposition & DISP_OPEN_CREATE) &&
+ !(it->it_disposition & DISP_OPEN_OPEN))
RETURN(rc);
body = req_capsule_server_get(&(*reqp)->rq_pill, &RMF_MDT_BODY);
/* release the previous request */
ptlrpc_req_finished(*reqp);
- it->d.lustre.it_data = NULL;
+ it->it_request = NULL;
*reqp = NULL;
oinfo = &lsm->lsm_md_oinfo[stripe_index];
PFID(&oinfo->lmo_fid));
op_data->op_fid1 = oinfo->lmo_fid;
- it->d.lustre.it_disposition &= ~DISP_ENQ_COMPLETE;
+ it->it_disposition &= ~DISP_ENQ_COMPLETE;
rc = md_intent_lock(tgt->ltd_exp, op_data, it, reqp,
cb_blocking, extra_lock_flags);
if (rc != 0)
ldlm_blocking_callback cb_blocking,
__u64 extra_lock_flags)
{
- struct obd_device *obd = exp->exp_obd;
- int rc;
+ int rc;
ENTRY;
LASSERT(it != NULL);
(int)op_data->op_namelen, op_data->op_name,
PFID(&op_data->op_fid1));
- rc = lmv_check_connect(obd);
- if (rc)
- RETURN(rc);
-
if (it->it_op & (IT_LOOKUP | IT_GETATTR | IT_LAYOUT))
rc = lmv_intent_lookup(exp, op_data, it, reqp, cb_blocking,
extra_lock_flags);
if (rc < 0) {
struct lustre_handle lock_handle;
- if (it->d.lustre.it_lock_mode != 0) {
- lock_handle.cookie = it->d.lustre.it_lock_handle;
+ if (it->it_lock_mode != 0) {
+ lock_handle.cookie = it->it_lock_handle;
ldlm_lock_decref(&lock_handle,
- it->d.lustre.it_lock_mode);
+ it->it_lock_mode);
}
- it->d.lustre.it_lock_handle = 0;
- it->d.lustre.it_lock_mode = 0;
+ it->it_lock_handle = 0;
+ it->it_lock_mode = 0;
- if (it->d.lustre.it_remote_lock_mode != 0) {
- lock_handle.cookie = it->d.lustre.it_remote_lock_handle;
+ if (it->it_remote_lock_mode != 0) {
+ lock_handle.cookie = it->it_remote_lock_handle;
ldlm_lock_decref(&lock_handle,
- it->d.lustre.it_remote_lock_mode);
+ it->it_remote_lock_mode);
}
- it->d.lustre.it_remote_lock_handle = 0;
- it->d.lustre.it_remote_lock_mode = 0;
+ it->it_remote_lock_handle = 0;
+ it->it_remote_lock_mode = 0;
}
RETURN(rc);