Lines Matching refs:blkno
77 static void dbAllocBits(struct bmap * bmp, struct dmap * dp, s64 blkno,
83 static int dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc,
86 static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno,
88 static int dbAllocNear(struct bmap * bmp, struct dmap * dp, s64 blkno,
91 static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno,
98 static int dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno,
100 static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks);
102 static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno);
104 static int dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno,
106 static int dbFreeDmap(struct bmap * bmp, struct dmap * dp, s64 blkno,
114 static int dbAllocDmapBU(struct bmap * bmp, struct dmap * dp, s64 blkno,
116 static int dbInitDmap(struct dmap * dp, s64 blkno, int nblocks);
331 int dbFree(struct inode *ip, s64 blkno, s64 nblocks) in dbFree() argument
344 if (unlikely((blkno == 0) || (blkno + nblocks > bmp->db_mapsize))) { in dbFree()
347 (unsigned long long) blkno, in dbFree()
358 jfs_issue_discard(ipbmap, blkno, nblocks); in dbFree()
364 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbFree()
371 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbFree()
382 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbFree()
385 if ((rc = dbFreeDmap(bmp, dp, blkno, nb))) { in dbFree()
425 int free, s64 blkno, s64 nblocks, struct tblock * tblk) in dbUpdatePMap() argument
439 if (blkno + nblocks > bmp->db_mapsize) { in dbUpdatePMap()
441 (unsigned long long) blkno, in dbUpdatePMap()
457 for (rem = nblocks; rem > 0; rem -= nblks, blkno += nblks) { in dbUpdatePMap()
459 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbUpdatePMap()
477 dbitno = blkno & (BPERDMAP - 1); in dbUpdatePMap()
706 s64 lblkno, blkno; in dbAlloc() local
752 blkno = hint + 1; in dbAlloc()
754 if (blkno >= bmp->db_mapsize) in dbAlloc()
757 agno = blkno >> bmp->db_agl2size; in dbAlloc()
763 if ((blkno & (bmp->db_agsize - 1)) == 0) in dbAlloc()
781 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAlloc()
791 if ((rc = dbAllocNext(bmp, dp, blkno, (int) nblocks)) in dbAlloc()
794 *results = blkno; in dbAlloc()
818 dbAllocNear(bmp, dp, blkno, (int) nblocks, l2nb, results)) in dbAlloc()
893 int dbAllocExact(struct inode *ip, s64 blkno, int nblocks) in dbAllocExact() argument
911 if (nblocks <= 0 || nblocks > BPERDMAP || blkno >= bmp->db_mapsize) { in dbAllocExact()
923 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocExact()
932 rc = dbAllocNext(bmp, dp, blkno, nblocks); in dbAllocExact()
979 s64 blkno, s64 nblocks, s64 addnblocks, s64 * results) in dbReAlloc() argument
985 if ((rc = dbExtend(ip, blkno, nblocks, addnblocks)) == 0) { in dbReAlloc()
986 *results = blkno; in dbReAlloc()
999 (ip, blkno + nblocks - 1, addnblocks + nblocks, results)); in dbReAlloc()
1026 static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks) in dbExtend() argument
1040 if (((rel_block = blkno & (sbi->nbperpage - 1))) && in dbExtend()
1045 lastblkno = blkno + nblocks - 1; in dbExtend()
1125 static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocNext() argument
1145 dbitno = blkno & (BPERDMAP - 1); in dbAllocNext()
1225 return (dbAllocDmap(bmp, dp, blkno, nblocks)); in dbAllocNext()
1258 struct dmap * dp, s64 blkno, int nblocks, int l2nb, s64 * results) in dbAllocNear() argument
1274 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbAllocNear()
1288 blkno = le64_to_cpu(dp->start) + (word << L2DBWORD); in dbAllocNear()
1296 blkno += in dbAllocNear()
1301 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocNear()
1302 *results = blkno; in dbAllocNear()
1371 s64 blkno, lblkno; in dbAllocAG() local
1386 blkno = (s64) agno << bmp->db_agl2size; in dbAllocAG()
1407 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1411 (unsigned long long) blkno, in dbAllocAG()
1422 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, bmp->db_aglevel); in dbAllocAG()
1481 blkno = 0; in dbAllocAG()
1483 blkno &= ~(MAXL1SIZE - 1); in dbAllocAG()
1485 blkno &= ~(MAXL0SIZE - 1); in dbAllocAG()
1487 blkno += in dbAllocAG()
1508 &blkno))) { in dbAllocAG()
1520 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1567 s64 blkno = 0; in dbAllocAny() local
1575 if ((rc = dbFindCtl(bmp, l2nb, bmp->db_maxlevel, &blkno))) in dbAllocAny()
1580 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAny()
1623 s64 nblocks, blkno; in dbDiscardAG() local
1629 u64 blkno; in dbDiscardAG() member
1656 rc = dbAllocAG(bmp, agno, nblocks, l2nb, &blkno); in dbDiscardAG()
1658 tt->blkno = blkno; in dbDiscardAG()
1690 jfs_issue_discard(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1691 dbFree(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1727 static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno) in dbFindCtl() argument
1740 for (lev = level, b = *blkno; lev >= 0; lev--) { in dbFindCtl()
1795 *blkno = b; in dbFindCtl()
1846 dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results) in dbAllocCtl() argument
1858 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocCtl()
1878 assert((blkno & (BPERDMAP - 1)) == 0); in dbAllocCtl()
1882 for (n = nblocks, b = blkno; n > 0; n -= nb, b += nb) { in dbAllocCtl()
1921 *results = blkno; in dbAllocCtl()
1934 for (n = nblocks - n, b = blkno; n > 0; in dbAllocCtl()
2000 s64 blkno; in dbAllocDmapLev() local
2016 blkno = le64_to_cpu(dp->start) + (leafidx << L2DBWORD); in dbAllocDmapLev()
2023 blkno += dbFindBits(le32_to_cpu(dp->wmap[leafidx]), l2nb); in dbAllocDmapLev()
2026 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocDmapLev()
2027 *results = blkno; in dbAllocDmapLev()
2060 static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmap() argument
2072 dbAllocBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2082 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 1, 0))) in dbAllocDmap()
2083 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2115 static int dbFreeDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeDmap() argument
2127 rc = dbFreeBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2137 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 0, 0))) { in dbFreeDmap()
2138 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbFreeDmap()
2148 dbAllocBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2177 static void dbAllocBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocBits() argument
2191 dbitno = blkno & (BPERDMAP - 1); in dbAllocBits()
2290 agno = blkno >> bmp->db_agl2size; in dbAllocBits()
2324 static int dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeBits() argument
2335 dbitno = blkno & (BPERDMAP - 1); in dbFreeBits()
2433 agno = blkno >> bmp->db_agl2size; in dbFreeBits()
2508 dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level) in dbAdjCtl() argument
2520 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, level); in dbAdjCtl()
2535 leafno = BLKTOCTLLEAF(blkno, dcp->budmin); in dbAdjCtl()
2592 dbAdjCtl(bmp, blkno, dcp->stree[ROOT], alloc, in dbAdjCtl()
3208 int dbAllocBottomUp(struct inode *ip, s64 blkno, s64 nblocks) in dbAllocBottomUp() argument
3220 ASSERT(nblocks <= bmp->db_mapsize - blkno); in dbAllocBottomUp()
3226 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbAllocBottomUp()
3233 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocBottomUp()
3244 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbAllocBottomUp()
3247 if ((rc = dbAllocDmapBU(bmp, dp, blkno, nb))) { in dbAllocBottomUp()
3263 static int dbAllocDmapBU(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmapBU() argument
3279 dbitno = blkno & (BPERDMAP - 1); in dbAllocDmapBU()
3342 agno = blkno >> bmp->db_agl2size; in dbAllocDmapBU()
3360 if ((rc = dbAdjCtl(bmp, blkno, tp->stree[ROOT], 1, 0))) in dbAllocDmapBU()
3361 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmapBU()
3384 int dbExtendFS(struct inode *ipbmap, s64 blkno, s64 nblocks) in dbExtendFS() argument
3399 newsize = blkno + nblocks; in dbExtendFS()
3402 (long long) blkno, (long long) nblocks, (long long) newsize); in dbExtendFS()
3476 k = blkno >> L2MAXL1SIZE; in dbExtendFS()
3478 p = BLKTOL1(blkno, sbi->l2nbperpage); /* L1 page */ in dbExtendFS()
3493 j = (blkno & (MAXL1SIZE - 1)) >> L2MAXL0SIZE; in dbExtendFS()
3495 p = BLKTOL0(blkno, sbi->l2nbperpage); in dbExtendFS()
3525 i = (blkno & (MAXL0SIZE - 1)) >> in dbExtendFS()
3528 p = BLKTODMAP(blkno, in dbExtendFS()
3553 if ((n = blkno & (BPERDMAP - 1))) { in dbExtendFS()
3571 *l0leaf = dbInitDmap(dp, blkno, n); in dbExtendFS()
3582 blkno += n; in dbExtendFS()
3749 int blkno, w, b, r, nw, nb, i; in dbInitDmap() local
3752 blkno = Blkno & (BPERDMAP - 1); in dbInitDmap()
3754 if (blkno == 0) { in dbInitDmap()
3769 w = blkno >> L2DBWORD; in dbInitDmap()
3776 for (r = nblocks; r > 0; r -= nb, blkno += nb) { in dbInitDmap()
3778 b = blkno & (DBWORD - 1); in dbInitDmap()
3809 if (blkno == BPERDMAP) in dbInitDmap()
3813 w = blkno >> L2DBWORD; in dbInitDmap()
3816 b = blkno & (DBWORD - 1); in dbInitDmap()