Re: [PATCH] libata, freezer: avoid block device removal while system is frozen

Nigel Cunningham
2013-12-13T22:53:15Z

Hi Tejun.

Thanks for your work on this.

In your first email, in the first substantial paragraph (starting "Now,
if the rest.."), you say "libata device removal waits for the scheduled
writeback work item to finish". I wonder if that's the lynchpin. If we
know the device is gone, why are we trying to write to it?

All pending I/O should have been flushed when suspend/hibernate started,
and there's no point in trying to update metadata on a device we can't
access, so there should be no writeback needed (and anything that does
somehow get there should just be discarded since it will never succeed
anyway).

Or am I missing something?

Having said the above, I agree that we shouldn't need to freeze kernel
threads and workqueues themselves. I think we should be giving the
producers of I/O the nous needed to avoid producing I/O during
suspend/hibernate. But perhaps I'm missing something here, too.

Regards,

Nigel