newblk
ufs_daddr_t lastbn, newblk;
if ((newblk = allocblk(sblock.fs_frag)) == 0)
dp->di_db[lastbn] = newblk;
bp = getdirblk(newblk, sblock.fs_bsize);
freeblk(newblk, sblock.fs_frag);
e2fs_daddr_t newblk, blkno;
if ((newblk = (e2fs_daddr_t)ext2_hashalloc(ip, dtog(fs, pref), pref,
blkno = newblk;
for (blkno = newblk, i = 0; i < len; i++, blkno += fs->e2fs_fpb) {
ufs_daddr_t start_lbn, end_lbn, soff, newblk, blkno;
if ((newblk = (ufs_daddr_t)ffs_hashalloc(ip, dtog(fs, pref), (long)pref,
blkno = newblk;
for (blkno = newblk, i = 0; i < len; i++, blkno += fs->fs_frag) {
struct newblk **newblkpp)
struct newblk *newblk;
newblk = kmalloc(sizeof(struct newblk), M_NEWBLK,
kfree(newblk, M_NEWBLK);
newblk->nb_state = 0;
newblk->nb_fs = fs;
newblk->nb_newblkno = newblkno;
LIST_INSERT_HEAD(newblkhd, newblk, nb_hash);
*newblkpp = newblk;
struct newblk *newblk;
if (newblk_lookup(fs, newblkno, DEPALLOC, &newblk) != 0)
newblk->nb_bmsafemap = bmsafemap = bmsafemap_lookup(bp);
LIST_INSERT_HEAD(&bmsafemap->sm_newblkhd, newblk, nb_deps);
struct newblk *newblk;
if (newblk_lookup(ip->i_fs, newblkno, 0, &newblk) == 0)
if (newblk->nb_state == DEPCOMPLETE) {
bmsafemap = newblk->nb_bmsafemap;
LIST_REMOVE(newblk, nb_deps);
LIST_REMOVE(newblk, nb_hash);
kfree(newblk, M_NEWBLK);
struct newblk *newblk;
&newblk) == 0)
if (newblk->nb_state == DEPCOMPLETE) {
bmsafemap = newblk->nb_bmsafemap;
LIST_REMOVE(newblk, nb_deps);
LIST_REMOVE(newblk, nb_hash);
kfree(newblk, M_NEWBLK);
struct newblk **);
struct newblk *newblk;
while ((newblk = LIST_FIRST(&bmsafemap->sm_newblkhd))) {
newblk->nb_state |= DEPCOMPLETE;
newblk->nb_bmsafemap = NULL;
LIST_REMOVE(newblk, nb_deps);
LIST_HEAD(newblk_hashhead, newblk) *newblk_hashtbl;
struct newblk *
struct newblk *newblk;
LIST_FOREACH(newblk, newblkhd, nb_hash) {
if (newblkno == newblk->nb_newblkno && fs == newblk->nb_fs)
return (newblk);
#define WK_NEWBLK(wk) ((struct newblk *)(wk))
LIST_HEAD(newblkhd, newblk);
LIST_ENTRY(newblk) nb_hash; /* hashed lookup */
LIST_ENTRY(newblk) nb_deps; /* bmsafemap's list of newblk's */