From owner-freebsd-doc Thu Jan 17 16:10: 8 2002 Delivered-To: freebsd-doc@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id D6D9037B416 for ; Thu, 17 Jan 2002 16:10:02 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g0I0A2T25987; Thu, 17 Jan 2002 16:10:02 -0800 (PST) (envelope-from gnats) Date: Thu, 17 Jan 2002 16:10:02 -0800 (PST) Message-Id: <200201180010.g0I0A2T25987@freefall.freebsd.org> To: freebsd-doc@freebsd.org Cc: From: Hiten Pandya Subject: Re: docs/30603: physio(9) is internally inconsistent Reply-To: Hiten Pandya Sender: owner-freebsd-doc@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR docs/30603; it has been noted by GNATS. From: Hiten Pandya To: freebsd-gnats-submit@FreeBSD.org, chris@redlinenetworks.com Cc: Subject: Re: docs/30603: physio(9) is internally inconsistent Date: Fri, 18 Jan 2002 00:06:08 +0000 I am currently having a look into this problem. A patch should be soon submitted. This issue will take a bit time for me, but it will be fixed hopefully, before FreeBSD 4.5 is released. The structure of the physio() routine has been changed from: (as found in the src/sys/sys/buf.h header file) OLD: physio(void (*strategy)(struct buf *), struct buf *bp, dev_t dev, int flags, u_int (*minphys)(struct buf *), struct uio *uio); NEW: int physio (dev_t dev, struct uio *uio, int ioflag); The initial change was done by phk@FreeBSD.org, as he refered to it as "wash-and-clean of code". In other words, this routine has been given a makeover since the 3.5.1 release.. Saying that, this change was made 2 years ago!, and no-one noticed it till now.. thanks to chris.. The following changes were made: (according to the cvs log of revision 1.81) (I am refering to the src/sys/sys/buf.h file.. others had to be updated too..) o Let physio take read/write compatible args and have it use uio->uio_rw to determine the direction. o physread/physwrite are now #defines for physio o Remove the inversly name minphys() routine, dev->si_iosize_max takes over. o physio() always uses pbufs. o Fix the check for non page-aligned transfers, now only unaligned transfers largen than (MAXPHYS - PAGE_SIZE) get fragmented (only interesting for tapes using max blocksize). So, in a nutshell, the physio(9) man page needs a re-write, which I will do ASAP :) regards, - Hiten - -- SSH Fingerprint: 1024 45:a5:9c:f2:fb:07:da:70:18:02:0b:f3:63:f1:7a:a6 hitenp@hpdi.ath.cx To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-doc" in the body of the message