[Ocfs2-commits] jlbec commits r1586 - trunk/src
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Fri Oct 22 16:28:52 CDT 2004
Author: jlbec
Date: 2004-10-22 16:28:50 -0500 (Fri, 22 Oct 2004)
New Revision: 1586
Modified:
trunk/src/alloc.c
trunk/src/aops.c
trunk/src/dir.c
trunk/src/extent_map.c
trunk/src/file.c
trunk/src/inode.c
trunk/src/journal.c
trunk/src/localalloc.c
trunk/src/namei.c
trunk/src/ocfs.h
trunk/src/ocfs2.h
trunk/src/proc.c
trunk/src/suballoc.c
trunk/src/super.c
Log:
o Change ip_alloc_size to ip_clusters.
o Add ocfs2_clusters_to_bytes() to remove many ugly shifts/casts.
Modified: trunk/src/alloc.c
===================================================================
--- trunk/src/alloc.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/alloc.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -1344,8 +1344,7 @@
el = &(fe->id2.i_list);
spin_lock(&OCFS_I(inode)->ip_lock);
- OCFS_I(inode)->ip_alloc_size =
- (u64)(fe->i_clusters - clusters_to_del) << osb->s_clustersize_bits;
+ OCFS_I(inode)->ip_clusters = fe->i_clusters - clusters_to_del;
spin_unlock(&OCFS_I(inode)->ip_lock);
fe->i_clusters -= clusters_to_del;
fe->i_mtime = OCFS_CURRENT_TIME;
Modified: trunk/src/aops.c
===================================================================
--- trunk/src/aops.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/aops.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -153,7 +153,9 @@
/* this can happen if another node truncs after our extend! */
spin_lock(&OCFS_I(inode)->ip_lock);
- if (vbo >= OCFS_I(inode)->ip_alloc_size) {
+ if (iblock >=
+ ocfs2_clusters_to_blocks(inode->i_sb,
+ OCFS_I(inode)->ip_clusters)) {
spin_unlock(&OCFS_I(inode)->ip_lock);
err = -EIO;
goto bail;
Modified: trunk/src/dir.c
===================================================================
--- trunk/src/dir.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/dir.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -352,7 +352,7 @@
u64 p_blkno;
spin_lock(&OCFS_I(dir)->ip_lock);
- extend = (dir->i_size == OCFS_I(dir)->ip_alloc_size);
+ extend = (dir->i_size == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters));
spin_unlock(&OCFS_I(dir)->ip_lock);
if (extend) {
@@ -414,7 +414,7 @@
/* dir->i_size is always block aligned. */
spin_lock(&OCFS_I(dir)->ip_lock);
- if (dir->i_size == OCFS_I(dir)->ip_alloc_size) {
+ if (dir->i_size == ocfs2_clusters_to_bytes(sb, OCFS_I(dir)->ip_clusters)) {
spin_unlock(&OCFS_I(dir)->ip_lock);
num_free_extents = ocfs_num_free_extents(osb, dir, fe);
if (num_free_extents < 0) {
Modified: trunk/src/extent_map.c
===================================================================
--- trunk/src/extent_map.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/extent_map.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -170,7 +170,7 @@
ret = -EBADR;
if ((rec->e_cpos + rec->e_clusters) >
- (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits))
+ OCFS_I(inode)->ip_clusters)
goto out_free;
if ((rec->e_cpos + rec->e_clusters) <= cpos) {
@@ -555,15 +555,14 @@
OCFS_ASSERT(new_clusters);
OCFS_ASSERT(rec->e_clusters >= new_clusters);
- if (em->em_clusters <
- (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits)) {
+ if (em->em_clusters < OCFS_I(inode)->ip_clusters) {
/*
* Size changed underneath us on disk. Drop any
* straddling records and update our idea of
* i_clusters
*/
ocfs2_extent_map_drop(inode, em->em_clusters - 1);
- em->em_clusters = OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits;
+ em->em_clusters = OCFS_I(inode)->ip_clusters;
}
OCFS_ASSERT((rec->e_cpos + rec->e_clusters) ==
@@ -627,8 +626,7 @@
*rec = NULL;
- if (cpos >=
- (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits))
+ if (cpos >= OCFS_I(inode)->ip_clusters)
return -EINVAL;
if (cpos >= em->em_clusters) {
@@ -638,7 +636,7 @@
* i_clusters
*/
ocfs2_extent_map_drop(inode, em->em_clusters - 1);
- em->em_clusters = OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits;
+ em->em_clusters = OCFS_I(inode)->ip_clusters ;
}
ent = ocfs2_extent_map_lookup(&OCFS_I(inode)->ip_map, cpos, 1,
@@ -665,8 +663,7 @@
*p_cpos = ccount = 0;
- if ((v_cpos + count) >
- (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits))
+ if ((v_cpos + count) > OCFS_I(inode)->ip_clusters)
return -EINVAL;
if ((v_cpos + count) > em->em_clusters) {
@@ -676,7 +673,7 @@
* i_clusters
*/
ocfs2_extent_map_drop(inode, em->em_clusters - 1);
- em->em_clusters = OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits;
+ em->em_clusters = OCFS_I(inode)->ip_clusters;
}
@@ -723,8 +720,7 @@
cpos = ocfs2_blocks_to_clusters(inode->i_sb, v_blkno);
clusters = ocfs2_blocks_to_clusters(inode->i_sb,
(u64)count + bpc - 1);
- if ((cpos + clusters) >
- (OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits))
+ if ((cpos + clusters) > OCFS_I(inode)->ip_clusters)
return -EINVAL;
if ((cpos + clusters) > em->em_clusters) {
@@ -734,7 +730,7 @@
* i_clusters
*/
ocfs2_extent_map_drop(inode, em->em_clusters - 1);
- em->em_clusters = OCFS_I(inode)->ip_alloc_size >> OCFS_SB(inode->i_sb)->s_clustersize_bits;
+ em->em_clusters = OCFS_I(inode)->ip_clusters;
}
ret = ocfs2_extent_map_lookup_read(inode, cpos, clusters, &ent);
@@ -887,7 +883,7 @@
*
* If you want to also clip the last extent by some number of clusters,
* you need to call ocfs2_extent_map_trunc().
- * This code does not check or modify ip_alloc_size.
+ * This code does not check or modify ip_clusters.
*/
int ocfs2_extent_map_drop(struct inode *inode, u32 new_clusters)
{
@@ -916,7 +912,7 @@
/*
* Remove all entries past new_clusters and also clip any extent
* straddling new_clusters, if there is one. This does not check
- * or modify ip_alloc_size.
+ * or modify ip_clusters
*/
int ocfs2_extent_map_trunc(struct inode *inode, u32 new_clusters)
{
Modified: trunk/src/file.c
===================================================================
--- trunk/src/file.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/file.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -520,7 +520,10 @@
LOG_TRACE_ARGS
("Writing at EOF, will need more allocation: have=%llu, "
- "need=%llu\n", OCFS_I(inode)->ip_alloc_size, newsize);
+ "need=%llu\n",
+ ocfs2_clusters_to_bytes(inode->i_sb,
+ OCFS_I(inode)->ip_clusters),
+ newsize);
status = ocfs_extend_file(osb, inode, newsize);
if (status < 0) {
if (status != -EINTR && status != -ENOSPC) {
@@ -1008,8 +1011,7 @@
fe->i_clusters += num_bits;
spin_lock(&OCFS_I(inode)->ip_lock);
- OCFS_I(inode)->ip_alloc_size =
- (u64)fe->i_clusters << osb->s_clustersize_bits;
+ OCFS_I(inode)->ip_clusters = fe->i_clusters;
spin_unlock(&OCFS_I(inode)->ip_lock);
status = ocfs_journal_dirty(handle, fe_bh);
@@ -1197,7 +1199,7 @@
if (status == -EAGAIN
&& (new_i_size >
- (fe->i_clusters << osb->s_clustersize_bits))) {
+ ocfs2_clusters_to_bytes(osb->sb, fe->i_clusters))) {
if (why == RESTART_META) {
LOG_TRACE_ARGS("restarting function.\n");
@@ -1207,7 +1209,9 @@
/* update i_size in case we crash after the
* extend_trans */
- fe->i_size = (u64) (fe->i_clusters << osb->s_clustersize_bits);
+ fe->i_size =
+ ocfs2_clusters_to_bytes(osb->sb,
+ fe->i_clusters);
fe->i_mtime = OCFS_CURRENT_TIME;
status = ocfs_journal_dirty(handle, bh);
@@ -1240,16 +1244,16 @@
no_alloc:
/* this may not be the end of our allocation so only update
* i_size to what's appropriate. */
- if (new_i_size > (fe->i_clusters << osb->s_clustersize_bits))
- fe->i_size = fe->i_clusters << osb->s_clustersize_bits;
+ if (new_i_size > ocfs2_clusters_to_bytes(osb->sb, fe->i_clusters))
+ fe->i_size = ocfs2_clusters_to_bytes(osb->sb, fe->i_clusters);
else
fe->i_size = new_i_size;
#warning "is there a reason why we don't update i_blocks here?"
LOG_TRACE_ARGS("fe: i_clusters = %u, i_size=%llu\n",
fe->i_clusters, fe->i_size);
- LOG_TRACE_ARGS("inode: ip_alloc_size=%llu, i_size=%llu\n",
- OCFS_I(inode)->ip_alloc_size, inode->i_size);
+ LOG_TRACE_ARGS("inode: ip_clusters=%u, i_size=%llu\n",
+ OCFS_I(inode)->ip_clusters, inode->i_size);
fe->i_mtime = OCFS_CURRENT_TIME;
Modified: trunk/src/inode.c
===================================================================
--- trunk/src/inode.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/inode.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -323,7 +323,7 @@
INIT_LIST_HEAD(&i->ip_j_inode);
/* These should be set in read_inode2. */
- i->ip_alloc_size = 0ULL;
+ i->ip_clusters = 0;
i->ip_blkno = 0ULL;
i->ip_mmu_private = 0ULL;
@@ -383,8 +383,7 @@
OCFS_I(inode)->ip_blkno = fe->i_blkno;
- OCFS_I(inode)->ip_alloc_size =
- (u64)fe->i_clusters << osb->s_clustersize_bits;
+ OCFS_I(inode)->ip_clusters = fe->i_clusters;
OCFS_I(inode)->ip_inode = inode;
OCFS_I(inode)->u.fe_private = fe->id1.i_pad1;
@@ -971,7 +970,6 @@
{
int status;
ocfs2_dinode *fe = (ocfs2_dinode *) bh->b_data;
- ocfs_super *osb = OCFS_SB(inode->i_sb);
#warning "need to check the casts and the endian-ness in this function"
LOG_ENTRY_ARGS("(inode %llu)\n", OCFS_I(inode)->ip_blkno);
@@ -991,8 +989,7 @@
cpu_to_le32(OCFS_I(inode)->u.ip_bitinfo.total_bits);
}
- fe->i_clusters =
- (u32)OCFS_I(inode)->ip_alloc_size >> osb->s_clustersize_bits;
+ fe->i_clusters = OCFS_I(inode)->ip_clusters;
spin_unlock(&OCFS_I(inode)->ip_lock);
fe->i_size = (u64)inode->i_size;
@@ -1064,20 +1061,18 @@
goto bail;
}
- if ((OCFS_I(inode)->ip_alloc_size !=
- (__s64)((u64)fe->i_clusters << osb->s_clustersize_bits)) ||
+ if ((OCFS_I(inode)->ip_clusters != fe->i_clusters) ||
(inode->i_size != (__s64) fe->i_size) ||
inode->i_uid != fe->i_uid ||
inode->i_gid != fe->i_gid ||
inode->i_mode != fe->i_mode ||
inode->i_nlink != fe->i_links_count){
- if (OCFS_I(inode)->ip_alloc_size >
- (__s64)((u64)fe->i_clusters << osb->s_clustersize_bits)) {
+ if (OCFS_I(inode)->ip_clusters > fe->i_clusters) {
LOG_TRACE_ARGS("destroying extent maps for %llu, "
- "alloc_size = %llu, i_clusters = %u\n",
+ "ip_clusters = %u, i_clusters = %u\n",
OCFS_I(inode)->ip_blkno,
- OCFS_I(inode)->ip_alloc_size,
+ OCFS_I(inode)->ip_clusters,
fe->i_clusters);
drop_map = 1; /* Because we have the lock here */
}
@@ -1093,8 +1088,7 @@
}
LOG_TRACE_STR("Allocsize, filesize or seq no did not match");
- OCFS_I(inode)->ip_alloc_size =
- (u64)fe->i_clusters << osb->s_clustersize_bits;
+ OCFS_I(inode)->ip_clusters = fe->i_clusters;
inode->i_size = fe->i_size;
if (S_ISREG(inode->i_mode)) {
OCFS_I(inode)->ip_mmu_private = inode->i_size;
Modified: trunk/src/journal.c
===================================================================
--- trunk/src/journal.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/journal.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -866,14 +866,13 @@
LOG_TRACE_ARGS("fe->i_size = %llu\n", fe->i_size);
LOG_TRACE_ARGS("fe->i_clusters = %u\n", fe->i_clusters);
LOG_TRACE_ARGS("fe->i_blkno = %llu\n", fe->i_blkno);
- LOG_TRACE_ARGS("inode->ip_alloc_size = %llu\n",
- OCFS_I(inode)->ip_alloc_size);
+ LOG_TRACE_ARGS("inode->ip_clusters = %u\n",
+ OCFS_I(inode)->ip_clusters);
- if (OCFS_I(inode)->ip_alloc_size
- != ((u64)fe->i_clusters << osb->s_clustersize_bits))
+ if (OCFS_I(inode)->ip_clusters != fe->i_clusters)
LOG_ERROR_ARGS("inode and fe alloc sizes differ! "
- "(%llu != %llu", OCFS_I(inode)->ip_alloc_size,
- (u64)fe->i_clusters << osb->s_clustersize_bits);
+ "(%u != %u", OCFS_I(inode)->ip_clusters,
+ fe->i_clusters);
if (inode->i_size != fe->i_size)
LOG_ERROR_ARGS("inode and fe i_size's differ! (%llu != %llu",
inode->i_size, fe->i_size);
@@ -1199,7 +1198,6 @@
struct buffer_head *bh = NULL;
ocfs_journal * journal = NULL;
int recovery_lock = 0, got_lock = 0, clean_orphans = 0;
- __u64 alloc_size;
LOG_ENTRY_ARGS("(node_num=%d, osb->node_num = %d)\n", node_num,
osb->node_num);
@@ -1273,11 +1271,8 @@
clean_orphans = 1;
fe = (ocfs2_dinode *) bh->b_data;
- /* gonna need this later */
- alloc_size = (u64)fe->i_clusters << osb->s_clustersize_bits;
+ OCFS_I(inode)->ip_clusters = fe->i_clusters;
- OCFS_I(inode)->ip_alloc_size = alloc_size;
-
status = ocfs_force_read_journal(inode);
if (status < 0) {
LOG_ERROR_STATUS(status);
Modified: trunk/src/localalloc.c
===================================================================
--- trunk/src/localalloc.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/localalloc.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -123,7 +123,7 @@
int ocfs_alloc_should_use_local(ocfs_super *osb, u64 bits)
{
if (osb->have_local_alloc
- && ((bits<<osb->s_clustersize_bits) <= OCFS_LOCAL_ALLOC_MAX_ALLOC)
+ && (ocfs2_clusters_to_bytes(osb->sb, bits) <= OCFS_LOCAL_ALLOC_MAX_ALLOC)
&& (bits <= ocfs_local_alloc_window_bits(osb)))
return(1);
return(0);
Modified: trunk/src/namei.c
===================================================================
--- trunk/src/namei.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/namei.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -1419,7 +1419,7 @@
inode->i_blocks, inode->i_size, blocks);
/* Sanity check -- make sure we're going to fit. */
- if (bytes_left > OCFS_I(inode)->ip_alloc_size) {
+ if (bytes_left > ocfs2_clusters_to_bytes(sb, OCFS_I(inode)->ip_clusters)) {
status = -EIO;
LOG_ERROR_STATUS(status);
goto bail;
Modified: trunk/src/ocfs.h
===================================================================
--- trunk/src/ocfs.h 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/ocfs.h 2004-10-22 21:28:50 UTC (rev 1586)
@@ -370,8 +370,8 @@
/* These fields are protected by ip_lock */
spinlock_t ip_lock;
__u32 ip_open_cnt;
- __s64 ip_alloc_size;
- __s64 ip_mmu_private;
+ u32 ip_clusters;
+ u64 ip_mmu_private;
__u32 ip_open_flags;
struct ocfs2_extent_map ip_map;
Modified: trunk/src/ocfs2.h
===================================================================
--- trunk/src/ocfs2.h 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/ocfs2.h 2004-10-22 21:28:50 UTC (rev 1586)
@@ -57,6 +57,12 @@
return clusters;
}
+static inline u64 ocfs2_clusters_to_bytes(struct super_block *sb,
+ u32 clusters)
+{
+ return (u64)clusters << OCFS_SB(sb)->s_clustersize_bits;
+}
+
static inline u64 ocfs2_align_bytes_to_clusters(struct super_block *sb,
u64 bytes)
{
Modified: trunk/src/proc.c
===================================================================
--- trunk/src/proc.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/proc.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -468,7 +468,7 @@
len = sprintf (page, PROC_STATS, osb->file_open_cnt, pubmap,
osb->num_nodes, osb->s_clustersize,
- (u64)osb->cluster_bitmap.validbits << osb->s_clustersize_bits,
+ ocfs2_clusters_to_bytes(osb->sb, osb->cluster_bitmap.validbits),
osb->cluster_bitmap.failed,
osb->cluster_bitmap.ok_retries,
atomic_read(&osb->journal->num_trans),
Modified: trunk/src/suballoc.c
===================================================================
--- trunk/src/suballoc.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/suballoc.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -331,9 +331,9 @@
}
spin_lock(&OCFS_I(alloc_inode)->ip_lock);
- OCFS_I(alloc_inode)->ip_alloc_size =
- (u64)fe->i_clusters << osb->s_clustersize_bits;
- fe->i_size = OCFS_I(alloc_inode)->ip_alloc_size;
+ OCFS_I(alloc_inode)->ip_clusters = fe->i_clusters;
+ fe->i_size = ocfs2_clusters_to_bytes(alloc_inode->i_sb,
+ fe->i_clusters);
OCFS_I(alloc_inode)->u.ip_bitinfo.used_bits = fe->id1.bitmap1.i_used;
OCFS_I(alloc_inode)->u.ip_bitinfo.total_bits = fe->id1.bitmap1.i_total;
spin_unlock(&OCFS_I(alloc_inode)->ip_lock);
Modified: trunk/src/super.c
===================================================================
--- trunk/src/super.c 2004-10-22 03:57:49 UTC (rev 1585)
+++ trunk/src/super.c 2004-10-22 21:28:50 UTC (rev 1586)
@@ -1626,19 +1626,22 @@
/* for now, just one extent... but in the future... */
osb->bitmap_blkno = p_blkno;
- osb->bitmap_blocks = OCFS_I(inode)->ip_alloc_size >> osb->sb->s_blocksize_bits;
+ osb->bitmap_blocks =
+ ocfs2_clusters_to_blocks(inode->i_sb,
+ OCFS_I(inode)->ip_clusters);
osb->num_clusters = OCFS_I(inode)->u.ip_bitinfo.total_bits;
printk("bitmap_blkno=%llu, bitmap_blocks=%u, num_clusters=%u\n",
osb->bitmap_blkno, osb->bitmap_blocks, osb->num_clusters);
ocfs_initialize_bitmap(osb->sb, &osb->cluster_bitmap,
osb->num_clusters,
- OCFS_I(inode)->ip_alloc_size << 3);
+ (u32)(ocfs2_clusters_to_bytes(inode->i_sb,
+ OCFS_I(inode)->ip_clusters) << 3));
/* read the whole cluster bitmap off disk, even though we only
* need the beginning of it. */
status = ocfs_read_blocks(osb,
osb->bitmap_blkno,
- OCFS_I(inode)->ip_alloc_size >> osb->sb->s_blocksize_bits,
+ osb->bitmap_blocks,
osb->cluster_bitmap.chunk, 0, inode);
if (status < 0) {
LOG_ERROR_STATUS (status);
More information about the Ocfs2-commits
mailing list