X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Ftarget%2Fout_handler.c;h=ab902aaf2a3765b5a1ca538998583fd17aafd7a8;hp=6499fc401f27ee830eaa08c87494a6d5e6de645e;hb=713174908cb8e5e3ceadd3ca1cb42a88b200e576;hpb=d059b3c01a9784b8da61ea99fb746e949d681b7e diff --git a/lustre/target/out_handler.c b/lustre/target/out_handler.c index 6499fc4..ab902aa 100644 --- a/lustre/target/out_handler.c +++ b/lustre/target/out_handler.c @@ -31,10 +31,13 @@ #define DEBUG_SUBSYSTEM S_CLASS -#include +#include +#include +#include +#include #include +#include #include "tgt_internal.h" -#include static void out_reconstruct(const struct lu_env *env, struct dt_device *dt, struct dt_object *obj, @@ -109,7 +112,7 @@ static int out_create(struct tgt_session_info *tsi) if (IS_ERR(wobdo) || size != sizeof(*wobdo)) { CERROR("%s: obdo is NULL, invalid RPC: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(wobdo)); - RETURN(err_serious(PTR_ERR(wobdo))); + RETURN(PTR_ERR(wobdo)); } if (ptlrpc_req_need_swab(tsi->tsi_pill->rc_req)) @@ -123,14 +126,14 @@ static int out_create(struct tgt_session_info *tsi) if (IS_ERR(fid) || size != sizeof(*fid)) { CERROR("%s: invalid fid: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(fid)); - RETURN(err_serious(PTR_ERR(fid))); + RETURN(PTR_ERR(fid)); } if (ptlrpc_req_need_swab(tsi->tsi_pill->rc_req)) lustre_swab_lu_fid(fid); if (!fid_is_sane(fid)) { CERROR("%s: invalid fid "DFID": rc = %d\n", tgt_name(tsi->tsi_tgt), PFID(fid), -EPROTO); - RETURN(err_serious(-EPROTO)); + RETURN(-EPROTO); } } @@ -162,7 +165,7 @@ static int out_attr_set(struct tgt_session_info *tsi) if (IS_ERR(wobdo) || size != sizeof(*wobdo)) { CERROR("%s: empty obdo in the update: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(wobdo)); - RETURN(err_serious(PTR_ERR(wobdo))); + RETURN(PTR_ERR(wobdo)); } attr->la_valid = 0; @@ -254,14 +257,14 @@ static int out_xattr_get(struct tgt_session_info *tsi) if (IS_ERR(name)) { CERROR("%s: empty name for xattr get: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(name)); - RETURN(err_serious(PTR_ERR(name))); + RETURN(PTR_ERR(name)); } update_result = object_update_result_get(reply, 0, NULL); if (update_result == NULL) { CERROR("%s: empty name for xattr get: rc = %d\n", tgt_name(tsi->tsi_tgt), -EPROTO); - RETURN(err_serious(-EPROTO)); + RETURN(-EPROTO); } lbuf->lb_len = (int)tti->tti_u.update.tti_update->ou_result_size; @@ -305,7 +308,7 @@ static int out_index_lookup(struct tgt_session_info *tsi) if (IS_ERR(name)) { CERROR("%s: empty name for lookup: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(name)); - RETURN(err_serious(PTR_ERR(name))); + RETURN(PTR_ERR(name)); } dt_read_lock(env, obj, MOR_TGT_CHILD); @@ -357,13 +360,13 @@ static int out_xattr_set(struct tgt_session_info *tsi) if (IS_ERR(name)) { CERROR("%s: empty name for xattr set: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(name)); - RETURN(err_serious(PTR_ERR(name))); + RETURN(PTR_ERR(name)); } /* If buffer == NULL (-ENODATA), then it might mean delete xattr */ buf = object_update_param_get(update, 1, &buf_len); if (IS_ERR(buf) && PTR_ERR(buf) != -ENODATA) - RETURN(err_serious(PTR_ERR(buf))); + RETURN(PTR_ERR(buf)); lbuf->lb_buf = buf; lbuf->lb_len = buf_len; @@ -372,7 +375,7 @@ static int out_xattr_set(struct tgt_session_info *tsi) if (IS_ERR(tmp) || size != sizeof(*tmp)) { CERROR("%s: emptry or wrong size %zu flag: rc = %ld\n", tgt_name(tsi->tsi_tgt), size, PTR_ERR(tmp)); - RETURN(err_serious(PTR_ERR(tmp))); + RETURN(PTR_ERR(tmp)); } if (ptlrpc_req_need_swab(tsi->tsi_pill->rc_req)) @@ -399,7 +402,7 @@ static int out_xattr_del(struct tgt_session_info *tsi) if (IS_ERR(name)) { CERROR("%s: empty name for xattr set: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(name)); - RETURN(err_serious(PTR_ERR(name))); + RETURN(PTR_ERR(name)); } rc = out_tx_xattr_del(tsi->tsi_env, obj, name, &tti->tti_tea, @@ -462,14 +465,14 @@ static int out_index_insert(struct tgt_session_info *tsi) if (IS_ERR(name)) { CERROR("%s: empty name for index insert: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(name)); - RETURN(err_serious(PTR_ERR(name))); + RETURN(PTR_ERR(name)); } fid = object_update_param_get(update, 1, &size); if (IS_ERR(fid) || size != sizeof(*fid)) { CERROR("%s: invalid fid: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(fid)); - RETURN(err_serious(PTR_ERR(fid))); + RETURN(PTR_ERR(fid)); } if (ptlrpc_req_need_swab(tsi->tsi_pill->rc_req)) @@ -478,14 +481,14 @@ static int out_index_insert(struct tgt_session_info *tsi) if (!fid_is_sane(fid)) { CERROR("%s: invalid FID "DFID": rc = %d\n", tgt_name(tsi->tsi_tgt), PFID(fid), -EPROTO); - RETURN(err_serious(-EPROTO)); + RETURN(-EPROTO); } ptype = object_update_param_get(update, 2, &size); if (IS_ERR(ptype) || size != sizeof(*ptype)) { CERROR("%s: invalid type for index insert: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(ptype)); - RETURN(err_serious(PTR_ERR(ptype))); + RETURN(PTR_ERR(ptype)); } if (ptlrpc_req_need_swab(tsi->tsi_pill->rc_req)) @@ -517,7 +520,7 @@ static int out_index_delete(struct tgt_session_info *tsi) if (IS_ERR(name)) { CERROR("%s: empty name for index delete: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(name)); - RETURN(err_serious(PTR_ERR(name))); + RETURN(PTR_ERR(name)); } rc = out_tx_index_delete(tsi->tsi_env, obj, (const struct dt_key *)name, @@ -540,7 +543,7 @@ static int out_destroy(struct tgt_session_info *tsi) if (!fid_is_sane(fid)) { CERROR("%s: invalid FID "DFID": rc = %d\n", tgt_name(tsi->tsi_tgt), PFID(fid), -EPROTO); - RETURN(err_serious(-EPROTO)); + RETURN(-EPROTO); } if (!lu_object_exists(&obj->do_lu)) @@ -572,7 +575,7 @@ static int out_write(struct tgt_session_info *tsi) if (IS_ERR(buf) || buf_len == 0) { CERROR("%s: empty buf for xattr set: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(buf)); - RETURN(err_serious(PTR_ERR(buf))); + RETURN(PTR_ERR(buf)); } lbuf->lb_buf = buf; lbuf->lb_len = buf_len; @@ -581,7 +584,7 @@ static int out_write(struct tgt_session_info *tsi) if (IS_ERR(tmp) || size != sizeof(*tmp)) { CERROR("%s: empty or wrong size %zu pos: rc = %ld\n", tgt_name(tsi->tsi_tgt), size, PTR_ERR(tmp)); - RETURN(err_serious(PTR_ERR(tmp))); + RETURN(PTR_ERR(tmp)); } if (ptlrpc_req_need_swab(tsi->tsi_pill->rc_req)) @@ -626,7 +629,7 @@ static int out_read(struct tgt_session_info *tsi) if (IS_ERR(tmp)) { CERROR("%s: empty size for read: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(tmp)); - GOTO(out, rc = err_serious(PTR_ERR(tmp))); + GOTO(out, rc = PTR_ERR(tmp)); } size = le64_to_cpu(*(size_t *)(tmp)); @@ -634,7 +637,7 @@ static int out_read(struct tgt_session_info *tsi) if (IS_ERR(tmp)) { CERROR("%s: empty pos for read: rc = %ld\n", tgt_name(tsi->tsi_tgt), PTR_ERR(tmp)); - GOTO(out, rc = err_serious(PTR_ERR(tmp))); + GOTO(out, rc = PTR_ERR(tmp)); } pos = le64_to_cpu(*(__u64 *)(tmp)); @@ -935,7 +938,7 @@ int out_handle(struct tgt_session_info *tsi) OBD_ALLOC(update_bufs, sizeof(*update_bufs) * update_buf_count); if (update_bufs == NULL) - RETURN(-ENOMEM); + RETURN(err_serious(-ENOMEM)); if (ouh->ouh_inline_length > 0) { update_bufs[0] = ouh->ouh_inline_data; @@ -944,7 +947,7 @@ int out_handle(struct tgt_session_info *tsi) oub = req_capsule_client_get(pill, &RMF_OUT_UPDATE_BUF); if (oub == NULL) - GOTO(out_free, rc = -EPROTO); + GOTO(out_free, rc = err_serious(-EPROTO)); desc = ptlrpc_prep_bulk_exp(pill->rc_req, update_buf_count, PTLRPC_BULK_OPS_COUNT, @@ -953,16 +956,16 @@ int out_handle(struct tgt_session_info *tsi) MDS_BULK_PORTAL, &ptlrpc_bulk_kvec_ops); if (desc == NULL) - GOTO(out_free, rc = -ENOMEM); + GOTO(out_free, rc = err_serious(-ENOMEM)); tmp = oub; for (i = 0; i < update_buf_count; i++, tmp++) { if (tmp->oub_size >= OUT_MAXREQSIZE) - GOTO(out_free, rc = -EPROTO); + GOTO(out_free, rc = err_serious(-EPROTO)); OBD_ALLOC(update_bufs[i], tmp->oub_size); if (update_bufs[i] == NULL) - GOTO(out_free, rc = -ENOMEM); + GOTO(out_free, rc = err_serious(-ENOMEM)); desc->bd_frag_ops->add_iov_frag(desc, update_bufs[i], tmp->oub_size); @@ -971,11 +974,11 @@ int out_handle(struct tgt_session_info *tsi) pill->rc_req->rq_bulk_write = 1; rc = sptlrpc_svc_prep_bulk(pill->rc_req, desc); if (rc != 0) - GOTO(out_free, rc); + GOTO(out_free, rc = err_serious(rc)); rc = target_bulk_io(pill->rc_req->rq_export, desc, &lwi); if (rc < 0) - GOTO(out_free, rc); + GOTO(out_free, rc = err_serious(rc)); } /* validate the request and calculate the total update count and * set it to reply */ @@ -994,7 +997,7 @@ int out_handle(struct tgt_session_info *tsi) " expect %x: rc = %d\n", tgt_name(tsi->tsi_tgt), our->ourq_magic, UPDATE_REQUEST_MAGIC, -EPROTO); - GOTO(out_free, rc = -EPROTO); + GOTO(out_free, rc = err_serious(-EPROTO)); } updates += our->ourq_count; @@ -1002,7 +1005,7 @@ int out_handle(struct tgt_session_info *tsi) for (j = 0; j < our->ourq_count; j++) { update = object_update_request_get(our, j, NULL); if (update == NULL) - GOTO(out, rc = -EPROTO); + GOTO(out, rc = err_serious(-EPROTO)); if (ptlrpc_req_need_swab(pill->rc_req)) lustre_swab_object_update(update); @@ -1026,7 +1029,7 @@ int out_handle(struct tgt_session_info *tsi) CERROR("%s: too small reply buf %u for %u, need %u at least\n", tgt_name(tsi->tsi_tgt), ouh->ouh_reply_size, updates, reply_size); - GOTO(out_free, rc = -EPROTO); + GOTO(out_free, rc = err_serious(-EPROTO)); } req_capsule_set_size(pill, &RMF_OUT_UPDATE_REPLY, RCL_SERVER, @@ -1035,13 +1038,13 @@ int out_handle(struct tgt_session_info *tsi) if (rc != 0) { CERROR("%s: Can't pack response: rc = %d\n", tgt_name(tsi->tsi_tgt), rc); - GOTO(out_free, rc = -EPROTO); + GOTO(out_free, rc = err_serious(-EPROTO)); } /* Prepare the update reply buffer */ reply = req_capsule_server_get(pill, &RMF_OUT_UPDATE_REPLY); if (reply == NULL) - GOTO(out_free, rc = err_serious(-EPROTO)); + GOTO(out_free, rc = -EPROTO); reply->ourp_magic = UPDATE_REPLY_MAGIC; reply->ourp_count = updates; tti->tti_u.update.tti_update_reply = reply;