Lines Matching defs:ipimap
87 * ipimap - pointer to inode map inode for the aggregate or fileset.
94 int diMount(struct inode *ipimap)
111 mp = read_metapage(ipimap,
112 IMAPBLKNO << JFS_SBI(ipimap->i_sb)->l2nbperpage,
155 imap->im_ipimap = ipimap;
156 JFS_IP(ipimap)->i_imap = imap;
169 * ipimap - pointer to inode map inode for the aggregate or fileset.
176 int diUnmount(struct inode *ipimap, int mounterror)
178 struct inomap *imap = JFS_IP(ipimap)->i_imap;
184 if (!(mounterror || isReadOnly(ipimap)))
185 diSync(ipimap);
190 truncate_inode_pages(ipimap->i_mapping, 0);
196 JFS_IP(ipimap)->i_imap = NULL;
205 int diSync(struct inode *ipimap)
208 struct inomap *imp = JFS_IP(ipimap)->i_imap;
216 mp = get_metapage(ipimap,
217 IMAPBLKNO << JFS_SBI(ipimap->i_sb)->l2nbperpage,
249 filemap_write_and_wait(ipimap->i_mapping);
251 diWriteSpecial(ipimap, 0);
294 struct inode *ipimap;
307 ipimap = sbi->ipimap;
308 JFS_IP(ip)->ipimap = ipimap;
314 IREAD_LOCK(ipimap, RDWRLOCK_IMAP);
315 imap = JFS_IP(ipimap)->i_imap;
317 IREAD_UNLOCK(ipimap);
364 mp = read_metapage(ipimap, pageno << sbi->l2nbperpage, PSIZE, 1);
431 JFS_IP(ip)->ipimap = sbi->ipaimap2;
434 JFS_IP(ip)->ipimap = sbi->ipaimap;
472 if ((inum == FILESYSTEM_I) && (JFS_IP(ip)->ipimap == sbi->ipaimap)) {
592 struct inode *ipimap;
600 ipimap = jfs_ip->ipimap;
606 JFS_IP(ipimap)->i_imap->im_nbperiext)) {
636 mp = read_metapage(ipimap, pageno << sbi->l2nbperpage, PSIZE, 1);
648 * N.B. tlock is acquired on ipimap not ip;
651 txLock(tid, ipimap, mp, tlckINODE | tlckENTRY)) == NULL)
851 struct inode *ipimap = JFS_SBI(ip->i_sb)->ipimap;
852 struct inomap *imap = JFS_IP(ipimap)->i_imap;
891 IREAD_LOCK(ipimap, RDWRLOCK_IMAP);
896 IREAD_UNLOCK(ipimap);
916 IREAD_UNLOCK(ipimap);
928 IREAD_UNLOCK(ipimap);
957 IREAD_UNLOCK(ipimap);
979 IREAD_UNLOCK(ipimap);
1112 IREAD_UNLOCK(ipimap);
1228 tid = txBegin(ipimap->i_sb, COMMIT_FORCE);
1229 mutex_lock(&JFS_IP(ipimap)->commit_mutex);
1238 tlck = txLock(tid, ipimap, mp, tlckINODE | tlckFREE);
1246 iplist[0] = ipimap;
1262 mutex_unlock(&JFS_IP(ipimap)->commit_mutex);
1270 IREAD_UNLOCK(ipimap);
1325 struct inode *ipimap;
1334 ipimap = JFS_SBI(pip->i_sb)->ipimap;
1335 imap = JFS_IP(ipimap)->i_imap;
1336 JFS_IP(ip)->ipimap = ipimap;
1385 IREAD_LOCK(ipimap, RDWRLOCK_IMAP);
1390 IREAD_UNLOCK(ipimap);
1428 IREAD_UNLOCK(ipimap);
1497 IREAD_UNLOCK(ipimap);
1511 IREAD_UNLOCK(ipimap);
1565 IREAD_UNLOCK(ipimap);
1578 IREAD_UNLOCK(ipimap);
2157 struct inode *ipimap;
2174 ipimap = imap->im_ipimap;
2175 sbi = JFS_SBI(ipimap->i_sb);
2258 if ((rc = dbAlloc(ipimap, hint, (s64) imap->im_nbperiext, &blkno)))
2272 dmp = get_metapage(ipimap, blkno + i, PSIZE, 1);
2441 struct inode *ipimap;
2452 ipimap = imap->im_ipimap;
2453 sb = ipimap->i_sb;
2474 IWRITE_LOCK(ipimap, RDWRLOCK_IMAP);
2476 if (ipimap->i_size >> L2PSIZE != imap->im_nextiag + 1) {
2477 IWRITE_UNLOCK(ipimap);
2480 "ipimap->i_size is wrong\n");
2493 IWRITE_UNLOCK(ipimap);
2507 if ((rc = dbAlloc(ipimap, 0, (s64) xlen, &xaddr))) {
2509 IWRITE_UNLOCK(ipimap);
2519 mutex_lock(&JFS_IP(ipimap)->commit_mutex);
2523 xtInsert(tid, ipimap, 0, blkno, xlen, &xaddr, 0))) {
2525 mutex_unlock(&JFS_IP(ipimap)->commit_mutex);
2529 dbFree(ipimap, xaddr, (s64) xlen);
2532 IWRITE_UNLOCK(ipimap);
2538 ipimap->i_size += PSIZE;
2539 inode_add_bytes(ipimap, PSIZE);
2542 mp = get_metapage(ipimap, blkno, PSIZE, 0);
2548 xtTruncate(tid, ipimap, ipimap->i_size - PSIZE,
2553 mutex_unlock(&JFS_IP(ipimap)->commit_mutex);
2556 IWRITE_UNLOCK(ipimap);
2588 iplist[0] = ipimap;
2592 mutex_unlock(&JFS_IP(ipimap)->commit_mutex);
2607 diSync(ipimap);
2610 IWRITE_UNLOCK(ipimap);
2614 IREAD_LOCK(ipimap, RDWRLOCK_IMAP);
2618 IREAD_UNLOCK(ipimap);
2662 struct inode *ipimap = imap->im_ipimap;
2666 blkno = IAGTOLBLK(iagno, JFS_SBI(ipimap->i_sb)->l2nbperpage);
2669 *mpp = read_metapage(ipimap, blkno, PSIZE, 0);
2713 * ipimap - Incore inode map inode
2722 diUpdatePMap(struct inode *ipimap,
2735 imap = JFS_IP(ipimap)->i_imap;
2740 jfs_error(ipimap->i_sb, "the iag is outside the map\n");
2744 IREAD_LOCK(ipimap, RDWRLOCK_IMAP);
2746 IREAD_UNLOCK(ipimap);
2768 jfs_error(ipimap->i_sb,
2773 jfs_error(ipimap->i_sb,
2789 jfs_error(ipimap->i_sb,
2795 jfs_error(ipimap->i_sb,
2844 int diExtendFS(struct inode *ipimap, struct inode *ipbmap)
2847 struct inomap *imap = JFS_IP(ipimap)->i_imap;
2888 jfs_error(ipimap->i_sb, "unexpected value of iagnum\n");
2964 jfs_error(ipimap->i_sb, "numinos or numfree incorrect\n");