All of lore.kernel.org
 help / color / mirror / Atom feed
* [Ocfs2-devel] [PATCH 0/10] Make ocfs2_extent_tree a first-class object
@ 2008-08-21  2:48 Joel Becker
  2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 01/10] ocfs2: Prefix the extent tree operations structure Joel Becker
                   ` (10 more replies)
  0 siblings, 11 replies; 42+ messages in thread
From: Joel Becker @ 2008-08-21  2:48 UTC (permalink / raw)
  To: ocfs2-devel

The new xattr code introduced a great abstraction, ocfs2_extent_tree.
However, it's hidden in alloc.c.  Tao said he wanted to keep it there,
but I think it works great as a first-class object.

Callers into alloc.c can just fill in an ocfs2_extent_tree with the
appropriate ocfs2_get_*_extent_tree() function, then pass it to all
alloc.c functions.  Those functions no longer need individual root_bh,
root_el, et_type, or void*private arguments.  People filling in dinode
extent trees don't even need to pass NULL for that private.

The series first adds structure prefixes to ocfs2_extent_tree and
ocfs2_extent_tree_operations.  Next, it turns 'private' into 'object',
calculating object as bh->b_data if it was NULL.  Third, we calculate
the other fields (root_el, max_leaf_extents) in operations rather than
if blocks.  Finally, we remove the et_type, the if block, and start
using extent trees as first class objects.

Check out the last patch, which is really the payoff, to see what I'm
going for.

Joel

^ permalink raw reply	[flat|nested] 42+ messages in thread

end of thread, other threads:[~2008-08-22  0:12 UTC | newest]

Thread overview: 42+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-21  2:48 [Ocfs2-devel] [PATCH 0/10] Make ocfs2_extent_tree a first-class object Joel Becker
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 01/10] ocfs2: Prefix the extent tree operations structure Joel Becker
2008-08-21  3:47   ` TaoMa
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 02/10] ocfs2: Prefix the ocfs2_extent_tree structure Joel Becker
2008-08-21  3:46   ` TaoMa
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 03/10] ocfs2: Make ocfs2_extent_tree get/put instead of alloc Joel Becker
2008-08-21  3:55   ` TaoMa
2008-08-21  6:19     ` Joel Becker
2008-08-21 22:10   ` Mark Fasheh
2008-08-21 23:05     ` Joel Becker
2008-08-21 23:11       ` Mark Fasheh
2008-08-21 23:27         ` Joel Becker
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 04/10] ocfs2: Make 'private' into 'object' on ocfs2_extent_tree Joel Becker
2008-08-21  4:00   ` TaoMa
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 05/10] ocfs2: Provide the get_root_el() method to ocfs2_extent_tree_operations Joel Becker
2008-08-21  4:07   ` TaoMa
2008-08-21  6:20     ` Joel Becker
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 06/10] ocfs2: Use struct ocfs2_extent_tree in ocfs2_num_free_extents() Joel Becker
2008-08-21  4:10   ` TaoMa
2008-08-21  6:21     ` Joel Becker
2008-08-21  8:08       ` TaoMa
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 07/10] ocfs2: Determine an extent tree's max_leaf_clusters in an et_op Joel Becker
2008-08-21  4:13   ` TaoMa
2008-08-21  6:23     ` Joel Becker
2008-08-21 22:25   ` Mark Fasheh
2008-08-21 23:29     ` Joel Becker
2008-08-22  0:12       ` Joel Becker
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 08/10] ocfs2: Create specific get_extent_tree functions Joel Becker
2008-08-21  8:03   ` TaoMa
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 09/10] ocfs2: Add an insertion check to ocfs2_extent_tree_operations Joel Becker
2008-08-21  4:29   ` TaoMa
2008-08-21  6:26     ` Joel Becker
2008-08-21 22:52   ` Mark Fasheh
2008-08-21 23:25     ` Joel Becker
2008-08-21 23:52       ` Mark Fasheh
2008-08-21  2:48 ` [Ocfs2-devel] [PATCH 10/10] ocfs2: Make ocfs2_extent_tree the first-class representation of a tree Joel Becker
2008-08-21  7:46   ` TaoMa
2008-08-21 17:46     ` Joel Becker
2008-08-21  3:45 ` [Ocfs2-devel] [PATCH 0/10] Make ocfs2_extent_tree a first-class object TaoMa
2008-08-21  4:28   ` Joel Becker
2008-08-21  4:45     ` Mark Fasheh
2008-08-21  6:26   ` Joel Becker

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.