diff options
author | Joel Becker <joel.becker@oracle.com> | 2010-04-13 14:26:32 +0800 |
---|---|---|
committer | Tao Ma <tao.ma@oracle.com> | 2010-04-13 14:26:32 +0800 |
commit | 798db35f4649eac2778381c390ed7d12de9ec767 (patch) | |
tree | 988c30bd86d4913c2f9187bb8504135ec0b80f62 /fs/ocfs2/ocfs2_fs.h | |
parent | 4cbe4249d6586d5d88ef271e07302407a14c8443 (diff) | |
download | op-kernel-dev-798db35f4649eac2778381c390ed7d12de9ec767.zip op-kernel-dev-798db35f4649eac2778381c390ed7d12de9ec767.tar.gz |
ocfs2: Allocate discontiguous block groups.
If we cannot get a contiguous region for a block group, allocate a
discontiguous one when the filesystem supports it.
Signed-off-by: Joel Becker <joel.becker@oracle.com>
Signed-off-by: Tao Ma <tao.ma@oracle.com>
Diffstat (limited to 'fs/ocfs2/ocfs2_fs.h')
-rw-r--r-- | fs/ocfs2/ocfs2_fs.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h index 448aa8d..888ba4e 100644 --- a/fs/ocfs2/ocfs2_fs.h +++ b/fs/ocfs2/ocfs2_fs.h @@ -1278,6 +1278,16 @@ static inline u16 ocfs2_extent_recs_per_eb(struct super_block *sb) return size / sizeof(struct ocfs2_extent_rec); } +static inline u16 ocfs2_extent_recs_per_gd(struct super_block *sb) +{ + int size; + + size = sb->s_blocksize - + offsetof(struct ocfs2_group_desc, bg_list.l_recs); + + return size / sizeof(struct ocfs2_extent_rec); +} + static inline int ocfs2_dx_entries_per_leaf(struct super_block *sb) { int size; @@ -1430,6 +1440,16 @@ static inline int ocfs2_extent_recs_per_eb(int blocksize) return size / sizeof(struct ocfs2_extent_rec); } +static inline int ocfs2_extent_recs_per_gd(int blocksize) +{ + int size; + + size = blocksize - + offsetof(struct ocfs2_group_desc, bg_list.l_recs); + + return size / sizeof(struct ocfs2_extent_rec); +} + static inline int ocfs2_local_alloc_size(int blocksize) { int size; |