X-Git-Url: https://git.openafs.org/?p=openafs.git;a=blobdiff_plain;f=src%2Fubik%2Fubik.c;h=a22aaffa626f7caef74d673404b872fcdf24ec82;hp=bc203b00b08a09cf954199e8c11c76c6f8012d70;hb=4103aee514615c46e919202fb7842b9b2e254ff9;hpb=b19bb7db413de426984f6ddb79b7b97ea478ffaf diff --git a/src/ubik/ubik.c b/src/ubik/ubik.c index bc203b0..a22aaff 100644 --- a/src/ubik/ubik.c +++ b/src/ubik/ubik.c @@ -667,7 +667,11 @@ BeginTrans(struct ubik_dbase *dbase, afs_int32 transMode, if (transMode == UBIK_WRITETRANS) { /* for a write trans, we have to keep track of the write tid counter too */ dbase->writeTidCounter = tt->tid.counter; + } + + UBIK_VERSION_UNLOCK; + if (transMode == UBIK_WRITETRANS) { /* next try to start transaction on appropriate number of machines */ code = ContactQuorum_NoArguments(DISK_Begin, tt, 0); if (code) { @@ -675,14 +679,12 @@ BeginTrans(struct ubik_dbase *dbase, afs_int32 transMode, udisk_abort(tt); ContactQuorum_NoArguments(DISK_Abort, tt, 0); /* force aborts to the others */ udisk_end(tt); - UBIK_VERSION_UNLOCK; DBRELE(dbase); return code; } } *transPtr = tt; - UBIK_VERSION_UNLOCK; DBRELE(dbase); return 0; }