On Thu, 8 Dec 2022, Mouse wrote:
I will have to dig into that more. It does seem to be waiting, in that the call does not return until the thirty seconds specified in the timeout field have elapsed. (It then takes about another 30s before printing the cache-flush timeout message and returning to userland.) [...] Why? cmd.flags specifies AT_WAIT, and as I remarked above it is indeed waiting, so cmd, on the kernel stack, should outlive the I/O attempt.
OK, I now see that the *_exec_command()s in 5.2 do wait if AT_WAIT is set. 9.X does a ata_wait_cmd() for this. -RVP