From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jan Beulich" Subject: Re: [PATCH] Re: Another blktap2-ish shutdown crash Date: Mon, 07 Jun 2010 14:43:27 +0100 Message-ID: <4C0D139F02000078000054A3@vpn.id2.novell.com> References: <4BD8D4AE.6020602@goop.org> <1275529836.3162.11.camel@agari.van.xensource.com> <4C0CBC02020000780000537C@vpn.id2.novell.com> <1275909134.4191.24.camel@ramone.somacoma.net> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <1275909134.4191.24.camel@ramone.somacoma.net> Content-Disposition: inline List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Daniel Stodden Cc: Jeremy Fitzhardinge , "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org >>> On 07.06.10 at 13:12, Daniel Stodden = wrote: > On Mon, 2010-06-07 at 03:29 -0400, Jan Beulich wrote: >> >>> On 03.06.10 at 03:50, Daniel Stodden = wrote: >>=20 >> Why would you want blk_start_request() only after the blk_fs_request() >> check, but not after the blk_barrier_rq() one? >=20 > Huh? But cases did get the blk_start_request call (?!) I have to admit that I don't understand your response at all. Assuming that you think my original question was rubbish, this is the original (before your patch) code I look at while ((req =3D blk_peek_request(rq)) !=3D NULL) { if (!blk_fs_request(req)) { blk_end_request(req, -EIO, 0); continue; } if (blk_barrier_rq(req)) { blk_end_request(req, -EIO, 0); continue; } ... blk_start_request(req); ... Your patch inserts a call to blk_start_request() into the first if clause's body, and I was asking why the second one's wouldn't also need such a call. Sorry if I'm being dense - I'll appreciate any enlightenment. Jan