From owner-cvs-all Mon Apr 30 8:20: 9 2001 Delivered-To: cvs-all@freebsd.org Received: from critter.freebsd.dk (critter.freebsd.dk [212.242.86.163]) by hub.freebsd.org (Postfix) with ESMTP id 1C38E37B423; Mon, 30 Apr 2001 08:19:58 -0700 (PDT) (envelope-from phk@critter.freebsd.dk) Received: from critter (localhost [127.0.0.1]) by critter.freebsd.dk (8.11.3/8.11.3) with ESMTP id f3UFJhU51137; Mon, 30 Apr 2001 17:19:43 +0200 (CEST) (envelope-from phk@critter.freebsd.dk) To: Bruce Evans Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/miscfs/specfs spec_vnops.c In-Reply-To: Your message of "Mon, 30 Apr 2001 07:35:37 PDT." <200104301435.f3UEZbX08864@freefall.freebsd.org> Date: Mon, 30 Apr 2001 17:19:43 +0200 Message-ID: <51135.988643983@critter> From: Poul-Henning Kamp Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Sorry about that guys... :-( Now I wonder how the heck my test-box survived... Poul-Henning In message <200104301435.f3UEZbX08864@freefall.freebsd.org>, Bruce Evans writes : >bde 2001/04/30 07:35:37 PDT > > Modified files: > sys/miscfs/specfs spec_vnops.c > Log: > Backed out previous commit. It cause massive filesystem corruption, > not to mention a compile-time warning about the critical function > becoming unused, by replacing spec_bmap() with vop_stdbmap(). > > ntfs seems to have the same bug. > > The factor for converting specfs block numbers to physical block > numbers is 1, but vop_stdbmap() uses the bogus factor > btodb(ap->a_vp->v_mount->mnt_stat.f_iosize), which is 16 for ffs with > the default block size of 8K. This factor is bogus even for vop_stdbmap() > -- the correct factor is related to the filesystem blocksize which is not > necessarily the same to the optimal i/o size. vop_stdbmap() was apparently > cloned from nfs where these sizes happen to be the same. > > There may also be a problem with a_vp->v_mount being null. spec_bmap() > still checks for this, but I think the checks in specfs are dead code > which used to support block devices. > > Revision Changes Path > 1.157 +2 -1 src/sys/miscfs/specfs/spec_vnops.c > > -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message