dm thin: requeue bios to DM core if no_free_space and in read-only mode
authorMike Snitzer <snitzer@redhat.com>
Thu, 5 Dec 2013 20:47:24 +0000 (15:47 -0500)
committerMike Snitzer <snitzer@redhat.com>
Tue, 7 Jan 2014 15:14:29 +0000 (10:14 -0500)
commit8c0f0e8c9f07e6554b2281f86f00e769cf805fd9
tree06e1aac7a4705eb7cb5c494c50cd8852a5415f60
parent399caddfb16f5fa30c66056a32477cf95c947e2b
dm thin: requeue bios to DM core if no_free_space and in read-only mode

Now that we switch the pool to read-only mode when the data device runs
out of space it causes active writers to get IO errors once we resume
after resizing the data device.

If no_free_space is set, save bios to the 'retry_on_resume_list' and
requeue them on resume (once the data or metadata device may have been
resized).

With this patch the resize_io test passes again (on slower storage):
 dmtest run --suite thin-provisioning -n /resize_io/

Later patches fix some subtle races associated with the pool mode
transitions done as part of the pool's -ENOSPC handling.  These races
are exposed on fast storage (e.g. PCIe SSD).

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Acked-by: Joe Thornber <ejt@redhat.com>
drivers/md/dm-thin.c