#
1823cb0b |
| 17-Aug-2009 |
Tao Ma <tao.ma@oracle.com> |
ocfs2: Add support of decrementing refcount for delete.
Given a physical cpos and length, decrement the refcount in the tree. If the refcount for any portion of the extent goes to zero, that por
ocfs2: Add support of decrementing refcount for delete.
Given a physical cpos and length, decrement the refcount in the tree. If the refcount for any portion of the extent goes to zero, that portion is queued for freeing.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
show more ...
|
#
e2e9f608 |
| 17-Aug-2009 |
Tao Ma <tao.ma@oracle.com> |
ocfs2: move tree path functions to alloc.h.
Now fs/ocfs2/alloc.c has more than 7000 lines. It contains our basic b-tree operation. Although we have already make our b-tree operation generic, the bas
ocfs2: move tree path functions to alloc.h.
Now fs/ocfs2/alloc.c has more than 7000 lines. It contains our basic b-tree operation. Although we have already make our b-tree operation generic, the basic structrue ocfs2_path which is used to iterate one b-tree branch is still static and limited to only used in alloc.c. As refcount tree need them and I don't want to add any more b-tree unrelated code to alloc.c, export them out.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
show more ...
|
#
fe924415 |
| 17-Aug-2009 |
Tao Ma <tao.ma@oracle.com> |
ocfs2: Add refcount b-tree as a new extent tree.
Add refcount b-tree as a new extent tree so that it can use the b-tree to store and maniuplate ocfs2_refcount_rec.
Signed-off-by: Tao Ma <tao.ma@ora
ocfs2: Add refcount b-tree as a new extent tree.
Add refcount b-tree as a new extent tree so that it can use the b-tree to store and maniuplate ocfs2_refcount_rec.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
show more ...
|
#
555936bf |
| 17-Aug-2009 |
Tao Ma <tao.ma@oracle.com> |
ocfs2: Abstract extent split process.
ocfs2_mark_extent_written actually does the following things: 1. check the parameters. 2. initialize the left_path and split_rec. 3. call __ocfs2_mark_extent_wr
ocfs2: Abstract extent split process.
ocfs2_mark_extent_written actually does the following things: 1. check the parameters. 2. initialize the left_path and split_rec. 3. call __ocfs2_mark_extent_written. it will do: 1) check the flags of unwritten 2) do the real split work. The whole process is packed tightly somehow. So this patch will abstract 2 different functions so that future b-tree operation can work with it.
1. __ocfs2_split_extent will accept path and split_rec and do the real split work. 2. ocfs2_change_extent_flag will accept a new flag and initialize path and split_rec.
So now ocfs2_mark_extent_written will do: 1. check the parameters. 2. call ocfs2_change_extent_flag. 1) initalize the left_path and split_rec. 2) check whether the new flags conflict with the old one. 3) call __ocfs2_split_extent to do the split.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
show more ...
|
#
853a3a14 |
| 17-Aug-2009 |
Tao Ma <tao.ma@oracle.com> |
ocfs2: Wrap ocfs2_extent_contig in ocfs2_extent_tree.
Add a new operation eo_ocfs2_extent_contig int the extent tree's operations vector. So that with the new refcount tree, We want this so that ref
ocfs2: Wrap ocfs2_extent_contig in ocfs2_extent_tree.
Add a new operation eo_ocfs2_extent_contig int the extent tree's operations vector. So that with the new refcount tree, We want this so that refcount trees can always return CONTIG_NONE and prevent extent merging.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
show more ...
|
Revision tags: v2.6.31-rc6, v2.6.31-rc5, v2.6.31-rc4, v2.6.31-rc3, v2.6.31-rc2, v2.6.31-rc1, v2.6.30, v2.6.30-rc8, v2.6.30-rc7, v2.6.30-rc6, v2.6.30-rc5, v2.6.30-rc4, v2.6.30-rc3, v2.6.30-rc2, v2.6.30-rc1, v2.6.29, v2.6.29-rc8, v2.6.29-rc7, v2.6.29-rc6, v2.6.29-rc5 |
|
#
5e404e9e |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: Pass ocfs2_caching_info into ocfs_init_*_extent_tree().
With this commit, extent tree operations are divorced from inodes and rely on ocfs2_caching_info. Phew!
Signed-off-by: Joel Becker <j
ocfs2: Pass ocfs2_caching_info into ocfs_init_*_extent_tree().
With this commit, extent tree operations are divorced from inodes and rely on ocfs2_caching_info. Phew!
Signed-off-by: Joel Becker <joel.becker@oracle.com>
show more ...
|
#
a1cf076b |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: __ocfs2_mark_extent_written() doesn't need struct inode.
We only allow unwritten extents on data, so the toplevel ocfs2_mark_extent_written() can use an inode all it wants. But the subfuncti
ocfs2: __ocfs2_mark_extent_written() doesn't need struct inode.
We only allow unwritten extents on data, so the toplevel ocfs2_mark_extent_written() can use an inode all it wants. But the subfunction isn't even using the inode argument.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
show more ...
|
#
f3868d0f |
| 17-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: Teach ocfs2_replace_extent_rec() to use an extent_tree.
Don't use a struct inode anymore.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
d231129f |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_split_and_insert() no longer needs struct inode.
It already has an extent_tree.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
dbdcf6a4 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_remove_extent() no longer needs struct inode.
One more generic btree function that is isolated from struct inode.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
cbee7e1a |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_add_clusters_in_btree() no longer needs struct inode.
One more function that doesn't need a struct inode to pass to its children.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
cc79d8c1 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_insert_extent() no longer needs struct inode.
One more function down, no inode in the entire insert-extent chain.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
92ba470c |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: Make extent map insertion an extent_tree_operation.
ocfs2_insert_extent() wants to insert a record into the extent map if it's an inode data extent. But since many btrees can call that funct
ocfs2: Make extent map insertion an extent_tree_operation.
ocfs2_insert_extent() wants to insert a record into the extent map if it's an inode data extent. But since many btrees can call that function, let's make it an op on ocfs2_extent_tree. Other tree types can leave it empty.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
show more ...
|
#
627961b7 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_figure_insert_type() no longer needs struct inode.
It's not using it, so remove it from the parameter list.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
1ef61b33 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: Remove inode from ocfs2_figure_extent_contig().
It already has an ocfs2_extent_tree and doesn't need the inode.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
a2970291 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: Swap inode for extent_tree in ocfs2_figure_merge_contig_type().
We don't want struct inode in generic btree operations.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
b4a17651 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_extent_contig() only requires the superblock.
Don't pass the inode in. We don't want it around for generic btree operations.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
3505bec0 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_do_insert_extent() and ocfs2_insert_path() no longer need an inode.
They aren't using it, so remove it from their parameter lists.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
c38e52bb |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: Give ocfs2_split_record() an extent_tree instead of an inode.
Another on the way to generic btree functions.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
d5628623 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_insert_at_leaf() doesn't need struct inode.
Give it an ocfs2_extent_tree and it is happy.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
4c911eef |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: Make truncating the extent map an extent_tree_operation.
ocfs2_remove_extent() wants to truncate the extent map if it's truncating an inode data extent. But since many btrees can call that f
ocfs2: Make truncating the extent map an extent_tree_operation.
ocfs2_remove_extent() wants to truncate the extent map if it's truncating an inode data extent. But since many btrees can call that function, let's make it an op on ocfs2_extent_tree. Other tree types can leave it empty.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
show more ...
|
#
043beebb |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_truncate_rec() doesn't need struct inode.
It's not using it anymore. Remove it from the parameter list.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
d401dc12 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_grow_branch() and ocfs2_append_rec_to_path() lose struct inode.
ocfs2_grow_branch() not really using it other than to pass it to the subfunctions ocfs2_shift_tree_depth(), ocfs2_find_br
ocfs2: ocfs2_grow_branch() and ocfs2_append_rec_to_path() lose struct inode.
ocfs2_grow_branch() not really using it other than to pass it to the subfunctions ocfs2_shift_tree_depth(), ocfs2_find_branch_target(), and ocfs2_add_branch(). The first two weren't it either, so they drop the argument. ocfs2_add_branch() only passed it to ocfs2_adjust_rightmost_branch(), which drops the inode argument and uses the ocfs2_extent_tree as well.
ocfs2_append_rec_to_path() can be take an ocfs2_extent_tree instead of the inode. The function ocfs2_adjust_rightmost_records() goes along for the ride.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
show more ...
|
#
c495dd24 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_try_to_merge_extent() doesn't need struct inode.
It's not using it, so remove it from the parameter list.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|
#
4fe82c31 |
| 13-Feb-2009 |
Joel Becker <joel.becker@oracle.com> |
ocfs2: ocfs2_merge_rec_left/right() no longer need struct inode.
Drop it from the parameters - they already have ocfs2_extent_list.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
|