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);
325 int dbFree(struct inode *ip, s64 blkno, s64 nblocks) in dbFree() argument
338 if (unlikely((blkno == 0) || (blkno + nblocks > bmp->db_mapsize))) { in dbFree()
341 (unsigned long long) blkno, in dbFree()
352 jfs_issue_discard(ipbmap, blkno, nblocks); in dbFree()
358 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbFree()
365 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbFree()
376 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbFree()
379 if ((rc = dbFreeDmap(bmp, dp, blkno, nb))) { in dbFree()
420 int free, s64 blkno, s64 nblocks, struct tblock * tblk) in dbUpdatePMap() argument
434 if (blkno + nblocks > bmp->db_mapsize) { in dbUpdatePMap()
436 (unsigned long long) blkno, in dbUpdatePMap()
452 for (rem = nblocks; rem > 0; rem -= nblks, blkno += nblks) { in dbUpdatePMap()
454 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbUpdatePMap()
472 dbitno = blkno & (BPERDMAP - 1); in dbUpdatePMap()
701 s64 lblkno, blkno; in dbAlloc() local
747 blkno = hint + 1; in dbAlloc()
749 if (blkno >= bmp->db_mapsize) in dbAlloc()
752 agno = blkno >> bmp->db_agl2size; in dbAlloc()
758 if ((blkno & (bmp->db_agsize - 1)) == 0) in dbAlloc()
776 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAlloc()
786 if ((rc = dbAllocNext(bmp, dp, blkno, (int) nblocks)) in dbAlloc()
789 *results = blkno; in dbAlloc()
813 dbAllocNear(bmp, dp, blkno, (int) nblocks, l2nb, results)) in dbAlloc()
888 int dbAllocExact(struct inode *ip, s64 blkno, int nblocks) in dbAllocExact() argument
906 if (nblocks <= 0 || nblocks > BPERDMAP || blkno >= bmp->db_mapsize) { in dbAllocExact()
918 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocExact()
927 rc = dbAllocNext(bmp, dp, blkno, nblocks); in dbAllocExact()
974 s64 blkno, s64 nblocks, s64 addnblocks, s64 * results) in dbReAlloc() argument
980 if ((rc = dbExtend(ip, blkno, nblocks, addnblocks)) == 0) { in dbReAlloc()
981 *results = blkno; in dbReAlloc()
994 (ip, blkno + nblocks - 1, addnblocks + nblocks, results)); in dbReAlloc()
1021 static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks) in dbExtend() argument
1035 if (((rel_block = blkno & (sbi->nbperpage - 1))) && in dbExtend()
1040 lastblkno = blkno + nblocks - 1; in dbExtend()
1120 static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocNext() argument
1140 dbitno = blkno & (BPERDMAP - 1); in dbAllocNext()
1220 return (dbAllocDmap(bmp, dp, blkno, nblocks)); in dbAllocNext()
1253 struct dmap * dp, s64 blkno, int nblocks, int l2nb, s64 * results) in dbAllocNear() argument
1269 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbAllocNear()
1283 blkno = le64_to_cpu(dp->start) + (word << L2DBWORD); in dbAllocNear()
1291 blkno += in dbAllocNear()
1296 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocNear()
1297 *results = blkno; in dbAllocNear()
1366 s64 blkno, lblkno; in dbAllocAG() local
1381 blkno = (s64) agno << bmp->db_agl2size; in dbAllocAG()
1402 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1406 (unsigned long long) blkno, in dbAllocAG()
1417 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, bmp->db_aglevel); in dbAllocAG()
1476 blkno = 0; in dbAllocAG()
1478 blkno &= ~(MAXL1SIZE - 1); in dbAllocAG()
1480 blkno &= ~(MAXL0SIZE - 1); in dbAllocAG()
1482 blkno += in dbAllocAG()
1503 &blkno))) { in dbAllocAG()
1515 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1562 s64 blkno = 0; in dbAllocAny() local
1570 if ((rc = dbFindCtl(bmp, l2nb, bmp->db_maxlevel, &blkno))) in dbAllocAny()
1575 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAny()
1618 s64 nblocks, blkno; in dbDiscardAG() local
1624 u64 blkno; in dbDiscardAG() member
1651 rc = dbAllocAG(bmp, agno, nblocks, l2nb, &blkno); in dbDiscardAG()
1653 tt->blkno = blkno; in dbDiscardAG()
1685 jfs_issue_discard(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1686 dbFree(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1722 static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno) in dbFindCtl() argument
1735 for (lev = level, b = *blkno; lev >= 0; lev--) { in dbFindCtl()
1790 *blkno = b; in dbFindCtl()
1841 dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results) in dbAllocCtl() argument
1853 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocCtl()
1873 assert((blkno & (BPERDMAP - 1)) == 0); in dbAllocCtl()
1877 for (n = nblocks, b = blkno; n > 0; n -= nb, b += nb) { in dbAllocCtl()
1916 *results = blkno; in dbAllocCtl()
1929 for (n = nblocks - n, b = blkno; n > 0; in dbAllocCtl()
1995 s64 blkno; in dbAllocDmapLev() local
2011 blkno = le64_to_cpu(dp->start) + (leafidx << L2DBWORD); in dbAllocDmapLev()
2018 blkno += dbFindBits(le32_to_cpu(dp->wmap[leafidx]), l2nb); in dbAllocDmapLev()
2021 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocDmapLev()
2022 *results = blkno; in dbAllocDmapLev()
2055 static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmap() argument
2067 dbAllocBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2077 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 1, 0))) in dbAllocDmap()
2078 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2110 static int dbFreeDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeDmap() argument
2122 rc = dbFreeBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2132 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 0, 0))) { in dbFreeDmap()
2133 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbFreeDmap()
2143 dbAllocBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2172 static void dbAllocBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocBits() argument
2186 dbitno = blkno & (BPERDMAP - 1); in dbAllocBits()
2285 agno = blkno >> bmp->db_agl2size; in dbAllocBits()
2319 static int dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeBits() argument
2330 dbitno = blkno & (BPERDMAP - 1); in dbFreeBits()
2428 agno = blkno >> bmp->db_agl2size; in dbFreeBits()
2503 dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level) in dbAdjCtl() argument
2515 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, level); in dbAdjCtl()
2530 leafno = BLKTOCTLLEAF(blkno, dcp->budmin); in dbAdjCtl()
2587 dbAdjCtl(bmp, blkno, dcp->stree[ROOT], alloc, in dbAdjCtl()
3203 int dbAllocBottomUp(struct inode *ip, s64 blkno, s64 nblocks) in dbAllocBottomUp() argument
3215 ASSERT(nblocks <= bmp->db_mapsize - blkno); in dbAllocBottomUp()
3221 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbAllocBottomUp()
3228 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocBottomUp()
3239 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbAllocBottomUp()
3242 if ((rc = dbAllocDmapBU(bmp, dp, blkno, nb))) { in dbAllocBottomUp()
3258 static int dbAllocDmapBU(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmapBU() argument
3274 dbitno = blkno & (BPERDMAP - 1); in dbAllocDmapBU()
3337 agno = blkno >> bmp->db_agl2size; in dbAllocDmapBU()
3355 if ((rc = dbAdjCtl(bmp, blkno, tp->stree[ROOT], 1, 0))) in dbAllocDmapBU()
3356 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmapBU()
3379 int dbExtendFS(struct inode *ipbmap, s64 blkno, s64 nblocks) in dbExtendFS() argument
3394 newsize = blkno + nblocks; in dbExtendFS()
3397 (long long) blkno, (long long) nblocks, (long long) newsize); in dbExtendFS()
3471 k = blkno >> L2MAXL1SIZE; in dbExtendFS()
3473 p = BLKTOL1(blkno, sbi->l2nbperpage); /* L1 page */ in dbExtendFS()
3488 j = (blkno & (MAXL1SIZE - 1)) >> L2MAXL0SIZE; in dbExtendFS()
3490 p = BLKTOL0(blkno, sbi->l2nbperpage); in dbExtendFS()
3520 i = (blkno & (MAXL0SIZE - 1)) >> in dbExtendFS()
3523 p = BLKTODMAP(blkno, in dbExtendFS()
3548 if ((n = blkno & (BPERDMAP - 1))) { in dbExtendFS()
3566 *l0leaf = dbInitDmap(dp, blkno, n); in dbExtendFS()
3577 blkno += n; in dbExtendFS()
3744 int blkno, w, b, r, nw, nb, i; in dbInitDmap() local
3747 blkno = Blkno & (BPERDMAP - 1); in dbInitDmap()
3749 if (blkno == 0) { in dbInitDmap()
3764 w = blkno >> L2DBWORD; in dbInitDmap()
3771 for (r = nblocks; r > 0; r -= nb, blkno += nb) { in dbInitDmap()
3773 b = blkno & (DBWORD - 1); in dbInitDmap()
3804 if (blkno == BPERDMAP) in dbInitDmap()
3808 w = blkno >> L2DBWORD; in dbInitDmap()
3811 b = blkno & (DBWORD - 1); in dbInitDmap()