Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Device-mapper Development (http://www.linux-archive.org/device-mapper-development/)
-   -   dm_crypt: Issue all previous bios before remapping barrier bio (http://www.linux-archive.org/device-mapper-development/318570-dm_crypt-issue-all-previous-bios-before-remapping-barrier-bio.html)

Nikanth Karthikesan 02-01-2010 02:19 PM

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

Nikanth Karthikesan 02-03-2010 05:09 AM

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 04:27 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.