Date: Thu, 17 Jan 2002 16:10:02 -0800 (PST) From: Hiten Pandya <hiten@uk.FreeBSD.org> To: freebsd-doc@freebsd.org Subject: Re: docs/30603: physio(9) is internally inconsistent Message-ID: <200201180010.g0I0A2T25987@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR docs/30603; it has been noted by GNATS.
From: Hiten Pandya <hiten@uk.FreeBSD.org>
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
- <hiten@uk.FreeBSD.org>
--
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200201180010.g0I0A2T25987>
