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);
355 int dbFree(struct inode *ip, s64 blkno, s64 nblocks) in dbFree() argument
368 if (unlikely((blkno == 0) || (blkno + nblocks > bmp->db_mapsize))) { in dbFree()
371 (unsigned long long) blkno, in dbFree()
382 jfs_issue_discard(ipbmap, blkno, nblocks); in dbFree()
388 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbFree()
395 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbFree()
406 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbFree()
409 if ((rc = dbFreeDmap(bmp, dp, blkno, nb))) { in dbFree()
450 int free, s64 blkno, s64 nblocks, struct tblock * tblk) in dbUpdatePMap() argument
464 if (blkno + nblocks > bmp->db_mapsize) { in dbUpdatePMap()
466 (unsigned long long) blkno, in dbUpdatePMap()
482 for (rem = nblocks; rem > 0; rem -= nblks, blkno += nblks) { in dbUpdatePMap()
484 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbUpdatePMap()
502 dbitno = blkno & (BPERDMAP - 1); in dbUpdatePMap()
731 s64 lblkno, blkno; in dbAlloc() local
777 blkno = hint + 1; in dbAlloc()
779 if (blkno >= bmp->db_mapsize) in dbAlloc()
782 agno = blkno >> bmp->db_agl2size; in dbAlloc()
788 if ((blkno & (bmp->db_agsize - 1)) == 0) in dbAlloc()
806 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAlloc()
816 if ((rc = dbAllocNext(bmp, dp, blkno, (int) nblocks)) in dbAlloc()
819 *results = blkno; in dbAlloc()
843 dbAllocNear(bmp, dp, blkno, (int) nblocks, l2nb, results)) in dbAlloc()
936 s64 blkno, s64 nblocks, s64 addnblocks, s64 * results) in dbReAlloc() argument
942 if ((rc = dbExtend(ip, blkno, nblocks, addnblocks)) == 0) { in dbReAlloc()
943 *results = blkno; in dbReAlloc()
956 (ip, blkno + nblocks - 1, addnblocks + nblocks, results)); in dbReAlloc()
983 static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks) in dbExtend() argument
997 if (((rel_block = blkno & (sbi->nbperpage - 1))) && in dbExtend()
1002 lastblkno = blkno + nblocks - 1; in dbExtend()
1082 static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocNext() argument
1102 dbitno = blkno & (BPERDMAP - 1); in dbAllocNext()
1182 return (dbAllocDmap(bmp, dp, blkno, nblocks)); in dbAllocNext()
1215 struct dmap * dp, s64 blkno, int nblocks, int l2nb, s64 * results) in dbAllocNear() argument
1231 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbAllocNear()
1245 blkno = le64_to_cpu(dp->start) + (word << L2DBWORD); in dbAllocNear()
1253 blkno += in dbAllocNear()
1258 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocNear()
1259 *results = blkno; in dbAllocNear()
1328 s64 blkno, lblkno; in dbAllocAG() local
1343 blkno = (s64) agno << bmp->db_agl2size; in dbAllocAG()
1364 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1368 (unsigned long long) blkno, in dbAllocAG()
1379 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, bmp->db_aglevel); in dbAllocAG()
1438 blkno = 0; in dbAllocAG()
1440 blkno &= ~(MAXL1SIZE - 1); in dbAllocAG()
1442 blkno &= ~(MAXL0SIZE - 1); in dbAllocAG()
1444 blkno += in dbAllocAG()
1465 &blkno))) { in dbAllocAG()
1477 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1524 s64 blkno = 0; in dbAllocAny() local
1532 if ((rc = dbFindCtl(bmp, l2nb, bmp->db_maxlevel, &blkno))) in dbAllocAny()
1537 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAny()
1580 s64 nblocks, blkno; in dbDiscardAG() local
1586 u64 blkno; in dbDiscardAG() member
1613 rc = dbAllocAG(bmp, agno, nblocks, l2nb, &blkno); in dbDiscardAG()
1615 tt->blkno = blkno; in dbDiscardAG()
1649 jfs_issue_discard(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1650 dbFree(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1686 static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno) in dbFindCtl() argument
1699 for (lev = level, b = *blkno; lev >= 0; lev--) { in dbFindCtl()
1754 *blkno = b; in dbFindCtl()
1805 dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results) in dbAllocCtl() argument
1817 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocCtl()
1837 assert((blkno & (BPERDMAP - 1)) == 0); in dbAllocCtl()
1841 for (n = nblocks, b = blkno; n > 0; n -= nb, b += nb) { in dbAllocCtl()
1880 *results = blkno; in dbAllocCtl()
1893 for (n = nblocks - n, b = blkno; n > 0; in dbAllocCtl()
1959 s64 blkno; in dbAllocDmapLev() local
1978 blkno = le64_to_cpu(dp->start) + (leafidx << L2DBWORD); in dbAllocDmapLev()
1985 blkno += dbFindBits(le32_to_cpu(dp->wmap[leafidx]), l2nb); in dbAllocDmapLev()
1988 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocDmapLev()
1989 *results = blkno; in dbAllocDmapLev()
2022 static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmap() argument
2034 dbAllocBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2044 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 1, 0))) in dbAllocDmap()
2045 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2077 static int dbFreeDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeDmap() argument
2089 rc = dbFreeBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2099 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 0, 0))) { in dbFreeDmap()
2100 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbFreeDmap()
2110 dbAllocBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2139 static void dbAllocBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocBits() argument
2153 dbitno = blkno & (BPERDMAP - 1); in dbAllocBits()
2252 agno = blkno >> bmp->db_agl2size; in dbAllocBits()
2286 static int dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeBits() argument
2297 dbitno = blkno & (BPERDMAP - 1); in dbFreeBits()
2395 agno = blkno >> bmp->db_agl2size; in dbFreeBits()
2470 dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level) in dbAdjCtl() argument
2482 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, level); in dbAdjCtl()
2497 leafno = BLKTOCTLLEAF(blkno, dcp->budmin); in dbAdjCtl()
2558 dbAdjCtl(bmp, blkno, dcp->stree[ROOT], alloc, in dbAdjCtl()
3188 int dbAllocBottomUp(struct inode *ip, s64 blkno, s64 nblocks) in dbAllocBottomUp() argument
3200 ASSERT(nblocks <= bmp->db_mapsize - blkno); in dbAllocBottomUp()
3206 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbAllocBottomUp()
3213 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocBottomUp()
3224 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbAllocBottomUp()
3227 if ((rc = dbAllocDmapBU(bmp, dp, blkno, nb))) { in dbAllocBottomUp()
3243 static int dbAllocDmapBU(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmapBU() argument
3259 dbitno = blkno & (BPERDMAP - 1); in dbAllocDmapBU()
3322 agno = blkno >> bmp->db_agl2size; in dbAllocDmapBU()
3340 if ((rc = dbAdjCtl(bmp, blkno, tp->stree[ROOT], 1, 0))) in dbAllocDmapBU()
3341 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmapBU()
3364 int dbExtendFS(struct inode *ipbmap, s64 blkno, s64 nblocks) in dbExtendFS() argument
3379 newsize = blkno + nblocks; in dbExtendFS()
3382 (long long) blkno, (long long) nblocks, (long long) newsize); in dbExtendFS()
3456 k = blkno >> L2MAXL1SIZE; in dbExtendFS()
3458 p = BLKTOL1(blkno, sbi->l2nbperpage); /* L1 page */ in dbExtendFS()
3473 j = (blkno & (MAXL1SIZE - 1)) >> L2MAXL0SIZE; in dbExtendFS()
3475 p = BLKTOL0(blkno, sbi->l2nbperpage); in dbExtendFS()
3505 i = (blkno & (MAXL0SIZE - 1)) >> in dbExtendFS()
3508 p = BLKTODMAP(blkno, in dbExtendFS()
3533 if ((n = blkno & (BPERDMAP - 1))) { in dbExtendFS()
3551 *l0leaf = dbInitDmap(dp, blkno, n); in dbExtendFS()
3562 blkno += n; in dbExtendFS()
3729 int blkno, w, b, r, nw, nb, i; in dbInitDmap() local
3732 blkno = Blkno & (BPERDMAP - 1); in dbInitDmap()
3734 if (blkno == 0) { in dbInitDmap()
3749 w = blkno >> L2DBWORD; in dbInitDmap()
3756 for (r = nblocks; r > 0; r -= nb, blkno += nb) { in dbInitDmap()
3758 b = blkno & (DBWORD - 1); in dbInitDmap()
3789 if (blkno == BPERDMAP) in dbInitDmap()
3793 w = blkno >> L2DBWORD; in dbInitDmap()
3796 b = blkno & (DBWORD - 1); in dbInitDmap()