ocfs2: limit cluster bitmap information saved at mount

We were storing cluster count on the ocfs2_super structure, but never
actually using it so remove that. Also, we don't want to populate the
uptodate cache with the unlocked block read - it is technically safe as is,
but we should change it for correctness.

Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
This commit is contained in:
Mark Fasheh 2006-05-02 17:54:45 -07:00
parent 9acd72f424
commit 101ebf256d
2 changed files with 6 additions and 3 deletions

View File

@ -197,7 +197,6 @@ struct ocfs2_super
struct ocfs2_node_map recovery_map; struct ocfs2_node_map recovery_map;
struct ocfs2_node_map umount_map; struct ocfs2_node_map umount_map;
u32 num_clusters;
u64 root_blkno; u64 root_blkno;
u64 system_dir_blkno; u64 system_dir_blkno;
u64 bitmap_blkno; u64 bitmap_blkno;

View File

@ -1442,8 +1442,13 @@ static int ocfs2_initialize_super(struct super_block *sb,
osb->bitmap_blkno = OCFS2_I(inode)->ip_blkno; osb->bitmap_blkno = OCFS2_I(inode)->ip_blkno;
/* We don't have a cluster lock on the bitmap here because
* we're only interested in static information and the extra
* complexity at mount time isn't worht it. Don't pass the
* inode in to the read function though as we don't want it to
* be put in the cache. */
status = ocfs2_read_block(osb, osb->bitmap_blkno, &bitmap_bh, 0, status = ocfs2_read_block(osb, osb->bitmap_blkno, &bitmap_bh, 0,
inode); NULL);
iput(inode); iput(inode);
if (status < 0) { if (status < 0) {
mlog_errno(status); mlog_errno(status);
@ -1452,7 +1457,6 @@ static int ocfs2_initialize_super(struct super_block *sb,
di = (struct ocfs2_dinode *) bitmap_bh->b_data; di = (struct ocfs2_dinode *) bitmap_bh->b_data;
osb->bitmap_cpg = le16_to_cpu(di->id2.i_chain.cl_cpg); osb->bitmap_cpg = le16_to_cpu(di->id2.i_chain.cl_cpg);
osb->num_clusters = le32_to_cpu(di->id1.bitmap1.i_total);
brelse(bitmap_bh); brelse(bitmap_bh);
mlog(0, "cluster bitmap inode: %llu, clusters per group: %u\n", mlog(0, "cluster bitmap inode: %llu, clusters per group: %u\n",
(unsigned long long)osb->bitmap_blkno, osb->bitmap_cpg); (unsigned long long)osb->bitmap_blkno, osb->bitmap_cpg);