Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 11 Jun 2004 11:31:47 -0500
From:      Brian Bergstrand <brian@classicalguitar.net>
To:        fs@freebsd.org
Subject:   Ext2 vs UFS getlbns
Message-ID:  <D517B455-BBC4-11D8-8C2A-0003930A674E@classicalguitar.net>

next in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I just noticed something in ext2_getlbns() (ext2_bmap.c, v1.57) vs. 
ufs_getlbns() (ufs_bmap.c, v1.60)

In the last loop to setup the indir array,

UFS does:

{
...
blockcnt /= MNINDIR(ump);
off = (bn / blockcnt) % MNINDIR(ump);

++numlevels;
ap->in_lbn = metalbn;
ap->in_off = off;
ap->in_exists = 0;
++ap;

metalbn -= -1 + off * blockcnt;
}

While Ext2 does:

{
...
off = (bn / blockcnt) % MNINDIR(ump);

++numlevels;
ap->in_lbn = metalbn;
ap->in_off = off;
ap->in_exists = 0;
++ap;

metalbn -= -1 + off * blockcnt;
blockcnt /= MNINDIR(ump);
}

Notice that blockcnt is changed AFTER offset/metalbn in Ext2 and BEFORE 
those in UFS.

Was this change in Ext2 done on purpose for some reason? It makes a 
difference in calculating in_off and metalbn for some block #'s.

Thanks.

Brian Bergstrand <http://www.bergstrand.org/brian/>, AIM: triryche206
PGP Key: <http://www.bergstrand.org/brian/misc/public_key.txt>;
If all else fails, lower your standards.
As of 11:31:08 AM, iTunes is playing "Tristessa" from "Gish" by 
"Smashing Pumpkins"

-----BEGIN PGP SIGNATURE-----
Version: PGP 8.0.3

iQA/AwUBQMnQZHnR2Fu2x7aiEQK+QgCeJynMXuz9NsR+HBh+LDGKjdDT5SUAnAqc
x2FZQ7uaURUzxOOTItxByl4D
=5IRG
-----END PGP SIGNATURE-----



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D517B455-BBC4-11D8-8C2A-0003930A674E>