Whamcloud - gitweb
Revert "b=22755 Don't consume grant twice on recoverable resend"
authorRobert Read <robert.read@oracle.com>
Wed, 16 Jun 2010 16:45:11 +0000 (09:45 -0700)
committerRobert Read <robert.read@oracle.com>
Wed, 16 Jun 2010 16:45:11 +0000 (09:45 -0700)
This reverts commit ccddc6afde64c75e39bb04fdeafec00c46f7f8e3.

lustre/include/lustre/lustre_idl.h
lustre/obdfilter/filter_io.c
lustre/osc/osc_request.c

index 5b8daf1..02ace2f 100644 (file)
@@ -1181,8 +1181,6 @@ enum obdo_flags {
         OBD_FL_CKSUM_RSVD2  = 0x00008000, /* for future cksum types */
         OBD_FL_CKSUM_RSVD3  = 0x00010000, /* for future cksum types */
         OBD_FL_SHRINK_GRANT = 0x00020000, /* object shrink the grant */
-        OBD_FL_RECOV_RESEND = 0x00080000, /* request resend on recoverable
-                                           * error */
 
         OBD_FL_CKSUM_ALL    = OBD_FL_CKSUM_CRC32 | OBD_FL_CKSUM_ADLER,
 
index f6f824d..71d7e28 100644 (file)
@@ -530,14 +530,9 @@ static int filter_grant_check(struct obd_export *exp, struct obdo *oa,
         int blocksize = exp->exp_obd->u.obt.obt_sb->s_blocksize;
         unsigned long used = 0, ungranted = 0, using;
         int i, rc = -ENOSPC, obj, n = 0;
-        int resend = oa->o_valid & OBD_FL_RECOV_RESEND;
 
         LASSERT_SPIN_LOCKED(&exp->exp_obd->obd_osfs_lock);
 
-        if (resend)
-                CDEBUG(D_CACHE, "Recoverable resend arrived, skipping "
-                       "accounting\n");
-
         for (obj = 0; obj < objcount; obj++) {
                 for (i = 0; i < fso[obj].fso_bufcnt; i++, n++) {
                         int tmp, bytes;
@@ -551,11 +546,7 @@ static int filter_grant_check(struct obd_export *exp, struct obdo *oa,
 
                         if ((lnb[n].flags & OBD_BRW_FROM_GRANT) &&
                             (oa->o_valid & OBD_MD_FLGRANT)) {
-                                if (resend) {
-                                        lnb[n].flags |= OBD_BRW_GRANTED;
-                                        rc = 0;
-                                        continue;
-                                } else if (fed->fed_grant < used + bytes) {
+                                if (fed->fed_grant < used + bytes) {
                                         CDEBUG(D_CACHE,
                                                "%s: cli %s/%p claims %ld+%d "
                                                "GRANT, real grant %lu idx %d\n",
index 83e7528..b81d8d3 100644 (file)
@@ -1230,8 +1230,7 @@ static int osc_brw_prep_request(int cmd, struct client_obd *cli,struct obdo *oa,
                                 struct lov_stripe_md *lsm, obd_count page_count,
                                 struct brw_page **pga,
                                 struct ptlrpc_request **reqp,
-                                struct obd_capa *ocapa, int reserve,
-                                int resend)
+                                struct obd_capa *ocapa, int reserve)
 {
         struct ptlrpc_request   *req;
         struct ptlrpc_bulk_desc *desc;
@@ -1347,9 +1346,6 @@ static int osc_brw_prep_request(int cmd, struct client_obd *cli,struct obdo *oa,
                 &RMF_NIOBUF_REMOTE), (void *)(niobuf - niocount));
 
         osc_announce_cached(cli, &body->oa, opc == OST_WRITE ? requested_nob:0);
-        if (resend)
-                body->oa.o_valid |= OBD_FL_RECOV_RESEND;
-
         if (osc_should_shrink_grant(cli))
                 osc_shrink_grant_local(cli, &body->oa);
 
@@ -1648,7 +1644,7 @@ static int osc_brw_internal(int cmd, struct obd_export *exp, struct obdo *oa,
 
 restart_bulk:
         rc = osc_brw_prep_request(cmd, &exp->exp_obd->u.cli, oa, lsm,
-                                  page_count, pga, &req, ocapa, 0, resends);
+                                  page_count, pga, &req, ocapa, 0);
         if (rc != 0)
                 return (rc);
 
@@ -1701,7 +1697,7 @@ int osc_brw_redo_request(struct ptlrpc_request *request,
                                   aa->aa_cli, aa->aa_oa,
                                   NULL /* lsm unused by osc currently */,
                                   aa->aa_page_count, aa->aa_ppga,
-                                  &new_req, aa->aa_ocapa, 0, 1);
+                                  &new_req, aa->aa_ocapa, 0);
         if (rc)
                 RETURN(rc);
 
@@ -2293,7 +2289,7 @@ static struct ptlrpc_request *osc_build_req(const struct lu_env *env,
 
         sort_brw_pages(pga, page_count);
         rc = osc_brw_prep_request(cmd, cli, oa, NULL, page_count,
-                                  pga, &req, crattr.cra_capa, 1, 0);
+                                  pga, &req, crattr.cra_capa, 1);
         if (rc != 0) {
                 CERROR("prep_req failed: %d\n", rc);
                 GOTO(out, req = ERR_PTR(rc));