dm_crypt: Issue all previous bios before remapping barrier bio
Before remapping a barrier bio, make sure that there are no un-issued
pending I/O in the workqueue. Otherwise a dm_flush would simply add a barrier request to the underlying device, without issuing the bio's queued in the dm_crypt device. Signed-off-by: Nikanth Karthikesan <knikanth@suse.de> -- diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index a936372..be68e70 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -1252,6 +1252,7 @@ static int crypt_map(struct dm_target *ti, struct bio *bio, if (unlikely(bio_empty_barrier(bio))) { cc = ti->private; + flush_workqueue(cc->io_queue); bio->bi_bdev = cc->dev->bdev; return DM_MAPIO_REMAPPED; } -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel |
dm_crypt: Issue all previous bios before remapping barrier bio
On Tuesday 02 February 2010 18:17:24 Mikulas Patocka wrote:
> On Mon, 1 Feb 2010, Milan Broz wrote: > > On 02/01/2010 04:19 PM, Nikanth Karthikesan wrote: > > > Before remapping a barrier bio, make sure that there are no un-issued > > > pending I/O in the workqueue. Otherwise a dm_flush would simply add > > > a barrier request to the underlying device, without issuing the bio's > > > queued in the dm_crypt device. > > > > This should not be needed. Core dm code waits for all bios submitted > > before barrier requests. > > > > Mikulas, could you verify it? > > > > Milan > > Yes, you are right, the patch is not needed. > > When the target receives an empty barrier request, there are no other data > requests in flight. > > BTW. The target may receive more empty barrier requests simultaneously, if > it asked for it by setting ti->num_flush_requests to more than one. But > barrier and non-barrier requests are never mixed. > Correct. Sorry, I was a bit hasty in sending that patch. It is not required. Thanks for the patient explanation. Thanks Nikanth -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel |
| All times are GMT. The time now is 10:44 PM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.