From owner-cvs-all Mon Jan 21 22:17:28 2002 Delivered-To: cvs-all@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id C25C537B417; Mon, 21 Jan 2002 22:17:24 -0800 (PST) Received: (from mckusick@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g0M6HOx41725; Mon, 21 Jan 2002 22:17:24 -0800 (PST) (envelope-from mckusick) Message-Id: <200201220617.g0M6HOx41725@freefall.freebsd.org> From: Kirk McKusick Date: Mon, 21 Jan 2002 22:17:24 -0800 (PST) To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ufs/ffs ffs_alloc.c ffs_extern.h ffs_softdep.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG mckusick 2002/01/21 22:17:24 PST Modified files: sys/ufs/ffs ffs_alloc.c ffs_extern.h ffs_softdep.c Log: This patch fixes a long standing complaint with soft updates in which small and/or nearly full filesystems would fail with `file system full' messages when trying to replace a number of existing files (for example during a system installation). When the allocation routines are about to fail with a file system full condition, they make a call to softdep_request_cleanup() which attempts to accelerate the flushing of pending deletion requests in an effort to free up space. In the face of filesystem I/O requests that exceed the available disk transfer capacity, the cleanup request could take an unbounded amount of time. Thus, the softdep_request_cleanup() routine will only try for tickdelay seconds (default 2 seconds) before giving up and returning a filesystem full error. Under typical conditions, the softdep_request_cleanup() routine is able to free up space in under fifty milliseconds. Revision Changes Path 1.85 +22 -6 src/sys/ufs/ffs/ffs_alloc.c 1.44 +2 -1 src/sys/ufs/ffs/ffs_extern.h 1.105 +41 -4 src/sys/ufs/ffs/ffs_softdep.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message