tsi->tsi_mdt_body = body;
- if (!(body->valid & OBD_MD_FLID))
+ if (!(body->mbo_valid & OBD_MD_FLID))
RETURN(0);
/* mdc_pack_body() doesn't check if fid is zero and set OBD_ML_FID
* in any case in pre-2.5 clients. Fix that here if needed */
- if (unlikely(fid_is_zero(&body->fid1)))
+ if (unlikely(fid_is_zero(&body->mbo_fid1)))
RETURN(0);
- if (!fid_is_sane(&body->fid1)) {
+ if (!fid_is_sane(&body->mbo_fid1)) {
CERROR("%s: invalid FID: "DFID"\n", tgt_name(tsi->tsi_tgt),
- PFID(&body->fid1));
+ PFID(&body->mbo_fid1));
RETURN(-EINVAL);
}
obj = lu_object_find(tsi->tsi_env,
&tsi->tsi_tgt->lut_bottom->dd_lu_dev,
- &body->fid1, NULL);
+ &body->mbo_fid1, NULL);
if (!IS_ERR(obj)) {
if ((flags & HABEO_CORPUS) && !lu_object_exists(obj)) {
lu_object_put(tsi->tsi_env, obj);
/* for capability renew ENOENT will be handled in
* mdt_renew_capa */
- if (body->valid & OBD_MD_FLOSSCAPA)
+ if (body->mbo_valid & OBD_MD_FLOSSCAPA)
rc = 0;
else
rc = -ENOENT;
rc = PTR_ERR(obj);
}
- tsi->tsi_fid = body->fid1;
+ tsi->tsi_fid = body->mbo_fid1;
RETURN(rc);
}
RCL_SERVER))
req_capsule_set_size(tsi->tsi_pill, &RMF_MDT_MD,
RCL_SERVER,
- tsi->tsi_mdt_body->eadatasize);
+ tsi->tsi_mdt_body->mbo_eadatasize);
if (req_capsule_has_field(tsi->tsi_pill, &RMF_LOGCOOKIES,
RCL_SERVER))
req_capsule_set_size(tsi->tsi_pill, &RMF_LOGCOOKIES,
RETURN(-EACCES);
}
} else {
- if (req->rq_auth_uid == INVALID_UID) {
+ if (!uid_valid(make_kuid(&init_user_ns, req->rq_auth_uid))) {
CDEBUG(D_SEC, "client %s -> target %s: user is not "
"authenticated!\n", client, tgt_name(tgt));
RETURN(-EACCES);
EXPORT_SYMBOL(tgt_obd_handlers);
int tgt_sync(const struct lu_env *env, struct lu_target *tgt,
- struct dt_object *obj)
+ struct dt_object *obj, __u64 start, __u64 end)
{
int rc = 0;
rc = dt_sync(env, tgt->lut_bottom);
} else if (dt_version_get(env, obj) >
tgt->lut_obd->obd_last_committed) {
- rc = dt_object_sync(env, obj);
+ rc = dt_object_sync(env, obj, start, end);
}
RETURN(rc);
(tgt->lut_sync_lock_cancel == ALWAYS_SYNC_ON_CANCEL ||
(tgt->lut_sync_lock_cancel == BLOCKING_SYNC_ON_CANCEL &&
lock->l_flags & LDLM_FL_CBPENDING))) {
+ __u64 start = 0;
+ __u64 end = OBD_OBJECT_EOF;
+
rc = lu_env_init(&env, LCT_DT_THREAD);
if (unlikely(rc != 0))
RETURN(rc);
if (!dt_object_exists(obj))
GOTO(err_put, rc = -ENOENT);
- rc = tgt_sync(&env, tgt, obj);
+ if (lock->l_resource->lr_type == LDLM_EXTENT) {
+ start = lock->l_policy_data.l_extent.start;
+ end = lock->l_policy_data.l_extent.end;
+ }
+
+ rc = tgt_sync(&env, tgt, obj, start, end);
if (rc < 0) {
CERROR("%s: syncing "DFID" ("LPU64"-"LPU64") on lock "
"cancel: rc = %d\n",
{
struct lfsck_request *request;
struct lfsck_reply *reply;
- int rc = 0;
+ int rc;
ENTRY;
request = req_capsule_client_get(tsi->tsi_pill, &RMF_LFSCK_REQUEST);
if (reply == NULL)
RETURN(-ENOMEM);
- reply->lr_status = tgt_lfsck_query(tsi->tsi_env,
- tsi->tsi_tgt->lut_bottom, request);
- if (reply->lr_status < 0)
- rc = reply->lr_status;
+ rc = tgt_lfsck_query(tsi->tsi_env, tsi->tsi_tgt->lut_bottom, request);
+ reply->lr_status = rc;
- RETURN(rc);
+ RETURN(rc < 0 ? rc : 0);
}
struct tgt_handler tgt_lfsck_handlers[] = {
LASSERT(mode == LCK_PR || mode == LCK_PW);
LASSERT(!lustre_handle_is_used(lh));
- if (nrbufs == 0 || !(nb[0].flags & OBD_BRW_SRVLOCK))
+ if (nrbufs == 0 || !(nb[0].rnb_flags & OBD_BRW_SRVLOCK))
RETURN(0);
for (i = 1; i < nrbufs; i++)
- if (!(nb[i].flags & OBD_BRW_SRVLOCK))
+ if (!(nb[i].rnb_flags & OBD_BRW_SRVLOCK))
RETURN(-EFAULT);
- RETURN(tgt_extent_lock(ns, res_id, nb[0].offset,
- nb[nrbufs - 1].offset + nb[nrbufs - 1].len - 1,
+ RETURN(tgt_extent_lock(ns, res_id, nb[0].rnb_offset,
+ nb[nrbufs - 1].rnb_offset +
+ nb[nrbufs - 1].rnb_len - 1,
lh, mode, &flags));
}
EXPORT_SYMBOL(tgt_brw_lock);
ENTRY;
LASSERT(mode == LCK_PR || mode == LCK_PW);
- LASSERT((obj->ioo_bufcnt > 0 && (niob[0].flags & OBD_BRW_SRVLOCK)) ==
+ LASSERT((obj->ioo_bufcnt > 0 &&
+ (niob[0].rnb_flags & OBD_BRW_SRVLOCK)) ==
lustre_handle_is_used(lh));
+
if (lustre_handle_is_used(lh))
tgt_extent_unlock(lh, mode);
EXIT;
}
}
- bufsize = 4;
+ bufsize = sizeof(cksum);
err = cfs_crypto_hash_final(hdesc, (unsigned char *)&cksum, &bufsize);
- if (err)
- cfs_crypto_hash_final(hdesc, NULL, NULL);
return cksum;
}
nob = 0;
for (i = 0; i < npages; i++) {
- int page_rc = local_nb[i].rc;
+ int page_rc = local_nb[i].lnb_rc;
if (page_rc < 0) {
rc = page_rc;
nob += page_rc;
if (page_rc != 0) { /* some data! */
- LASSERT(local_nb[i].page != NULL);
- ptlrpc_prep_bulk_page_nopin(desc, local_nb[i].page,
+ LASSERT(local_nb[i].lnb_page != NULL);
+ ptlrpc_prep_bulk_page_nopin(desc, local_nb[i].lnb_page,
local_nb[i].lnb_page_offset,
page_rc);
}
- if (page_rc != local_nb[i].len) { /* short read */
+ if (page_rc != local_nb[i].lnb_len) { /* short read */
/* All subsequent pages should be 0 */
while (++i < npages)
- LASSERT(local_nb[i].rc == 0);
+ LASSERT(local_nb[i].lnb_rc == 0);
break;
}
}
POSTID(&body->oa.o_oi),
local_nb[0].lnb_file_offset,
local_nb[npages-1].lnb_file_offset +
- local_nb[npages-1].len - 1,
+ local_nb[npages - 1].lnb_len - 1,
client_cksum, server_cksum);
}
sizeof(*remote_nb))
RETURN(err_serious(-EPROTO));
- if ((remote_nb[0].flags & OBD_BRW_MEMALLOC) &&
+ if ((remote_nb[0].rnb_flags & OBD_BRW_MEMALLOC) &&
(exp->exp_connection->c_peer.nid == exp->exp_connection->c_self))
memory_pressure_set();
/* NB Having prepped, we must commit... */
for (i = 0; i < npages; i++)
- ptlrpc_prep_bulk_page_nopin(desc, local_nb[i].page,
+ ptlrpc_prep_bulk_page_nopin(desc, local_nb[i].lnb_page,
local_nb[i].lnb_page_offset,
- local_nb[i].len);
+ local_nb[i].lnb_len);
rc = sptlrpc_svc_prep_bulk(req, desc);
if (rc != 0)
/* set per-requested niobuf return codes */
for (i = j = 0; i < niocount; i++) {
- int len = remote_nb[i].len;
+ int len = remote_nb[i].rnb_len;
nob += len;
rcs[i] = 0;
do {
LASSERT(j < npages);
- if (local_nb[j].rc < 0)
- rcs[i] = local_nb[j].rc;
- len -= local_nb[j].len;
+ if (local_nb[j].lnb_rc < 0)
+ rcs[i] = local_nb[j].lnb_rc;
+ len -= local_nb[j].lnb_len;
j++;
} while (len > 0);
LASSERT(len == 0);