ocfs2: Track local alloc bits internally
Do this instead of tracking absolute local alloc size. This avoids needless re-calculatiion of bits from bytes in localalloc.c. Additionally, the value is now in a more natural unit for internal file system bitmap work. Signed-off-by: Mark Fasheh <mfasheh@suse.com>
This commit is contained in:
@@ -252,7 +252,7 @@ struct ocfs2_super
|
||||
struct ocfs2_journal *journal;
|
||||
unsigned long osb_commit_interval;
|
||||
|
||||
int local_alloc_size;
|
||||
unsigned int local_alloc_bits;
|
||||
enum ocfs2_local_alloc_state local_alloc_state;
|
||||
struct buffer_head *local_alloc_bh;
|
||||
u64 la_last_gd;
|
||||
@@ -554,6 +554,14 @@ static inline unsigned int ocfs2_pages_per_cluster(struct super_block *sb)
|
||||
return pages_per_cluster;
|
||||
}
|
||||
|
||||
static inline unsigned int ocfs2_megabytes_to_clusters(struct super_block *sb,
|
||||
unsigned int megs)
|
||||
{
|
||||
BUILD_BUG_ON(OCFS2_MAX_CLUSTERSIZE > 1048576);
|
||||
|
||||
return megs << (20 - OCFS2_SB(sb)->s_clustersize_bits);
|
||||
}
|
||||
|
||||
static inline void ocfs2_init_inode_steal_slot(struct ocfs2_super *osb)
|
||||
{
|
||||
spin_lock(&osb->osb_lock);
|
||||
|
Reference in New Issue
Block a user