Lines Matching refs:blkno

64 static void dbAllocBits(struct bmap * bmp, struct dmap * dp, s64 blkno,
70 static int dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc,
73 static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
75 static int dbAllocNear(struct bmap * bmp, struct dmap * dp, s64 blkno,
78 static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno,
85 static int dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno,
87 static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks);
89 static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno);
91 static int dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno,
93 static int dbFreeDmap(struct bmap * bmp, struct dmap * dp, s64 blkno,
101 static int dbAllocDmapBU(struct bmap * bmp, struct dmap * dp, s64 blkno,
103 static int dbInitDmap(struct dmap * dp, s64 blkno, int nblocks);
359 int dbFree(struct inode *ip, s64 blkno, s64 nblocks) in dbFree() argument
372 if (unlikely((blkno == 0) || (blkno + nblocks > bmp->db_mapsize))) { in dbFree()
375 (unsigned long long) blkno, in dbFree()
386 jfs_issue_discard(ipbmap, blkno, nblocks); in dbFree()
392 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbFree()
399 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbFree()
410 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbFree()
413 if ((rc = dbFreeDmap(bmp, dp, blkno, nb))) { in dbFree()
454 int free, s64 blkno, s64 nblocks, struct tblock * tblk) in dbUpdatePMap() argument
468 if (blkno + nblocks > bmp->db_mapsize) { in dbUpdatePMap()
470 (unsigned long long) blkno, in dbUpdatePMap()
486 for (rem = nblocks; rem > 0; rem -= nblks, blkno += nblks) { in dbUpdatePMap()
488 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbUpdatePMap()
506 dbitno = blkno & (BPERDMAP - 1); in dbUpdatePMap()
735 s64 lblkno, blkno; in dbAlloc() local
781 blkno = hint + 1; in dbAlloc()
783 if (blkno >= bmp->db_mapsize) in dbAlloc()
786 agno = blkno >> bmp->db_agl2size; in dbAlloc()
792 if ((blkno & (bmp->db_agsize - 1)) == 0) in dbAlloc()
810 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAlloc()
820 if ((rc = dbAllocNext(bmp, dp, blkno, (int) nblocks)) in dbAlloc()
823 *results = blkno; in dbAlloc()
847 dbAllocNear(bmp, dp, blkno, (int) nblocks, l2nb, results)) in dbAlloc()
940 s64 blkno, s64 nblocks, s64 addnblocks, s64 * results) in dbReAlloc() argument
946 if ((rc = dbExtend(ip, blkno, nblocks, addnblocks)) == 0) { in dbReAlloc()
947 *results = blkno; in dbReAlloc()
960 (ip, blkno + nblocks - 1, addnblocks + nblocks, results)); in dbReAlloc()
987 static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks) in dbExtend() argument
1001 if (((rel_block = blkno & (sbi->nbperpage - 1))) && in dbExtend()
1006 lastblkno = blkno + nblocks - 1; in dbExtend()
1086 static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocNext() argument
1106 dbitno = blkno & (BPERDMAP - 1); in dbAllocNext()
1186 return (dbAllocDmap(bmp, dp, blkno, nblocks)); in dbAllocNext()
1219 struct dmap * dp, s64 blkno, int nblocks, int l2nb, s64 * results) in dbAllocNear() argument
1235 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbAllocNear()
1249 blkno = le64_to_cpu(dp->start) + (word << L2DBWORD); in dbAllocNear()
1257 blkno += in dbAllocNear()
1262 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocNear()
1263 *results = blkno; in dbAllocNear()
1332 s64 blkno, lblkno; in dbAllocAG() local
1347 blkno = (s64) agno << bmp->db_agl2size; in dbAllocAG()
1368 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1372 (unsigned long long) blkno, in dbAllocAG()
1383 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, bmp->db_aglevel); in dbAllocAG()
1442 blkno = 0; in dbAllocAG()
1444 blkno &= ~(MAXL1SIZE - 1); in dbAllocAG()
1446 blkno &= ~(MAXL0SIZE - 1); in dbAllocAG()
1448 blkno += in dbAllocAG()
1469 &blkno))) { in dbAllocAG()
1481 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1528 s64 blkno = 0; in dbAllocAny() local
1536 if ((rc = dbFindCtl(bmp, l2nb, bmp->db_maxlevel, &blkno))) in dbAllocAny()
1541 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAny()
1584 s64 nblocks, blkno; in dbDiscardAG() local
1590 u64 blkno; in dbDiscardAG() member
1617 rc = dbAllocAG(bmp, agno, nblocks, l2nb, &blkno); in dbDiscardAG()
1619 tt->blkno = blkno; in dbDiscardAG()
1653 jfs_issue_discard(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1654 dbFree(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1690 static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno) in dbFindCtl() argument
1703 for (lev = level, b = *blkno; lev >= 0; lev--) { in dbFindCtl()
1758 *blkno = b; in dbFindCtl()
1809 dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results) in dbAllocCtl() argument
1821 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocCtl()
1844 assert((blkno & (BPERDMAP - 1)) == 0); in dbAllocCtl()
1848 for (n = nblocks, b = blkno; n > 0; n -= nb, b += nb) { in dbAllocCtl()
1887 *results = blkno; in dbAllocCtl()
1900 for (n = nblocks - n, b = blkno; n > 0; in dbAllocCtl()
1966 s64 blkno; in dbAllocDmapLev() local
1985 blkno = le64_to_cpu(dp->start) + (leafidx << L2DBWORD); in dbAllocDmapLev()
1992 blkno += dbFindBits(le32_to_cpu(dp->wmap[leafidx]), l2nb); in dbAllocDmapLev()
1995 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocDmapLev()
1996 *results = blkno; in dbAllocDmapLev()
2029 static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmap() argument
2041 dbAllocBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2051 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 1, 0))) in dbAllocDmap()
2052 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2084 static int dbFreeDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeDmap() argument
2096 rc = dbFreeBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2106 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 0, 0))) { in dbFreeDmap()
2107 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbFreeDmap()
2117 dbAllocBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2146 static void dbAllocBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocBits() argument
2160 dbitno = blkno & (BPERDMAP - 1); in dbAllocBits()
2259 agno = blkno >> bmp->db_agl2size; in dbAllocBits()
2293 static int dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeBits() argument
2304 dbitno = blkno & (BPERDMAP - 1); in dbFreeBits()
2402 agno = blkno >> bmp->db_agl2size; in dbFreeBits()
2477 dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level) in dbAdjCtl() argument
2489 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, level); in dbAdjCtl()
2504 leafno = BLKTOCTLLEAF(blkno, dcp->budmin); in dbAdjCtl()
2565 dbAdjCtl(bmp, blkno, dcp->stree[ROOT], alloc, in dbAdjCtl()
3198 int dbAllocBottomUp(struct inode *ip, s64 blkno, s64 nblocks) in dbAllocBottomUp() argument
3210 ASSERT(nblocks <= bmp->db_mapsize - blkno); in dbAllocBottomUp()
3216 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbAllocBottomUp()
3223 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocBottomUp()
3234 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbAllocBottomUp()
3237 if ((rc = dbAllocDmapBU(bmp, dp, blkno, nb))) { in dbAllocBottomUp()
3253 static int dbAllocDmapBU(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmapBU() argument
3269 dbitno = blkno & (BPERDMAP - 1); in dbAllocDmapBU()
3332 agno = blkno >> bmp->db_agl2size; in dbAllocDmapBU()
3350 if ((rc = dbAdjCtl(bmp, blkno, tp->stree[ROOT], 1, 0))) in dbAllocDmapBU()
3351 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmapBU()
3374 int dbExtendFS(struct inode *ipbmap, s64 blkno, s64 nblocks) in dbExtendFS() argument
3389 newsize = blkno + nblocks; in dbExtendFS()
3392 (long long) blkno, (long long) nblocks, (long long) newsize); in dbExtendFS()
3466 k = blkno >> L2MAXL1SIZE; in dbExtendFS()
3468 p = BLKTOL1(blkno, sbi->l2nbperpage); /* L1 page */ in dbExtendFS()
3483 j = (blkno & (MAXL1SIZE - 1)) >> L2MAXL0SIZE; in dbExtendFS()
3485 p = BLKTOL0(blkno, sbi->l2nbperpage); in dbExtendFS()
3515 i = (blkno & (MAXL0SIZE - 1)) >> in dbExtendFS()
3518 p = BLKTODMAP(blkno, in dbExtendFS()
3543 if ((n = blkno & (BPERDMAP - 1))) { in dbExtendFS()
3561 *l0leaf = dbInitDmap(dp, blkno, n); in dbExtendFS()
3572 blkno += n; in dbExtendFS()
3739 int blkno, w, b, r, nw, nb, i; in dbInitDmap() local
3742 blkno = Blkno & (BPERDMAP - 1); in dbInitDmap()
3744 if (blkno == 0) { in dbInitDmap()
3759 w = blkno >> L2DBWORD; in dbInitDmap()
3766 for (r = nblocks; r > 0; r -= nb, blkno += nb) { in dbInitDmap()
3768 b = blkno & (DBWORD - 1); in dbInitDmap()
3799 if (blkno == BPERDMAP) in dbInitDmap()
3803 w = blkno >> L2DBWORD; in dbInitDmap()
3806 b = blkno & (DBWORD - 1); in dbInitDmap()