- # read the lines of interest
- df_out=($(df $inodes $dir | tail -n +2)) ||
- error "df $inodes $dir | tail -n +2 failed"
- lfs_df_out=($($LFS df $inodes $dir | grep filesystem_summary:)) ||
- error "lfs df $inodes $dir | grep filesystem_summary: failed"
-
- # skip the first substrings of each command output as they are different
- # <NID>:/<fsname for df, filesystem_summary: for lfs df
- df_out=(${df_out[@]:1})
- lfs_df_out=(${lfs_df_out[@]:1})
-
- # compare the two outputs
- for i in {0..4}; do
- [ "${df_out[i]}" != "${lfs_df_out[i]}" ] &&
- error "df and lfs df output mismatch:" \
- "df${inodes}: ${df_out[*]}," \
- "lfs df${inodes}: ${lfs_df_out[*]}"
+ while (( count < tries )); do
+ cancel_lru_locks
+ sync; sleep 0.2
+
+ # read the lines of interest
+ df_out=($(df $inodes $dir | tail -n +2)) ||
+ error "df $inodes $dir | tail -n +2 failed"
+ lfs_df_out=($($LFS df $inodes $dir | grep summary:)) ||
+ error "lfs df $inodes $dir | grep summary: failed"
+
+ # skip first substrings of each output as they are different
+ # <NID>:/<fsname for df, filesystem_summary: for lfs df
+ df_out=(${df_out[@]:1})
+ lfs_df_out=(${lfs_df_out[@]:1})
+
+ # compare the two outputs
+ passed=true
+
+ for i in {0..4}; do
+ [ "${df_out[i]}" != "${lfs_df_out[i]}" ] && passed=false
+ done
+ $passed && break