From owner-freebsd-stable Tue Feb 12 23:53:33 2002 Delivered-To: freebsd-stable@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 821F537B404; Tue, 12 Feb 2002 23:53:29 -0800 (PST) Received: (from dillon@localhost) by apollo.backplane.com (8.11.6/8.9.1) id g1D7rNw97615; Tue, 12 Feb 2002 23:53:23 -0800 (PST) (envelope-from dillon) Date: Tue, 12 Feb 2002 23:53:23 -0800 (PST) From: Matthew Dillon Message-Id: <200202130753.g1D7rNw97615@apollo.backplane.com> To: Bruce Evans Cc: Matteo , , , Subject: Re: Crash System with MSDOS file-system driver! References: <20020213180814.R6948-100000@gamplex.bde.org> Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG :> (and, in anycase, also non-VMIO). :> :> The buffer cache API supports short reads. It is not a bug or a mistake. : :I disagree. Critical callers like ffs_balloc() never checked for short :reads, so it must be bread()'s responsibility not to return them. : :Bruce Nonsense. Critical callers like ffs_balloc() do not have to check for short reads because they never call block functions using out of bounds offsets. This does not in any way imply that we should remove the feature from our general purpose buffer cache. UFS and MSDOSFS are not the only modules that use the buffer cache. The only real bug here is that a number of modules, including UFS, MSDOSFS, and NFS, incorrectly assume that b_resid is a persistent field rather then transitory field valid only at completion of an I/O. -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message