cvs commit: src/sys/geom/concat g_concat.c src/sys/geom/label g_label.c src/sys/geom/mirror g_mirror.c src/sys/geom/raid3 g_raid3.c src/sys/geom/stripe g_stripe.c

Brian Fundakowski Feldman green at FreeBSD.org
Thu Aug 26 11:31:49 PDT 2004


On Thu, Aug 26, 2004 at 03:37:52PM +0200, Pawel Jakub Dawidek wrote:
> On Thu, Aug 26, 2004 at 05:29:21PM +0400, Roman Kurakin wrote:
> +> >Yes, I know that it should be done this way, but I'm not going to fix
> +> >atapi-cd.c, scsi_da.c and scsi_cd.c and who knows what else.
> +> >Those classes set error to 0 even when provider has not sectorsize
> +> >and mediasize defined.
> +> > 
> +> >
> +> Does your code print any warning message in that case?
> +> That could force authors of 'buggy' code to fix it.
> 
> No, this should be KASSERT() inside g_error_provider():
> 
> KASSERT(error == 0 && pp->sectorsize > 0 && pp->mediasize > 0, ("Buggy code."));

I don't like that one bit.  KASSERT() should be reserved for serious
programming errors -- guarding against side cases that show major
error.  panic() should be reserved for cases where error recovery is
impossible and errors are detected under the normal course of error
checking.  printf() should be used when there are simple mistakes that
do not cause system instability if you recover from them.

-- 
Brian Fundakowski Feldman                           \'[ FreeBSD ]''''''''''\
  <> green at FreeBSD.org                               \  The Power to Serve! \
 Opinions expressed are my own.                       \,,,,,,,,,,,,,,,,,,,,,,\


More information about the cvs-src mailing list