[Ocfs2-tools-devel] [PATCH 06/22] libocfs2: Make ocfs2_init_group_desc aware of discontig group.

Joel Becker Joel.Becker at oracle.com
Thu Apr 1 03:21:04 PDT 2010


On Thu, Apr 01, 2010 at 04:01:23PM +0800, Tao Ma wrote:
> Joel Becker wrote:
> > On Thu, Apr 01, 2010 at 12:41:10PM +0800, Tao Ma wrote:
> >> Pass a parameter named suballoc to ocfs2_init_group_desc
> >> so that it can init bg_size properly.
> > 
> > 	I hate passing this parameter around.  I don't know how to make
> > it better.
> yeah, the only way is that we can add a new member in ocfs2_group_desc, 
> but that are only 2 reserved field(1 le32 and one le64), so I don't want 
> to waste them.
> 
> Another way is that we separate bg_chain to a __le8
> -	__le16  bg_chain;
> +	__le8	bg_chain;
> +	__le8	bg_flags;
 
	You're at least partially right.  In the kernel code, I rely on
the fact that we know we are a block or cluster allocator before
deciding to trust bg_list.l_next_free_rec.  Then I use l_next_free_rec
to decide if we're discontig.  However, our filesystem is (almost
always) self-describing.  We don't just set i_refcount_loc, we also set
REFCOUNT_FL.
	It's better if we have a way to know the group descriptor is
discontiguous without knowing the inode and superblock.  Then the
feature tests are mere sanity.
	We can add bg_flags as you describe above.  Another option is to
see that bg_bitmap + bg_size == offsetof(bg_list).  Both work.  The
former is more descriptive, the latter is less invasive.  Which works
for you?  Mark?

Joel

-- 

"The first requisite of a good citizen in this republic of ours
 is that he shall be able and willing to pull his weight."
	- Theodore Roosevelt

Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127



More information about the Ocfs2-tools-devel mailing list