diff options
author | Tao Ma <tao.ma@oracle.com> | 2007-12-18 02:47:03 -0500 |
---|---|---|
committer | Mark Fasheh <mark.fasheh@oracle.com> | 2008-01-25 17:53:35 -0500 |
commit | d659072f736837e56b6433d58e5315ad1d4d5ccf (patch) | |
tree | 56882b7b36c6b60a8208f6ed5bee9904adc7b649 /fs/ocfs2/suballoc.c | |
parent | 7f68fc28219be3b44ef4132f95c6506ff3e806b5 (diff) |
[PATCH 1/2] ocfs2: Add group extend for online resize
This patch adds the ability for a userspace program to request an extend of
last cluster group on an Ocfs2 file system. The request is made via ioctl,
OCFS2_IOC_GROUP_EXTEND. This is derived from EXT3_IOC_GROUP_EXTEND, but is
obviously Ocfs2 specific.
tunefs.ocfs2 would call this for an online-resize operation if the last
cluster group isn't full.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Diffstat (limited to 'fs/ocfs2/suballoc.c')
-rw-r--r-- | fs/ocfs2/suballoc.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c index 6df4dbf67d18..4391744e80f8 100644 --- a/fs/ocfs2/suballoc.c +++ b/fs/ocfs2/suballoc.c | |||
@@ -101,8 +101,6 @@ static inline int ocfs2_block_group_reasonably_empty(struct ocfs2_group_desc *bg | |||
101 | static inline u32 ocfs2_desc_bitmap_to_cluster_off(struct inode *inode, | 101 | static inline u32 ocfs2_desc_bitmap_to_cluster_off(struct inode *inode, |
102 | u64 bg_blkno, | 102 | u64 bg_blkno, |
103 | u16 bg_bit_off); | 103 | u16 bg_bit_off); |
104 | static inline u64 ocfs2_which_cluster_group(struct inode *inode, | ||
105 | u32 cluster); | ||
106 | static inline void ocfs2_block_to_cluster_group(struct inode *inode, | 104 | static inline void ocfs2_block_to_cluster_group(struct inode *inode, |
107 | u64 data_blkno, | 105 | u64 data_blkno, |
108 | u64 *bg_blkno, | 106 | u64 *bg_blkno, |
@@ -131,9 +129,9 @@ static u32 ocfs2_bits_per_group(struct ocfs2_chain_list *cl) | |||
131 | } | 129 | } |
132 | 130 | ||
133 | /* somewhat more expensive than our other checks, so use sparingly. */ | 131 | /* somewhat more expensive than our other checks, so use sparingly. */ |
134 | static int ocfs2_check_group_descriptor(struct super_block *sb, | 132 | int ocfs2_check_group_descriptor(struct super_block *sb, |
135 | struct ocfs2_dinode *di, | 133 | struct ocfs2_dinode *di, |
136 | struct ocfs2_group_desc *gd) | 134 | struct ocfs2_group_desc *gd) |
137 | { | 135 | { |
138 | unsigned int max_bits; | 136 | unsigned int max_bits; |
139 | 137 | ||
@@ -1443,8 +1441,7 @@ static inline u32 ocfs2_desc_bitmap_to_cluster_off(struct inode *inode, | |||
1443 | 1441 | ||
1444 | /* given a cluster offset, calculate which block group it belongs to | 1442 | /* given a cluster offset, calculate which block group it belongs to |
1445 | * and return that block offset. */ | 1443 | * and return that block offset. */ |
1446 | static inline u64 ocfs2_which_cluster_group(struct inode *inode, | 1444 | u64 ocfs2_which_cluster_group(struct inode *inode, u32 cluster) |
1447 | u32 cluster) | ||
1448 | { | 1445 | { |
1449 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); | 1446 | struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); |
1450 | u32 group_no; | 1447 | u32 group_no; |