Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6:
jfs: agstart field must be 64 bits
JFS: Don't save agno in the inode
jfs: Update agstart when resizing volume
jfs: old_agsize should be 64 bits in jfs_extendfs

+11 -12
+3 -3
fs/jfs/file.c
··· 66 66 struct jfs_inode_info *ji = JFS_IP(inode); 67 67 spin_lock_irq(&ji->ag_lock); 68 68 if (ji->active_ag == -1) { 69 - ji->active_ag = ji->agno; 70 - atomic_inc( 71 - &JFS_SBI(inode->i_sb)->bmap->db_active[ji->agno]); 69 + struct jfs_sb_info *jfs_sb = JFS_SBI(inode->i_sb); 70 + ji->active_ag = BLKTOAG(addressPXD(&ji->ixpxd), jfs_sb); 71 + atomic_inc( &jfs_sb->bmap->db_active[ji->active_ag]); 72 72 } 73 73 spin_unlock_irq(&ji->ag_lock); 74 74 }
+5 -7
fs/jfs/jfs_imap.c
··· 397 397 release_metapage(mp); 398 398 399 399 /* set the ag for the inode */ 400 - JFS_IP(ip)->agno = BLKTOAG(agstart, sbi); 400 + JFS_IP(ip)->agstart = agstart; 401 401 JFS_IP(ip)->active_ag = -1; 402 402 403 403 return (rc); ··· 901 901 902 902 /* get the allocation group for this ino. 903 903 */ 904 - agno = JFS_IP(ip)->agno; 904 + agno = BLKTOAG(JFS_IP(ip)->agstart, JFS_SBI(ip->i_sb)); 905 905 906 906 /* Lock the AG specific inode map information 907 907 */ ··· 1315 1315 static inline void 1316 1316 diInitInode(struct inode *ip, int iagno, int ino, int extno, struct iag * iagp) 1317 1317 { 1318 - struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb); 1319 1318 struct jfs_inode_info *jfs_ip = JFS_IP(ip); 1320 1319 1321 1320 ip->i_ino = (iagno << L2INOSPERIAG) + ino; 1322 1321 jfs_ip->ixpxd = iagp->inoext[extno]; 1323 - jfs_ip->agno = BLKTOAG(le64_to_cpu(iagp->agstart), sbi); 1322 + jfs_ip->agstart = le64_to_cpu(iagp->agstart); 1324 1323 jfs_ip->active_ag = -1; 1325 1324 } 1326 1325 ··· 1378 1379 */ 1379 1380 1380 1381 /* get the ag number of this iag */ 1381 - agno = JFS_IP(pip)->agno; 1382 + agno = BLKTOAG(JFS_IP(pip)->agstart, JFS_SBI(pip->i_sb)); 1382 1383 1383 1384 if (atomic_read(&JFS_SBI(pip->i_sb)->bmap->db_active[agno])) { 1384 1385 /* ··· 2920 2921 continue; 2921 2922 } 2922 2923 2923 - /* agstart that computes to the same ag is treated as same; */ 2924 2924 agstart = le64_to_cpu(iagp->agstart); 2925 - /* iagp->agstart = agstart & ~(mp->db_agsize - 1); */ 2926 2925 n = agstart >> mp->db_agl2size; 2926 + iagp->agstart = cpu_to_le64((s64)n << mp->db_agl2size); 2927 2927 2928 2928 /* compute backed inodes */ 2929 2929 numinos = (EXTSPERIAG - le32_to_cpu(iagp->nfreeexts))
+2 -1
fs/jfs/jfs_incore.h
··· 50 50 short btindex; /* btpage entry index*/ 51 51 struct inode *ipimap; /* inode map */ 52 52 unsigned long cflag; /* commit flags */ 53 + u64 agstart; /* agstart of the containing IAG */ 53 54 u16 bxflag; /* xflag of pseudo buffer? */ 54 - unchar agno; /* ag number */ 55 + unchar pad; 55 56 signed char active_ag; /* ag currently allocating from */ 56 57 lid_t blid; /* lid of pseudo buffer? */ 57 58 lid_t atlhead; /* anonymous tlock list head */
+1 -1
fs/jfs/resize.c
··· 80 80 int log_formatted = 0; 81 81 struct inode *iplist[1]; 82 82 struct jfs_superblock *j_sb, *j_sb2; 83 - uint old_agsize; 83 + s64 old_agsize; 84 84 int agsizechanged = 0; 85 85 struct buffer_head *bh, *bh2; 86 86