Lines Matching defs:iagp
298 struct iag *iagp;
325 iagp = (struct iag *) mp->data;
331 if ((lengthPXD(&iagp->inoext[extno]) != imap->im_nbperiext) ||
332 (addressPXD(&iagp->inoext[extno]) == 0)) {
340 blkno = INOPBLK(&iagp->inoext[extno], ino, sbi->l2nbperpage);
343 agstart = le64_to_cpu(iagp->agstart);
848 struct iag *iagp, *aiagp, *biagp, *ciagp, *diagp;
902 iagp = (struct iag *) mp->data;
912 if (!(le32_to_cpu(iagp->wmap[extno]) & mask)) {
916 if (!addressPXD(&iagp->inoext[extno])) {
926 bitmap = le32_to_cpu(iagp->wmap[extno]) & ~mask;
948 if (iagp->nfreeinos == 0) {
976 iagp->inofreefwd =
978 iagp->inofreeback = cpu_to_le32(-1);
988 if (iagp->wmap[extno] == cpu_to_le32(ONES)) {
991 iagp->inosmap[sword] &=
997 iagp->wmap[extno] = cpu_to_le32(bitmap);
1002 le32_add_cpu(&iagp->nfreeinos, 1);
1031 if (iagp->nfreeexts == 0) {
1049 if (iagp->nfreeexts == cpu_to_le32(EXTSPERIAG - 1)) {
1055 if ((fwd = le32_to_cpu(iagp->extfreefwd)) >= 0) {
1061 if ((back = le32_to_cpu(iagp->extfreeback)) >= 0) {
1072 if (iagp->nfreeinos == cpu_to_le32(INOSPEREXT - 1)) {
1073 int inofreeback = le32_to_cpu(iagp->inofreeback);
1074 int inofreefwd = le32_to_cpu(iagp->inofreefwd);
1119 freepxd = iagp->inoext[extno];
1128 if (iagp->nfreeexts == 0) {
1132 iagp->extfreefwd =
1134 iagp->extfreeback = cpu_to_le32(-1);
1140 if (iagp->nfreeexts == cpu_to_le32(EXTSPERIAG - 1)) {
1142 aiagp->extfreeback = iagp->extfreeback;
1145 biagp->extfreefwd = iagp->extfreefwd;
1148 le32_to_cpu(iagp->extfreefwd);
1150 iagp->extfreefwd = iagp->extfreeback = cpu_to_le32(-1);
1153 iagp->iagfree = cpu_to_le32(imap->im_freeiag);
1162 if (iagp->nfreeinos == cpu_to_le32(INOSPEREXT - 1)) {
1163 if ((int) le32_to_cpu(iagp->inofreefwd) >= 0)
1164 ciagp->inofreeback = iagp->inofreeback;
1166 if ((int) le32_to_cpu(iagp->inofreeback) >= 0)
1167 diagp->inofreefwd = iagp->inofreefwd;
1170 le32_to_cpu(iagp->inofreefwd);
1172 iagp->inofreefwd = iagp->inofreeback = cpu_to_le32(-1);
1180 if (iagp->pmap[extno] != 0) {
1183 iagp->wmap[extno] = 0;
1184 PXDlength(&iagp->inoext[extno], 0);
1185 PXDaddress(&iagp->inoext[extno], 0);
1195 iagp->inosmap[sword] |= cpu_to_le32(mask);
1196 iagp->extsmap[sword] &= cpu_to_le32(~mask);
1201 le32_add_cpu(&iagp->nfreeinos, -(INOSPEREXT - 1));
1202 le32_add_cpu(&iagp->nfreeexts, 1);
1295 diInitInode(struct inode *ip, int iagno, int ino, int extno, struct iag * iagp)
1300 jfs_ip->ixpxd = iagp->inoext[extno];
1301 jfs_ip->agstart = le64_to_cpu(iagp->agstart);
1330 struct iag *iagp;
1396 iagp = (struct iag *) mp->data;
1402 addext = (imap->im_agctl[agno].numfree < 32 && iagp->nfreeexts);
1410 if (iagp->nfreeinos || addext) {
1418 if (addressPXD(&iagp->inoext[extno])) {
1421 diFindFree(le32_to_cpu(iagp->wmap[extno]),
1429 rc = diAllocBit(imap, iagp, ino);
1438 iagp);
1479 inosmap = le32_to_cpu(iagp->inosmap[sword]) | mask;
1480 extsmap = le32_to_cpu(iagp->extsmap[sword]) | mask;
1496 rem = diFindFree(le32_to_cpu(iagp->wmap[extno]),
1512 rc = diAllocBit(imap, iagp, ino);
1521 iagp);
1546 if ((rc = diNewExt(imap, iagp, extno))) {
1561 extno, iagp);
1575 inosmap = le32_to_cpu(iagp->inosmap[sword]);
1576 extsmap = le32_to_cpu(iagp->extsmap[sword]);
1771 struct iag *iagp;
1787 iagp = (struct iag *) mp->data;
1792 if (!iagp->nfreeinos) {
1811 if (~iagp->inosmap[sword])
1818 rem = diFindFree(le32_to_cpu(iagp->inosmap[sword]), 0);
1829 rem = diFindFree(le32_to_cpu(iagp->wmap[extno]), 0);
1843 rc = diAllocBit(imap, iagp, ino);
1852 diInitInode(ip, iagno, ino, extno, iagp);
1895 struct iag *iagp;
1907 iagp = (struct iag *) mp->data;
1911 iagp->agstart =
1922 iagp = (struct iag *) mp->data;
1934 if (~iagp->extsmap[sword])
1940 rem = diFindFree(le32_to_cpu(iagp->extsmap[sword]), 0);
1951 rc = diNewExt(imap, iagp, extno);
1958 if (iagp->nfreeexts == cpu_to_le32(EXTSPERIAG)) {
1960 iagp->iagfree = cpu_to_le32(imap->im_freeiag);
1970 diInitInode(ip, iagno, extno << L2INOSPEREXT, extno, iagp);
1979 * NAME: diAllocBit(imap,iagp,ino)
1995 * PRE CONDITION: Already have buffer lock on iagp. Already have AG lock on
2000 * iagp - pointer to iag.
2008 static int diAllocBit(struct inomap * imap, struct iag * iagp, int ino)
2020 if (iagp->nfreeinos == cpu_to_le32(1)) {
2021 if ((int) le32_to_cpu(iagp->inofreefwd) >= 0) {
2023 diIAGRead(imap, le32_to_cpu(iagp->inofreefwd),
2029 if ((int) le32_to_cpu(iagp->inofreeback) >= 0) {
2032 le32_to_cpu(iagp->inofreeback),
2045 agno = BLKTOAG(le64_to_cpu(iagp->agstart), JFS_SBI(imap->im_ipimap->i_sb));
2055 if (((le32_to_cpu(iagp->pmap[extno]) & mask) != 0) ||
2056 ((le32_to_cpu(iagp->wmap[extno]) & mask) != 0) ||
2057 (addressPXD(&iagp->inoext[extno]) == 0)) {
2069 iagp->wmap[extno] |= cpu_to_le32(mask);
2075 if (iagp->wmap[extno] == cpu_to_le32(ONES)) {
2078 iagp->inosmap[sword] |= cpu_to_le32(HIGHORDER >> bitno);
2084 if (iagp->nfreeinos == cpu_to_le32(1)) {
2086 aiagp->inofreeback = iagp->inofreeback;
2091 biagp->inofreefwd = iagp->inofreefwd;
2095 le32_to_cpu(iagp->inofreefwd);
2097 iagp->inofreefwd = iagp->inofreeback = cpu_to_le32(-1);
2103 le32_add_cpu(&iagp->nfreeinos, -1);
2112 * NAME: diNewExt(imap,iagp,extno)
2141 * PRE CONDITION: Already have buffer lock on iagp. Already have AG lock on
2146 * iagp - pointer to iag.
2154 static int diNewExt(struct inomap * imap, struct iag * iagp, int extno)
2169 if (!iagp->nfreeexts) {
2183 agno = BLKTOAG(le64_to_cpu(iagp->agstart), sbi);
2187 iagno = le32_to_cpu(iagp->iagnum);
2194 if (iagp->nfreeexts == cpu_to_le32(1)) {
2195 if ((fwd = le32_to_cpu(iagp->extfreefwd)) >= 0) {
2201 if ((back = le32_to_cpu(iagp->extfreeback)) >= 0) {
2214 if (iagp->nfreeexts == cpu_to_le32(EXTSPERIAG)) {
2230 if (iagp->nfreeinos == 0) {
2254 if ((extno == 0) || (addressPXD(&iagp->inoext[extno - 1]) == 0))
2257 hint = addressPXD(&iagp->inoext[extno - 1]) +
2258 lengthPXD(&iagp->inoext[extno - 1]) - 1;
2299 if (iagp->nfreeexts == cpu_to_le32(1)) {
2301 aiagp->extfreeback = iagp->extfreeback;
2304 biagp->extfreefwd = iagp->extfreefwd;
2307 le32_to_cpu(iagp->extfreefwd);
2309 iagp->extfreefwd = iagp->extfreeback = cpu_to_le32(-1);
2314 if (iagp->nfreeexts == cpu_to_le32(EXTSPERIAG)) {
2318 iagp->extfreefwd = cpu_to_le32(fwd);
2319 iagp->extfreeback = cpu_to_le32(-1);
2327 if (iagp->nfreeinos == 0) {
2331 iagp->inofreefwd =
2333 iagp->inofreeback = cpu_to_le32(-1);
2338 PXDlength(&iagp->inoext[extno], imap->im_nbperiext);
2339 PXDaddress(&iagp->inoext[extno], blkno);
2345 iagp->wmap[extno] = cpu_to_le32(HIGHORDER);
2346 iagp->pmap[extno] = 0;
2354 iagp->extsmap[sword] |= cpu_to_le32(mask);
2355 iagp->inosmap[sword] &= cpu_to_le32(~mask);
2360 le32_add_cpu(&iagp->nfreeinos, (INOSPEREXT - 1));
2361 le32_add_cpu(&iagp->nfreeexts, -1);
2447 struct iag *iagp;
2563 iagp = (struct iag *) mp->data;
2566 memset(iagp, 0, sizeof(struct iag));
2567 iagp->iagnum = cpu_to_le32(iagno);
2568 iagp->inofreefwd = iagp->inofreeback = cpu_to_le32(-1);
2569 iagp->extfreefwd = iagp->extfreeback = cpu_to_le32(-1);
2570 iagp->iagfree = cpu_to_le32(-1);
2571 iagp->nfreeinos = 0;
2572 iagp->nfreeexts = cpu_to_le32(EXTSPERIAG);
2578 iagp->inosmap[i] = cpu_to_le32(ONES);
2624 iagp = (struct iag *) mp->data;
2627 imap->im_freeiag = le32_to_cpu(iagp->iagfree);
2628 iagp->iagfree = cpu_to_le32(-1);
2728 struct iag *iagp;
2752 iagp = (struct iag *) mp->data;
2769 if (!(le32_to_cpu(iagp->wmap[extno]) & mask)) {
2774 if (!(le32_to_cpu(iagp->pmap[extno]) & mask)) {
2780 iagp->pmap[extno] &= cpu_to_le32(~mask);
2789 if (!(le32_to_cpu(iagp->wmap[extno]) & mask)) {
2795 if ((le32_to_cpu(iagp->pmap[extno]) & mask) != 0) {
2802 iagp->pmap[extno] |= cpu_to_le32(mask);
2850 struct iag *iagp = NULL, *hiagp = NULL;
2887 iagp = (struct iag *) bp->data;
2888 if (le32_to_cpu(iagp->iagnum) != i) {
2895 if (iagp->nfreeexts == cpu_to_le32(EXTSPERIAG)) {
2900 agstart = le64_to_cpu(iagp->agstart);
2902 iagp->agstart = cpu_to_le64((s64)n << mp->db_agl2size);
2905 numinos = (EXTSPERIAG - le32_to_cpu(iagp->nfreeexts))
2914 if ((int) le32_to_cpu(iagp->nfreeinos) > 0) {
2916 iagp->inofreefwd = cpu_to_le32(-1);
2917 iagp->inofreeback = cpu_to_le32(-1);
2924 hiagp->inofreeback = iagp->iagnum;
2925 iagp->inofreefwd = cpu_to_le32(head);
2926 iagp->inofreeback = cpu_to_le32(-1);
2931 le32_to_cpu(iagp->iagnum);
2935 le32_to_cpu(iagp->nfreeinos);
2936 xnumfree += le32_to_cpu(iagp->nfreeinos);
2940 if (le32_to_cpu(iagp->nfreeexts) > 0) {
2942 iagp->extfreefwd = cpu_to_le32(-1);
2943 iagp->extfreeback = cpu_to_le32(-1);
2950 hiagp->extfreeback = iagp->iagnum;
2951 iagp->extfreefwd = cpu_to_le32(head);
2952 iagp->extfreeback = cpu_to_le32(-1);
2957 le32_to_cpu(iagp->iagnum);