From owner-freebsd-scsi Thu May 30 13:19:00 1996 Return-Path: owner-freebsd-scsi Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id NAA19291 for freebsd-scsi-outgoing; Thu, 30 May 1996 13:19:00 -0700 (PDT) Received: from linux4nn.gn.iaf.nl (root@linux4nn.gn.iaf.nl [193.67.144.34]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id NAA19280 for ; Thu, 30 May 1996 13:18:53 -0700 (PDT) Received: from uni4nn.iaf.nl (root@uni4nn.iaf.nl [193.67.144.33]) by linux4nn.gn.iaf.nl (8.6.9/8.6.9) with SMTP id WAA17193; Thu, 30 May 1996 22:19:51 +0200 Received: by uni4nn.iaf.nl with UUCP id AA16184 (5.67b/IDA-1.5); Thu, 30 May 1996 22:19:27 +0200 Received: by iafnl.es.iaf.nl with UUCP id AA30889 (5.67b/IDA-1.5); Thu, 30 May 1996 21:39:37 +0200 Received: (from wilko@localhost) by yedi.iaf.nl (8.6.12/8.6.6) id VAA08360; Thu, 30 May 1996 21:27:05 +0200 From: Wilko Bulte Message-Id: <199605301927.VAA08360@yedi.iaf.nl> X-Organisation: Private FreeBSD site - Arnhem - The Netherlands Subject: Re: removing 32 kbyte limit from dump To: bde@zeta.org.au (Bruce Evans) Date: Thu, 30 May 1996 21:27:05 +0200 (MET DST) Cc: freebsd-scsi@FreeBSD.ORG In-Reply-To: <199605301219.WAA19690@godzilla.zeta.org.au> from "Bruce Evans" at May 30, 96 10:19:02 pm X-Mailer: ELM [version 2.4 PL23] Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: owner-freebsd-scsi@FreeBSD.ORG X-Loop: FreeBSD.org Precedence: bulk As Bruce Evans wrote... > > >But I'm not really satisfied by this. I'd rather see that the st.c > >driver returns EINVAL or something like that when an attempt is made > >to write an impossible block size (and of course dump should act > >accordingly when it receives the error value). > > 96K is not impossible. It just gets mutilated to 64K+32K by physio(), Read impossible as: as the physio() code now handles it. > and the error isn't detected because both 64K and 32K are possible. > physio() needs to have a do-not-split flag. Hm. > Similar problems probably affect cd and worm devices. An i/o of > 100 * 2352 byte blocks would be mutilated at 64K boundaries. This > can be fixed using the current physio() interface: don't use rawread()/ > rawwrite(), and provided a minphys() function that returns > (MAXPHYS / 2352) * 2352 (it must be <= MAXPHYS because physio() > uses min(MAXPHYS, minphys()). For cd this is possible not a big problem. I'm not sure about worm. > >! /* so lets tell the user now and not wait for him/her > >! /* to see the console message */ > >! if ( ntrec > 64 ) { > >! msg("Please choose a blocksize <= 64 \n"); > > exit(X_ABORT); > > 64 should be MAXPHYS/1024. True! Wilko _ __________________________________________________________________________ | / o / / _ Wilko Bulte email: wilko@yedi.iaf.nl |/|/ / / /( (_) Private FreeBSD site - Arnhem - The Netherlands --------------------------------------------------------------------------------