diff --git a/sys/dev/fdc/fdc.c b/sys/dev/fdc/fdc.c index 2bfd4c371d65..19edf51a2ec2 100644 --- a/sys/dev/fdc/fdc.c +++ b/sys/dev/fdc/fdc.c @@ -758,6 +758,9 @@ fdc_worker(struct fdc_data *fdc) (fdc->retry >= retries || (fd->options & FDOPT_NORETRY))) { if ((debugflags & 4)) printf("Too many retries (EIO)\n"); + mtx_lock(&fdc->fdc_mtx); + fd->flags |= FD_EMPTY; + mtx_unlock(&fdc->fdc_mtx); return (fdc_biodone(fdc, EIO)); }