[Tux3] Corrected: [PATCH 1/2] Implementing listattr for fuse: FIX unitialized sb->atomref_base and unatom_base

Jonas Fietz info at jonasfietz.de
Mon Dec 1 12:46:25 PST 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,
Jonas Fietz wrote:
> user/super.c. I hope this is correct;
As one could have expected, it was not completely correct.
Here the updated patch


# HG changeset patch
# User Jonas Fietz <data at geekig.de>
# Date 1228164250 -3600
# Node ID 965fa90edabda66d20d01b628ee1a902de7951f1
# Parent  954112a5893e0da997d469a068b29108b07323b0
Fixed unitialized sb->atomref_base and sb->unatom_base and corrected
computation of unatom_base to not include the unitialized value of
itself but the value of atomref_base as an offset

diff --git a/user/kernel/super.c b/user/kernel/super.c
- --- a/user/kernel/super.c
+++ b/user/kernel/super.c
@@ -41,6 +41,8 @@
 	sb->nextalloc = from_be_u64(super->nextalloc);
 	sb->atomgen = from_be_u32(super->atomgen);
 	sb->freeatom = from_be_u32(super->freeatom);
+	sb->atomref_base = 1 << (40 - sb->blockbits); // see xattr.c
+	sb->unatom_base = sb->atomref_base + (1 << (34 - sb->blockbits));

 	return 0;
 }
diff --git a/user/super.c b/user/super.c
- --- a/user/super.c
+++ b/user/super.c
@@ -93,7 +93,7 @@
 	if (!(sb->atable = new_inode(sb, TUX_ATABLE_INO)))
 		goto eek;
 	sb->atomref_base = 1 << (40 - sb->blockbits); // see xattr.c
- -	sb->unatom_base = sb->unatom_base + (1 << (34 - sb->blockbits));
+	sb->unatom_base = sb->atomref_base + (1 << (34 - sb->blockbits));
 	sb->atomgen = 1; // atom 0 not allowed, means end of atom freelist
 	if (make_inode(sb->atable, &(struct tux_iattr){ }))
 		goto eek;
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)

iEYEARECAAYFAkk0TSEACgkQydrGfzV1md0O9gCglX/HI8D0tdiq2ekNgxSZEmsE
n4MAoLVY1pI94ZvP3cWF0LJ7JqSMcI8/
=bJLD
-----END PGP SIGNATURE-----

_______________________________________________
Tux3 mailing list
Tux3 at tux3.org
http://tux3.org/cgi-bin/mailman/listinfo/tux3



More information about the Tux3 mailing list