- [ ${#fid_list[@]} -ne $fcount ] &&
- error "${#fid_list[@]} != $fcount open files"
-
- for (( i = 0; i < $fcount; i++ )) ; do
- cmd="exec ${fd_list[i]}</dev/null"
- eval $cmd
- filename=$($LFS fid2path $DIR2 ${fid_list[i]})
+ [ ${#fid_list[@]} -ne $((fcount + already)) ] &&
+ error "${#fid_list[@]} != $fcount (+$already old) open files"
+
+ echo -n "closing files: "
+ for (( fd = 0, fid = 0; fd < $fcount; fd++, fid++ )) ; do
+ local close_cmd="exec ${fd_list[fd]}<&-"
+ eval $close_cmd
+ filename=$($LFS fid2path $DIR2 ${fid_list[fid]})
+
+ while [[ ! "$filename" =~ "$DIR2/$tdir/f_" ]]; do
+ echo "skip old open file $filename"
+ ((fid++))
+ filename=$($LFS fid2path $DIR2 ${fid_list[fid]})
+ done