From owner-freebsd-scsi@FreeBSD.ORG Tue Jul 10 19:59:13 2012 Return-Path: Delivered-To: freebsd-scsi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 471AD106564A for ; Tue, 10 Jul 2012 19:59:13 +0000 (UTC) (envelope-from scott4long@yahoo.com) Received: from nm26-vm0.bullet.mail.sp2.yahoo.com (nm26-vm0.bullet.mail.sp2.yahoo.com [98.139.91.230]) by mx1.freebsd.org (Postfix) with SMTP id 1214A8FC0C for ; Tue, 10 Jul 2012 19:59:13 +0000 (UTC) Received: from [98.139.91.69] by nm26.bullet.mail.sp2.yahoo.com with NNFMP; 10 Jul 2012 19:59:07 -0000 Received: from [98.139.91.1] by tm9.bullet.mail.sp2.yahoo.com with NNFMP; 10 Jul 2012 19:59:07 -0000 Received: from [127.0.0.1] by omp1001.mail.sp2.yahoo.com with NNFMP; 10 Jul 2012 19:59:07 -0000 X-Yahoo-Newman-Property: ymail-3 X-Yahoo-Newman-Id: 221399.40610.bm@omp1001.mail.sp2.yahoo.com Received: (qmail 97568 invoked by uid 60001); 10 Jul 2012 19:59:07 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1341950347; bh=NPTdvVmO2OAVtqqerzvd9UUo05Jir9CW1gOP3lXf4w0=; h=X-YMail-OSG:Received:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=juKdBAE0xPdHEeeVlGhVoJSG5KcrLfRmw2QJHhZh8F6v/F2Yk8CqR5Nj4rkn5hG0k0/L72Ock61gJIsZRU1uL3JcizMvQwS8eZr5FgRIeJ83Er+u/Ym6fqida6wHBsq5yeACVCwuSOJ2bns9jFE7cW8abY35l8Ru6S8WSGVc3NU= DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=X-YMail-OSG:Received:X-Mailer:References:Message-ID:Date:From:Reply-To:Subject:To:Cc:In-Reply-To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=poj30jD7oJttAMZs8q/vc66N/h7hFv0e9H13nUQDoSRrlvSYGx1iNF/sSAAuv0PgYsiS+5ftB6/9iB2ZeYDcO7XKtAzjl5bzszIDuB8XxfBjanf9EsIr+EmtsjDbbOTAX4CnEosD0vrW7PVB2x6lXMIwFGgzB9dl2ViAW7R4ot4=; X-YMail-OSG: xkX94CgVM1mIQWbvlrtbACZHoOdjML5EEMoaSTIdx.qV0C1 PJ7MC6eLXB4MvAdQ6wkTukThH2L6_BVVHJXDOZr._AV9ncgTil99snWgHVnQ d.1nJmofL5SoXU3CKxhiG560UAe7lLGOtcAbLWPxEgj5BQ1FKY4N0agr6ROz 7aGq_iZvgYrmcBaOzej96pUS.bd1J7h4yqMMEqTlsQoGtfSrhZPW_fCCAT3Q CoZosigtsdDpRhQgUejeCgaDAoobofwvorRw_3kxmbyg1P3xAt3Rh8JvMdH6 YUC6R.fkSt3GJPZ_jhbIKgOJ_TBCRbFLM5Qp1KziDDourjSHu1xuWD5gfWH3 vxW642WC0nvgJY.6Ky9xVwsJfD7qSAk6SycOaJQjm1bi3GAou6wmNGl5YN87 p1xKNUjMfcB8tzqIXkr3wj_B94wvuZG.FNnBw2oXkhdDDRpwI6HjtwwNZ5ux ZxVvaE4Jip_U- Received: from [69.53.237.66] by web45701.mail.sp1.yahoo.com via HTTP; Tue, 10 Jul 2012 12:59:07 PDT X-Mailer: YahooMailWebService/0.8.120.356233 References: <909AAC62-7BB4-43E7-B04B-27466B038A07@averesystems.com> <1341340916.3370.6.camel@powernoodle.corp.yahoo.com> <2936EBFD-CA1E-4EC4-9790-80D1A5DC5567@averesystems.com> <1341938629.2573.7.camel@powernoodle.corp.yahoo.com> Message-ID: <1341950347.63294.YahooMailNeo@web45701.mail.sp1.yahoo.com> Date: Tue, 10 Jul 2012 12:59:07 -0700 (PDT) From: Scott Long To: Sean Bruno , Andrew Boyer In-Reply-To: <1341938629.2573.7.camel@powernoodle.corp.yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Cc: "freebsd-scsi@freebsd.org" , "scottl@freebsd.org" , "ambrisko@FreeBSD.ORG" Subject: Re: [patch] MFI should set bio_resid on command failure X-BeenThere: freebsd-scsi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Scott Long List-Id: SCSI subsystem List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 10 Jul 2012 19:59:13 -0000 =0A=0A=0A=0A----- Original Message -----=0A> From: Sean Bruno =0A> To: Andrew Boyer =0A> Cc: "freebsd-= scsi@freebsd.org" ; scottl@freebsd.org; "ambrisko= @FreeBSD.ORG" =0A> Sent: Tuesday, July 10, 2012 10:43= AM=0A> Subject: Re: [patch] MFI should set bio_resid on command failure=0A= > =0A> On Tue, 2012-07-10 at 09:37 -0700, Andrew Boyer wrote:=0A>> On Jul = 3, 2012, at 2:41 PM, Sean Bruno wrote:=0A>> =0A>> > On Tue, 2012-07-03 at = 06:47 -0700, Andrew Boyer wrote:=0A>> >> When an MFI command fails, the dr= iver needs to set =0A> bio->bio_resid so that the upper levels notice.=C2= =A0 Otherwise we see commands =0A> silently failing leading to data corrupt= ion.=C2=A0 This mirrors dadone().=0A>> >> =0A>> >> -Andrew=0A>> >> =0A>>= >> Index: sys/dev/mfi/mfi_disk.c=0A>> >> =0A> =3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=0A>> >> --- sys/dev/mfi/mfi_disk.c=C2=A0=C2=A0= =C2=A0 (revision 238071)=0A>> >> +++ sys/dev/mfi/mfi_disk.c=C2=A0=C2=A0=C2= =A0 (working copy)=0A>> >> @@ -298,6 +298,7 @@=0A>> >> =C2=A0=C2=A0=C2=A0= hdr =3D bio->bio_driver1;=0A>> >> =0A>> >> =C2=A0=C2=A0=C2=A0 if (bio->b= io_flags & BIO_ERROR) {=0A>> >> +=C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 bio= ->bio_resid =3D bio->bio_bcount;=0A>> >> =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0= =C2=A0 if (bio->bio_error =3D=3D 0)=0A>> >> =C2=A0=C2=A0=C2=A0 =C2=A0=C2= =A0=C2=A0 =C2=A0=C2=A0=C2=A0 bio->bio_error =3D EIO;=0A>> >> =C2=A0=C2=A0= =C2=A0 =C2=A0=C2=A0=C2=A0 disk_err(bio, "hard error", -1, 1);=0A>> >> =0A>= > >> --------------------------------------------------=0A>> >> Andrew Bo= yer=C2=A0=C2=A0=C2=A0 aboyer@averesystems.com=0A>> >> =0A>> > =0A>> > Th= is looks right to me.=C2=A0 It mirrors the behavior in =0A> mfi_disk_strate= gy()=0A>> > as well.=0A>> > =0A>> > Sean=0A>> > =0A>> =0A>> Anyone int= erested in committing?=C2=A0 (And MFC'ing to stable/8=E2=80=A6)=0A>> =0A>> = -Andrew=0A>> =0A>> --------------------------------------------------=0A>= > Andrew Boyer=C2=A0=C2=A0=C2=A0 aboyer@averesystems.com=0A>> =0A>> =0A>> = =0A> =0A> Let me hit dougA and scottl for validation.=C2=A0 Their wisdom he= re can=0A> validate my naivete.=0A> =0A=0A=0AYeah, b_resid needs to be set,= and a lot of drivers get this wrong.=0A=0AScott=0A