Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jun 2003 15:31:30 +0200
From:      Pawel Jakub Dawidek <nick@garage.freebsd.pl>
To:        "Tim J. Robbins" <tjr@FreeBSD.org>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/fs/nullfs null.h null_subr.c null_vnops.c
Message-ID:  <20030617133130.GF38547@garage.freebsd.pl>
In-Reply-To: <200306170852.h5H8qjgg087299@repoman.freebsd.org>
References:  <200306170852.h5H8qjgg087299@repoman.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--1Ow488MNN9B9o/ov
Content-Type: text/plain; charset=iso-8859-2
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Jun 17, 2003 at 01:52:45AM -0700, Tim J. Robbins wrote:
+> tjr         2003/06/17 01:52:45 PDT
+>=20
+>   FreeBSD src repository
+>=20
+>   Modified files:
+>     sys/fs/nullfs        null.h null_subr.c null_vnops.c=20
+>   Log:
+>   MFp4: Fix two bugs causing possible deadlocks or panics, and one nit:
+>   - Emulate lock draining (LK_DRAIN) in null_lock() to avoid deadlocks
+>     when the vnode is being recycled.
+>   - Don't allow null_nodeget() to return a nullfs vnode from the wrong
+>     mount when multiple nullfs's are mounted. It's unclear why these che=
cks
+>     were removed in null_subr.c 1.35, but they are definitely necessary.
+>     Without the checks, trying to unmount a nullfs mount will erroneously
+>     return EBUSY, and forcibly unmounting with -f will cause a panic.
+>   - Bump LOG2_SIZEVNODE up to 8, since vnodes are >256 bytes now. The old
+>     value (7) didn't cause any problems, but made the hash algorithm
+>     suboptimal.
+>  =20
+>   These changes fix nullfs enough that a parallel buildworld succeeds.

Great work!

You susspect there are more problems with nullfs?
This file system looks like a very simple thing, maybe it's implementation
is too complicate?

I'm not sure, but if we forgot about mount flags, etc. (something like
hardlink to directory) we only have to do one thing: return correct vnode o=
n:

	# cd /mnt/null/..

Every other operation inside nullfs should be done with functions from
original file system.

Maybe I'm talking stupid things here, but those two file systems are really
helpfull (I'm talking also about unionfs) and it will be great if there
will be no BUGS section in manuals for those file systems.

--=20
Pawel Jakub Dawidek                       pawel@dawidek.net
UNIX Systems Programmer/Administrator     http://garage.freebsd.pl
Am I Evil? Yes, I Am!                     http://cerber.sourceforge.net

--1Ow488MNN9B9o/ov
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (FreeBSD)

iQCVAwUBPu8YMj/PhmMH/Mf1AQGyNgQAmvHEcjpxNv23lHdsFrSAXbQtTDV5nTOo
t/slIpfKqDB/XDKvFuDaqfrrZUJ2HTZ0RHMhBP34QeaIr4XLfPuOKRIbuif+rpS+
aUNDEV14FEQ4rTPZ1R93wacoZOV49awOQOqhZ/OhyTiYYmTslGcEY4wqPYMI2eMJ
bgBYqwC7b1g=
=6bqJ
-----END PGP SIGNATURE-----

--1Ow488MNN9B9o/ov--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030617133130.GF38547>