From owner-cvs-all Sun Sep 26 13:52:45 1999 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id BD78B1537B; Sun, 26 Sep 1999 13:52:42 -0700 (PDT) (envelope-from dillon@FreeBSD.org) Received: (from dillon@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id NAA13637; Sun, 26 Sep 1999 13:52:42 -0700 (PDT) (envelope-from dillon@FreeBSD.org) Message-Id: <199909262052.NAA13637@freefall.freebsd.org> From: Matt Dillon Date: Sun, 26 Sep 1999 13:52:42 -0700 (PDT) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/miscfs/union union.h union_subr.c union_vfsops.c union_vnops.c Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk dillon 1999/09/26 13:52:42 PDT Modified files: sys/miscfs/union union.h union_subr.c union_vfsops.c union_vnops.c Log: This is a major fixup of unionfs. At least 30 serious bugs have been fixed (many due to changing semantics in other parts of the kernel and not the original author's fault), including one critical one: unionfs could cause UFS corruption in the fronting store due to calling VOP_OPEN for writing without turning on vmio for the UFS vnode. Most of the bugs were related to semantics changes in VOP calls, lock ordering problems (causing deadlocks), improper handling of a read-only backing store (such as an NFS mount), improper referencing and locking of vnodes, not using real struct locks for vnode locking, not using recursive locks when accessing the fronting store, and things like that. New functionality has been added: unionfs now has mmap() support, but only partially tested, and rename has been enhanced considerably. There are still some things that unionfs cannot do. You cannot rename a directory without confusing unionfs, and there are issues with softlinks, hardlinks, and special files. unionfs mostly doesn't understand them (and never did). There are probably still panic situations, but hopefully no where near as many as before this commit. The unionfs in this commit has been tested overlayed on /usr/src (backing /usr/src being a read-only NFS mount, fronting /usr/src being a local filesystem). kernel builds have been tested, buildworld is undergoing testing. More testing is necessary. Revision Changes Path 1.15 +37 -10 src/sys/miscfs/union/union.h 1.40 +349 -197 src/sys/miscfs/union/union_subr.c 1.36 +58 -68 src/sys/miscfs/union/union_vfsops.c 1.64 +818 -588 src/sys/miscfs/union/union_vnops.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message