Whamcloud - gitweb
LU-3963 libcfs: Delete empty source files for linux layer
[fs/lustre-release.git] / lustre / target / tgt_handler.c
index 3d3c690..8742c9a 100644 (file)
@@ -76,29 +76,29 @@ static int tgt_mdt_body_unpack(struct tgt_session_info *tsi, __u32 flags)
 
        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;
@@ -110,7 +110,7 @@ static int tgt_mdt_body_unpack(struct tgt_session_info *tsi, __u32 flags)
                rc = PTR_ERR(obj);
        }
 
-       tsi->tsi_fid = body->fid1;
+       tsi->tsi_fid = body->mbo_fid1;
 
        RETURN(rc);
 }
@@ -398,7 +398,7 @@ static int tgt_handle_request0(struct tgt_session_info *tsi,
                                          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,
@@ -797,7 +797,7 @@ static int tgt_init_sec_level(struct ptlrpc_request *req)
                        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);
@@ -1126,7 +1126,7 @@ TGT_OBD_HDL    (0,        OBD_IDX_READ,           tgt_obd_idx_read)
 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;
 
@@ -1137,7 +1137,7 @@ int tgt_sync(const struct lu_env *env, struct lu_target *tgt,
                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);
@@ -1167,6 +1167,9 @@ int tgt_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc,
            (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);
@@ -1180,7 +1183,12 @@ int tgt_blocking_ast(struct ldlm_lock *lock, struct ldlm_lock_desc *desc,
                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",
@@ -1409,7 +1417,7 @@ static int tgt_handle_lfsck_query(struct tgt_session_info *tsi)
 {
        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);
@@ -1420,12 +1428,10 @@ static int tgt_handle_lfsck_query(struct tgt_session_info *tsi)
        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[] = {
@@ -1534,15 +1540,16 @@ int tgt_brw_lock(struct ldlm_namespace *ns, struct ldlm_res_id *res_id,
        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);
@@ -1553,8 +1560,10 @@ void tgt_brw_unlock(struct obd_ioobj *obj, struct niobuf_remote *niob,
        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;
@@ -1628,10 +1637,8 @@ static __u32 tgt_checksum_bulk(struct lu_target *tgt,
                }
        }
 
-       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;
 }
@@ -1733,7 +1740,7 @@ int tgt_brw_read(struct tgt_session_info *tsi)
 
        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;
@@ -1742,16 +1749,16 @@ int tgt_brw_read(struct tgt_session_info *tsi)
 
                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;
                }
        }
@@ -1866,7 +1873,7 @@ static void tgt_warn_on_cksum(struct ptlrpc_request *req,
                           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);
 }
 
@@ -1939,7 +1946,7 @@ int tgt_brw_write(struct tgt_session_info *tsi)
                        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();
 
@@ -2002,9 +2009,9 @@ int tgt_brw_write(struct tgt_session_info *tsi)
 
        /* 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)
@@ -2065,15 +2072,15 @@ skip_transfer:
 
                /* 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);