chmod 777 $dir
do_nodes $CLIENTS $myRUNAS \
- dd if=/dev/zero of="$dir/nrs_r_$HOSTNAME" bs=1M count=$n ||
+ dd if=/dev/zero of="$dir/nrs_r_\$HOSTNAME" bs=1M count=$n ||
error "dd at 0 on client failed (1)"
- for ((i = 0; i < $n; i++)); do
- do_nodes $CLIENTS $myRUNAS dd if=/dev/zero \
- of="$dir/nrs_w_$HOSTNAME" bs=1M seek=$i count=1 ||
- error "dd at ${i}MB on client failed (2)" &
- local pids_w[$i]=$!
- done
+ do_nodes $CLIENTS $myRUNAS \
+ "declare -a pids_w;
+ for ((i = 0; i < $n; i++)); do
+ dd if=/dev/zero of=$dir/nrs_w_\$HOSTNAME bs=1M \
+seek=\\\$i count=1 conv=notrunc &
+ pids_w[\\\$i]=\\\$!;
+ done;
+ rc_w=0;
+ for ((i = 0; i < $n; i++)); do
+ wait \\\${pids_w[\\\$i]};
+ newrc=\\\$?;
+ [ \\\$newrc -gt \\\$rc_w ] && rc_w=\\\$newrc;
+ done;
+ exit \\\$rc_w" &
+ local pid_w=$!
do_nodes $CLIENTS sync;
cancel_lru_locks osc
- for ((i = 0; i < $n; i++)); do
- do_nodes $CLIENTS $myRUNAS dd if="$dir/nrs_w_$HOSTNAME" \
- of=/dev/zero bs=1M seek=$i count=1 > /dev/null ||
- error "dd at ${i}MB on client failed (3)" &
- local pids_r[$i]=$!
- done
+ do_nodes $CLIENTS $myRUNAS \
+ "declare -a pids_r;
+ for ((i = 0; i < $n; i++)); do
+ dd if=$dir/nrs_r_\$HOSTNAME bs=1M of=/dev/null \
+seek=\\\$i count=1 &
+ pids_r[\\\$i]=\\\$!;
+ done;
+ rc_r=0;
+ for ((i = 0; i < $n; i++)); do
+ wait \\\${pids_r[\\\$i]};
+ newrc=\\\$?;
+ [ \\\$newrc -gt \\\$rc_r ] && rc_r=\\\$newrc;
+ done;
+ exit \\\$rc_r" &
+ local pid_r=$!
cancel_lru_locks osc
- for ((i = 0; i < $n; i++)); do
- wait ${pids_w[$i]}
- wait ${pids_r[$i]}
- done
- rm -rf $dir || error "rm -rf $dir failed"
+ wait $pid_w || error "dd (write) failed (2)"
+ wait $pid_r || error "dd (read) failed (3)"
+ rm -rvf $dir || error "rm -rf $dir failed"
}
test_77a() { #LU-3266