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);
318 int dbFree(struct inode *ip, s64 blkno, s64 nblocks) in dbFree() argument
331 if (unlikely((blkno == 0) || (blkno + nblocks > bmp->db_mapsize))) { in dbFree()
334 (unsigned long long) blkno, in dbFree()
345 jfs_issue_discard(ipbmap, blkno, nblocks); in dbFree()
351 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbFree()
358 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbFree()
369 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbFree()
372 if ((rc = dbFreeDmap(bmp, dp, blkno, nb))) { in dbFree()
412 int free, s64 blkno, s64 nblocks, struct tblock * tblk) in dbUpdatePMap() argument
426 if (blkno + nblocks > bmp->db_mapsize) { in dbUpdatePMap()
428 (unsigned long long) blkno, in dbUpdatePMap()
444 for (rem = nblocks; rem > 0; rem -= nblks, blkno += nblks) { in dbUpdatePMap()
446 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbUpdatePMap()
464 dbitno = blkno & (BPERDMAP - 1); in dbUpdatePMap()
693 s64 lblkno, blkno; in dbAlloc() local
739 blkno = hint + 1; in dbAlloc()
741 if (blkno >= bmp->db_mapsize) in dbAlloc()
744 agno = blkno >> bmp->db_agl2size; in dbAlloc()
750 if ((blkno & (bmp->db_agsize - 1)) == 0) in dbAlloc()
768 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAlloc()
778 if ((rc = dbAllocNext(bmp, dp, blkno, (int) nblocks)) in dbAlloc()
781 *results = blkno; in dbAlloc()
805 dbAllocNear(bmp, dp, blkno, (int) nblocks, l2nb, results)) in dbAlloc()
880 int dbAllocExact(struct inode *ip, s64 blkno, int nblocks) in dbAllocExact() argument
898 if (nblocks <= 0 || nblocks > BPERDMAP || blkno >= bmp->db_mapsize) { in dbAllocExact()
910 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocExact()
919 rc = dbAllocNext(bmp, dp, blkno, nblocks); in dbAllocExact()
966 s64 blkno, s64 nblocks, s64 addnblocks, s64 * results) in dbReAlloc() argument
972 if ((rc = dbExtend(ip, blkno, nblocks, addnblocks)) == 0) { in dbReAlloc()
973 *results = blkno; in dbReAlloc()
986 (ip, blkno + nblocks - 1, addnblocks + nblocks, results)); in dbReAlloc()
1013 static int dbExtend(struct inode *ip, s64 blkno, s64 nblocks, s64 addnblocks) in dbExtend() argument
1027 if (((rel_block = blkno & (sbi->nbperpage - 1))) && in dbExtend()
1032 lastblkno = blkno + nblocks - 1; in dbExtend()
1112 static int dbAllocNext(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocNext() argument
1132 dbitno = blkno & (BPERDMAP - 1); in dbAllocNext()
1212 return (dbAllocDmap(bmp, dp, blkno, nblocks)); in dbAllocNext()
1245 struct dmap * dp, s64 blkno, int nblocks, int l2nb, s64 * results) in dbAllocNear() argument
1261 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbAllocNear()
1275 blkno = le64_to_cpu(dp->start) + (word << L2DBWORD); in dbAllocNear()
1283 blkno += in dbAllocNear()
1288 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocNear()
1289 *results = blkno; in dbAllocNear()
1358 s64 blkno, lblkno; in dbAllocAG() local
1373 blkno = (s64) agno << bmp->db_agl2size; in dbAllocAG()
1394 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1398 (unsigned long long) blkno, in dbAllocAG()
1409 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, bmp->db_aglevel); in dbAllocAG()
1468 blkno = 0; in dbAllocAG()
1470 blkno &= ~(MAXL1SIZE - 1); in dbAllocAG()
1472 blkno &= ~(MAXL0SIZE - 1); in dbAllocAG()
1474 blkno += in dbAllocAG()
1495 &blkno))) { in dbAllocAG()
1507 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAG()
1554 s64 blkno = 0; in dbAllocAny() local
1562 if ((rc = dbFindCtl(bmp, l2nb, bmp->db_maxlevel, &blkno))) in dbAllocAny()
1567 rc = dbAllocCtl(bmp, nblocks, l2nb, blkno, results); in dbAllocAny()
1610 s64 nblocks, blkno; in dbDiscardAG() local
1616 u64 blkno; in dbDiscardAG() member
1643 rc = dbAllocAG(bmp, agno, nblocks, l2nb, &blkno); in dbDiscardAG()
1645 tt->blkno = blkno; in dbDiscardAG()
1677 jfs_issue_discard(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1678 dbFree(ip, tt->blkno, tt->nblocks); in dbDiscardAG()
1714 static int dbFindCtl(struct bmap * bmp, int l2nb, int level, s64 * blkno) in dbFindCtl() argument
1727 for (lev = level, b = *blkno; lev >= 0; lev--) { in dbFindCtl()
1782 *blkno = b; in dbFindCtl()
1833 dbAllocCtl(struct bmap * bmp, s64 nblocks, int l2nb, s64 blkno, s64 * results) in dbAllocCtl() argument
1845 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocCtl()
1865 assert((blkno & (BPERDMAP - 1)) == 0); in dbAllocCtl()
1869 for (n = nblocks, b = blkno; n > 0; n -= nb, b += nb) { in dbAllocCtl()
1908 *results = blkno; in dbAllocCtl()
1921 for (n = nblocks - n, b = blkno; n > 0; in dbAllocCtl()
1987 s64 blkno; in dbAllocDmapLev() local
2003 blkno = le64_to_cpu(dp->start) + (leafidx << L2DBWORD); in dbAllocDmapLev()
2010 blkno += dbFindBits(le32_to_cpu(dp->wmap[leafidx]), l2nb); in dbAllocDmapLev()
2013 if ((rc = dbAllocDmap(bmp, dp, blkno, nblocks)) == 0) in dbAllocDmapLev()
2014 *results = blkno; in dbAllocDmapLev()
2047 static int dbAllocDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmap() argument
2059 dbAllocBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2069 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 1, 0))) in dbAllocDmap()
2070 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmap()
2102 static int dbFreeDmap(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeDmap() argument
2114 rc = dbFreeBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2124 if ((rc = dbAdjCtl(bmp, blkno, dp->tree.stree[ROOT], 0, 0))) { in dbFreeDmap()
2125 word = (blkno & (BPERDMAP - 1)) >> L2DBWORD; in dbFreeDmap()
2135 dbAllocBits(bmp, dp, blkno, nblocks); in dbFreeDmap()
2164 static void dbAllocBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocBits() argument
2178 dbitno = blkno & (BPERDMAP - 1); in dbAllocBits()
2277 agno = blkno >> bmp->db_agl2size; in dbAllocBits()
2311 static int dbFreeBits(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbFreeBits() argument
2322 dbitno = blkno & (BPERDMAP - 1); in dbFreeBits()
2420 agno = blkno >> bmp->db_agl2size; in dbFreeBits()
2495 dbAdjCtl(struct bmap * bmp, s64 blkno, int newval, int alloc, int level) in dbAdjCtl() argument
2507 lblkno = BLKTOCTL(blkno, bmp->db_l2nbperpage, level); in dbAdjCtl()
2522 leafno = BLKTOCTLLEAF(blkno, dcp->budmin); in dbAdjCtl()
2579 dbAdjCtl(bmp, blkno, dcp->stree[ROOT], alloc, in dbAdjCtl()
3195 int dbAllocBottomUp(struct inode *ip, s64 blkno, s64 nblocks) in dbAllocBottomUp() argument
3207 ASSERT(nblocks <= bmp->db_mapsize - blkno); in dbAllocBottomUp()
3213 for (rem = nblocks; rem > 0; rem -= nb, blkno += nb) { in dbAllocBottomUp()
3220 lblkno = BLKTODMAP(blkno, bmp->db_l2nbperpage); in dbAllocBottomUp()
3231 nb = min(rem, BPERDMAP - (blkno & (BPERDMAP - 1))); in dbAllocBottomUp()
3234 if ((rc = dbAllocDmapBU(bmp, dp, blkno, nb))) { in dbAllocBottomUp()
3250 static int dbAllocDmapBU(struct bmap * bmp, struct dmap * dp, s64 blkno, in dbAllocDmapBU() argument
3266 dbitno = blkno & (BPERDMAP - 1); in dbAllocDmapBU()
3329 agno = blkno >> bmp->db_agl2size; in dbAllocDmapBU()
3347 if ((rc = dbAdjCtl(bmp, blkno, tp->stree[ROOT], 1, 0))) in dbAllocDmapBU()
3348 dbFreeBits(bmp, dp, blkno, nblocks); in dbAllocDmapBU()
3371 int dbExtendFS(struct inode *ipbmap, s64 blkno, s64 nblocks) in dbExtendFS() argument
3386 newsize = blkno + nblocks; in dbExtendFS()
3389 (long long) blkno, (long long) nblocks, (long long) newsize); in dbExtendFS()
3463 k = blkno >> L2MAXL1SIZE; in dbExtendFS()
3465 p = BLKTOL1(blkno, sbi->l2nbperpage); /* L1 page */ in dbExtendFS()
3480 j = (blkno & (MAXL1SIZE - 1)) >> L2MAXL0SIZE; in dbExtendFS()
3482 p = BLKTOL0(blkno, sbi->l2nbperpage); in dbExtendFS()
3512 i = (blkno & (MAXL0SIZE - 1)) >> in dbExtendFS()
3515 p = BLKTODMAP(blkno, in dbExtendFS()
3540 if ((n = blkno & (BPERDMAP - 1))) { in dbExtendFS()
3558 *l0leaf = dbInitDmap(dp, blkno, n); in dbExtendFS()
3569 blkno += n; in dbExtendFS()
3736 int blkno, w, b, r, nw, nb, i; in dbInitDmap() local
3739 blkno = Blkno & (BPERDMAP - 1); in dbInitDmap()
3741 if (blkno == 0) { in dbInitDmap()
3756 w = blkno >> L2DBWORD; in dbInitDmap()
3763 for (r = nblocks; r > 0; r -= nb, blkno += nb) { in dbInitDmap()
3765 b = blkno & (DBWORD - 1); in dbInitDmap()
3796 if (blkno == BPERDMAP) in dbInitDmap()
3800 w = blkno >> L2DBWORD; in dbInitDmap()
3803 b = blkno & (DBWORD - 1); in dbInitDmap()