[2.1.8x] Updated UFS driver --- patch included.

Niels Kristian Bech Jensen (nkbj@image.dk)
Wed, 4 Feb 1998 10:44:35 +0100 (MET)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

--8323328-1832289433-886583608=:1001
Content-Type: TEXT/PLAIN; CHARSET=iso-8859-1
Content-Transfer-Encoding: 8BIT
Content-ID: <Pine.LNX.3.95.980204102337.2431B@hafnium.nkbj.dk>

Hi,
The patch attached to this message is an update to the kernel UFS driver.
I've tested it with kernels 2.1.84 and 2.1.85 and several UFS variants.

The new things in this update are:

* Support for the 4.4BSD (FreeBSD) UFS variant.
* Support for fs_bsize=4096 and fs_fsize=512.

Still missing:

* Support for the NeXTstep UFS variant.
* ???

Thanks to Martin von Löwis, Fare Rideau and Bruno Haible for code, answers
and suggestions.

--
Med venlig hilsen / Best regards
                                                              nkbj@image.dk
Niels Kristian Bech Jensen                       http://www.image.dk/~nkbj/

--8323328-1832289433-886583608=:1001 Content-Type: APPLICATION/OCTET-STREAM; NAME="ufs-2.1.85.patch.gz" Content-Transfer-Encoding: BASE64 Content-ID: <Pine.LNX.3.95.980204101328.1001B@hafnium.nkbj.dk> Content-Description:

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 dfbsq38DszWuH2eRAAA= --8323328-1832289433-886583608=:1001--