Messages in this thread Patch in this message | | | Date | Thu, 27 Apr 2006 17:19:55 -0700 | From | Greg KH <> | Subject | [patch 13/24] dm flush queue EINTR |
| |
-stable review patch. If anyone has any objections, please let us know.
------------------ If dm_suspend() is cancelled, bios already added to the deferred list need to be submitted. Otherwise they remain 'in limbo' until there's a dm_resume().
Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- drivers/md/dm.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
--- linux-2.6.16.11.orig/drivers/md/dm.c +++ linux-2.6.16.11/drivers/md/dm.c @@ -1098,6 +1098,7 @@ int dm_suspend(struct mapped_device *md, { struct dm_table *map = NULL; DECLARE_WAITQUEUE(wait, current); + struct bio *def; int r = -EINVAL; down(&md->suspend_lock); @@ -1157,9 +1158,11 @@ int dm_suspend(struct mapped_device *md, /* were we interrupted ? */ r = -EINTR; if (atomic_read(&md->pending)) { + clear_bit(DMF_BLOCK_IO, &md->flags); + def = bio_list_get(&md->deferred); + __flush_deferred_io(md, def); up_write(&md->io_lock); unlock_fs(md); - clear_bit(DMF_BLOCK_IO, &md->flags); goto out; } up_write(&md->io_lock); -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |