Changeset 8357
- Timestamp:
- 06/02/10 17:35:05 (3 years ago)
- Files:
-
- 1 modified
-
branches/pvfs-2-8-branch/src/io/job/job.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/pvfs-2-8-branch/src/io/job/job.c
r8320 r8357 4427 4427 4428 4428 trove_pending_count--; 4429 assert(trove_pending_count >= 0); 4429 4430 /* don't overwrite error codes from other trove ops */ 4431 if(tmp_trove->jd->u.precreate_pool.error_code == 0) 4432 { 4433 tmp_trove->jd->u.precreate_pool.error_code = error_code; 4434 } 4435 4436 /* acquiring this mutex a little early so that it can also serve to 4437 * prevent multiple trove operations from racing between decrementing 4438 * and then reading the pool.trove_pending counter 4439 */ 4440 gen_mutex_lock(&completion_mutex); 4430 4441 4431 4442 tmp_trove->jd->u.precreate_pool.trove_pending--; 4432 4443 assert(tmp_trove->jd->u.precreate_pool.trove_pending >= 0); 4433 4444 4434 /* don't overwrite error codes from other trove ops */4435 if(tmp_trove->jd->u.precreate_pool.error_code == 0)4436 {4437 tmp_trove->jd->u.precreate_pool.error_code = error_code;4438 }4439 4440 4445 /* is this job done? */ 4441 4446 if(tmp_trove->jd->u.precreate_pool.trove_pending == 0) 4442 4447 { 4443 gen_mutex_lock(&completion_mutex);4444 4445 4448 /* set job descriptor fields and put into completion queue */ 4446 4449 tmp_trove->jd->u.precreate_pool.error_code = 0; … … 4459 4462 } 4460 4463 4464 gen_mutex_unlock(&completion_mutex); 4461 4465 return; 4462 4466 } … … 5705 5709 jd->u.precreate_pool.fsid = fsid; 5706 5710 jd->u.precreate_pool.servers = servers; 5711 jd->u.precreate_pool.flags = flags; 5707 5712 jd->u.precreate_pool.trove_pending = 0; 5708 jd->u.precreate_pool.flags = flags;5709 5713 5710 5714 /* rotate to use a different starting server in the pool next time */ … … 5861 5865 } 5862 5866 5867 /* pre-increment pending count before posting any trove operations */ 5868 jd->u.precreate_pool.trove_pending = jd->u.precreate_pool.precreate_handle_count; 5869 5863 5870 /* post all trove operations at once */ 5864 5871 for(i=0; i<jd->u.precreate_pool.precreate_handle_count; i++) … … 5901 5908 } 5902 5909 5903 /* pre-increment pending count before posting trove operation */5904 trove_pending_count++;5905 jd->u.precreate_pool.trove_pending++;5906 5910 5907 5911 /* post trove operation to pull out a handle */ … … 5933 5937 else 5934 5938 { 5939 trove_pending_count++; 5935 5940 /* callback will be triggered later */ 5936 5941 }
