From 12701388e64af661c7112fab037dd540de0baf7a Mon Sep 17 00:00:00 2001 From: Jun'ichi Nomura Date: Mon, 27 Mar 2006 01:17:51 -0800 Subject: [PATCH] --- yaml --- r: 24392 b: refs/heads/master c: 1ecac7fd74f2e5fb06a7719ecba55fb5778a9a47 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/md/dm.c | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d6125c33cb12..56c088c1fc01 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 138728dc96529f20dfe970c470e51885a60e329f +refs/heads/master: 1ecac7fd74f2e5fb06a7719ecba55fb5778a9a47 diff --git a/trunk/drivers/md/dm.c b/trunk/drivers/md/dm.c index a64798ef481e..48be69f3bcfa 100644 --- a/trunk/drivers/md/dm.c +++ b/trunk/drivers/md/dm.c @@ -1107,6 +1107,7 @@ int dm_suspend(struct mapped_device *md, int do_lockfs) { struct dm_table *map = NULL; DECLARE_WAITQUEUE(wait, current); + struct bio *def; int r = -EINVAL; down(&md->suspend_lock); @@ -1166,9 +1167,11 @@ int dm_suspend(struct mapped_device *md, int do_lockfs) /* 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);