Immediately abort call when not able to fetch length (fetchInit).
authorFelix Frank <Felix.Frank@Desy.de>
Mon, 13 Jul 2009 09:13:21 +0000 (11:13 +0200)
committerDerrick Brashear <shadow|account-1000005@unknown>
Fri, 11 Sep 2009 16:52:27 +0000 (09:52 -0700)
Reviewed-on: http://gerrit.openafs.org/132
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>

src/afs/afs_fetchstore.c

index 145057f..d6cbc82 100644 (file)
@@ -952,7 +952,11 @@ rxfs_fetchInit(register struct afs_conn *tc, struct vcache *avc,afs_offs_t base,
            if (bytes == sizeof(afs_int32))
                length = ntohl(length);
            else {
+               RX_AFS_GUNLOCK();
                code = rx_Error(v->call);
+                code1 = rx_EndCall(v->call, code);
+               v->call = NULL;
+               RX_AFS_GLOCK();
            }
        }
        FillInt64(length64, length_hi, length);
@@ -975,6 +979,8 @@ rxfs_fetchInit(register struct afs_conn *tc, struct vcache *avc,afs_offs_t base,
                 *alength = ntohl(length);
            } else {
                code = rx_Error(v->call);
+                code1 = rx_EndCall(v->call, code);
+               v->call = NULL;
            }
        }
 #endif /* AFS_64BIT_CLIENT */