data blocks question

Nehal nehalmistry at gmx.net
Wed Sep 29 19:49:02 PDT 2004


On Wed, 29 Sep 2004 19:09:29 -0400
David Schultz <das at FreeBSD.ORG> wrote:

> On Wed, Sep 29, 2004, Nehal wrote:
> > On Wed, 29 Sep 2004 16:42:33 -0400
> > David Schultz <das at FreeBSD.ORG> wrote:
> > 
> > > On Wed, Sep 29, 2004, Nehal wrote:
> > > > on my ufs2 partition, there is a file that has a size of
> > > > 65536, and has 2 direct blocks only. the block size of the
> > > > fs is 16k and fragment block size is 2k.
> > > > 
> > > > how can this be possible? wouldn't 2 direct blocks mean
> > > > that the maximum size is 2x16k = 32k? or am i not
> > > > understanding something correctly?
> > > > 
> > > > i've made a copy of the file, and the new file has 4
> > > > direct blocks.
> > > > 
> > > > it is a binary file, and i can read it fine (ie, cat it).
> > > > i've done fsck on the filesystem and it found no problem.
> > > 
> > > Yes, UFS supports sparse files.  That is, you can have a
> > > file with parts you haven't written to, and the blocks for
> > > those parts won't be allocated.  The cp utility doesn't know
> > > about this, though, so copies will have the ``holes'' filled
> > > with zeroes.
> > > 
> > 
> > how would i determine the offset and length of these 'holes'
> > for sparse files?
> 
> It's an implementation detail, so you're not supposed to need to
> know most of the time.  You can use fsdb to find out.
> 
i would like to know how it is implemented. is there somewhere in
the freebsd source that i can find this info?

Nehal


More information about the freebsd-fs mailing list