Subject: Re: Supporting sector size != DEV_BSIZE on lfs
To: None <tech-kern@netbsd.org>
From: Trevin Beattie <trevin@xmission.com>
List: tech-kern
Date: 06/19/2002 15:08:58
At 02:44 PM 6/19/2002 -0700, Konrad Schroder wrote:
>"fsb" is the unit that ufs_daddr_ts count; in v1 it is sectors, in v2
>it is fragments; so on LFSv2 filesystems it doesn't do anything but on v1
>it does.

In ufs/dinode.h, ufs_daddr_t is a fragment number.  In lfs_newbuf()
(lfs_bio.c:473), it's used for a DEV_BSIZE block number.  I've just
discovered two calls to lfs_newbuf in lfs_segment.c that need to be fixed
because they pass a sector count.  (A third call correctly passes a
DEV_BSIZE block number).

>newfs_lfs already looks at d_secsize from the disklabel to set up its
>parameters; I think the only thing you'll need to change is the definition
>of i_ffs_blocks...and then test, of course :^)

I mean no disrespect, but I don't trust the code.  I've already tried
running newfs_lfs once and failed, so I'm going to continue reviewing the
rest of the lfs code before I make another attempt.  (So far I've made four
changes to the lfs code, not including the two mistakes mentioned above;
and a few changes to newfs_lfs to let it write sectors up to 8K.)

-----------------------
Trevin Beattie          "Do not meddle in the affairs of wizards,
trevin@xmission.com     for you are crunchy and good with ketchup."
      {:->                                     --unknown