--- ad_lustre_v7/ad_lustre_aggregate.c 2009-04-24 16:24:54.000000000 +0800 +++ ad_lustre_v8/ad_lustre_aggregate.c 2009-05-05 15:35:11.000000000 +0800 @@ -57,9 +57,9 @@ /* To avoid extent lock conflicts, * avail_cb_nodes should divide (stripe_count*CO) exactly, * so that each OST is accessed by only one or more constant clients. */ - avail_cb_nodes = ADIOI_MIN(nprocs_for_coll, stripe_count * CO); - if (avail_cb_nodes == nprocs_for_coll) { - CO_nodes = stripe_count * CO; + CO_nodes = stripe_count * CO; + avail_cb_nodes = ADIOI_MIN(nprocs_for_coll, CO_nodes); + if (avail_cb_nodes < CO_nodes) { do { /* find the divisor of CO_nodes */ divisor = 1;