Lines Matching refs:jnewblk

628 SOFTDEP_TYPE(JNEWBLK, jnewblk, "Journal new block");
726 static int jnewblk_rollforward(struct jnewblk *, struct fs *, struct cg *,
732 static void handle_written_jnewblk(struct jnewblk *);
743 static void jnewblk_write(struct jnewblk *, struct jseg *, uint8_t *);
750 static struct jnewblk *cancel_newblk(struct newblk *, struct worklist *,
760 static int jnewblk_rollback(struct jnewblk *, struct fs *, struct cg *,
801 static void free_jnewblk(struct jnewblk *);
807 static void cancel_jnewblk(struct jnewblk *, struct workhead *);
3448 jnewblk_write(struct jnewblk *jnewblk, in jnewblk_write() argument
3454 jnewblk->jn_jsegdep->jd_seg = jseg; in jnewblk_write()
3457 rec->jb_ino = jnewblk->jn_ino; in jnewblk_write()
3458 rec->jb_blkno = jnewblk->jn_blkno; in jnewblk_write()
3459 rec->jb_lbn = jnewblk->jn_lbn; in jnewblk_write()
3460 rec->jb_frags = jnewblk->jn_frags; in jnewblk_write()
3461 rec->jb_oldfrags = jnewblk->jn_oldfrags; in jnewblk_write()
4105 handle_written_jnewblk(struct jnewblk *jnewblk) in handle_written_jnewblk() argument
4114 jsegdep = jnewblk->jn_jsegdep; in handle_written_jnewblk()
4115 jnewblk->jn_jsegdep = NULL; in handle_written_jnewblk()
4116 if (jnewblk->jn_dep == NULL) in handle_written_jnewblk()
4118 switch (jnewblk->jn_dep->wk_type) { in handle_written_jnewblk()
4126 newblk = WK_NEWBLK(jnewblk->jn_dep); in handle_written_jnewblk()
4141 freefrag = WK_FREEFRAG(jnewblk->jn_dep); in handle_written_jnewblk()
4149 freework = WK_FREEWORK(jnewblk->jn_dep); in handle_written_jnewblk()
4155 jnewblk->jn_dep->wk_type); in handle_written_jnewblk()
4157 jnewblk->jn_dep = NULL; in handle_written_jnewblk()
4158 free_jnewblk(jnewblk); in handle_written_jnewblk()
4687 free_jnewblk(struct jnewblk *jnewblk) in free_jnewblk() argument
4690 if ((jnewblk->jn_state & ALLCOMPLETE) != ALLCOMPLETE) in free_jnewblk()
4692 LIST_REMOVE(jnewblk, jn_deps); in free_jnewblk()
4693 if (jnewblk->jn_dep != NULL) in free_jnewblk()
4695 WORKITEM_FREE(jnewblk, D_JNEWBLK); in free_jnewblk()
4702 cancel_jnewblk(struct jnewblk *jnewblk, struct workhead *wkhd) in cancel_jnewblk() argument
4706 CTR1(KTR_SUJ, "cancel_jnewblk: blkno %jd", jnewblk->jn_blkno); in cancel_jnewblk()
4707 jsegdep = jnewblk->jn_jsegdep; in cancel_jnewblk()
4708 if (jnewblk->jn_jsegdep == NULL || jnewblk->jn_dep == NULL) in cancel_jnewblk()
4710 jnewblk->jn_jsegdep = NULL; in cancel_jnewblk()
4711 jnewblk->jn_dep = NULL; in cancel_jnewblk()
4712 jnewblk->jn_state |= GOINGAWAY; in cancel_jnewblk()
4713 if (jnewblk->jn_state & INPROGRESS) { in cancel_jnewblk()
4714 jnewblk->jn_state &= ~INPROGRESS; in cancel_jnewblk()
4715 WORKLIST_REMOVE(&jnewblk->jn_list); in cancel_jnewblk()
4719 remove_from_journal(&jnewblk->jn_list); in cancel_jnewblk()
4721 wake_worklist(&jnewblk->jn_list); in cancel_jnewblk()
4722 WORKLIST_INSERT(wkhd, &jnewblk->jn_list); in cancel_jnewblk()
5308 struct jnewblk *jnewblk; in softdep_setup_blkmapdep() local
5316 jnewblk = NULL; in softdep_setup_blkmapdep()
5323 jnewblk = malloc(sizeof(*jnewblk), M_JNEWBLK, M_SOFTDEP_FLAGS); in softdep_setup_blkmapdep()
5324 workitem_alloc(&jnewblk->jn_list, D_JNEWBLK, mp); in softdep_setup_blkmapdep()
5325 jnewblk->jn_jsegdep = newjsegdep(&jnewblk->jn_list); in softdep_setup_blkmapdep()
5326 jnewblk->jn_state = ATTACHED; in softdep_setup_blkmapdep()
5327 jnewblk->jn_blkno = newblkno; in softdep_setup_blkmapdep()
5328 jnewblk->jn_frags = frags; in softdep_setup_blkmapdep()
5329 jnewblk->jn_oldfrags = oldfrags; in softdep_setup_blkmapdep()
5339 bno = dtogd(fs, jnewblk->jn_blkno); in softdep_setup_blkmapdep()
5340 for (i = jnewblk->jn_oldfrags; i < jnewblk->jn_frags; in softdep_setup_blkmapdep()
5346 jnewblk->jn_oldfrags, in softdep_setup_blkmapdep()
5347 jnewblk->jn_frags, in softdep_setup_blkmapdep()
5348 jnewblk->jn_state, in softdep_setup_blkmapdep()
5349 jnewblk->jn_dep); in softdep_setup_blkmapdep()
5363 if (jnewblk) { in softdep_setup_blkmapdep()
5364 jnewblk->jn_dep = (struct worklist *)newblk; in softdep_setup_blkmapdep()
5365 LIST_INSERT_HEAD(&bmsafemap->sm_jnewblkhd, jnewblk, jn_deps); in softdep_setup_blkmapdep()
5371 newblk->nb_jnewblk = jnewblk; in softdep_setup_blkmapdep()
5506 struct jnewblk *jnewblk; in softdep_setup_allocdirect() local
5580 if ((jnewblk = newblk->nb_jnewblk) != NULL) { in softdep_setup_allocdirect()
5581 jnewblk->jn_ino = ip->i_number; in softdep_setup_allocdirect()
5582 jnewblk->jn_lbn = lbn; in softdep_setup_allocdirect()
5583 add_to_journal(&jnewblk->jn_list); in softdep_setup_allocdirect()
5641 struct jnewblk *njnewblk; in jnewblk_merge()
5642 struct jnewblk *jnewblk; in jnewblk_merge() local
5664 jnewblk = WK_JNEWBLK(old); in jnewblk_merge()
5666 if (jnewblk->jn_blkno != njnewblk->jn_blkno) in jnewblk_merge()
5671 if (jnewblk->jn_state & UNDONE) { in jnewblk_merge()
5672 jnewblk->jn_state &= ~UNDONE; in jnewblk_merge()
5682 jnewblk->jn_state |= ATTACHED | COMPLETE; in jnewblk_merge()
5683 njnewblk->jn_oldfrags = jnewblk->jn_oldfrags; in jnewblk_merge()
5684 cancel_jnewblk(jnewblk, wkhd); in jnewblk_merge()
5685 WORKLIST_REMOVE(&jnewblk->jn_list); in jnewblk_merge()
5686 free_jnewblk(jnewblk); in jnewblk_merge()
5757 newadp->ad_block.nb_jnewblk = (struct jnewblk *) in allocdirect_merge()
5901 struct jnewblk *jnewblk; in softdep_setup_allocext() local
5955 if ((jnewblk = newblk->nb_jnewblk) != NULL) { in softdep_setup_allocext()
5956 jnewblk->jn_ino = ip->i_number; in softdep_setup_allocext()
5957 jnewblk->jn_lbn = lbn; in softdep_setup_allocext()
5958 add_to_journal(&jnewblk->jn_list); in softdep_setup_allocext()
6041 struct jnewblk *jnewblk; in newallocindir() local
6059 if ((jnewblk = newblk->nb_jnewblk) != NULL) { in newallocindir()
6060 jnewblk->jn_ino = ip->i_number; in newallocindir()
6061 jnewblk->jn_lbn = lbn; in newallocindir()
6062 add_to_journal(&jnewblk->jn_list); in newallocindir()
7633 static struct jnewblk *
7639 struct jnewblk *jnewblk; in cancel_newblk() local
7664 jnewblk = newblk->nb_jnewblk; in cancel_newblk()
7665 if (jnewblk != NULL && wk != NULL) { in cancel_newblk()
7667 jnewblk->jn_dep = wk; in cancel_newblk()
7680 return (jnewblk); in cancel_newblk()
7971 struct jnewblk *jnewblk; in freework_freeblock() local
8010 jnewblk = freework->fw_jnewblk; in freework_freeblock()
8011 if (jnewblk != NULL) { in freework_freeblock()
8012 cancel_jnewblk(jnewblk, &wkhd); in freework_freeblock()
10992 struct jnewblk *jnewblk; in softdep_setup_blkfree() local
11032 jnewblk = WK_JNEWBLK(wk); in softdep_setup_blkfree()
11033 KASSERT(jnewblk->jn_state & GOINGAWAY, in softdep_setup_blkfree()
11043 bno = dtogd(fs, jnewblk->jn_blkno); in softdep_setup_blkfree()
11044 for (i = jnewblk->jn_oldfrags; in softdep_setup_blkfree()
11045 i < jnewblk->jn_frags; i++) { in softdep_setup_blkfree()
11050 (uintmax_t)jnewblk->jn_blkno); in softdep_setup_blkfree()
11059 free_jnewblk(jnewblk); in softdep_setup_blkfree()
11071 LIST_FOREACH(jnewblk, &bmsafemap->sm_jnewblkhd, jn_deps) { in softdep_setup_blkfree()
11076 if ((jnewblk->jn_state & (ATTACHED | COMPLETE | DEPCOMPLETE)) == in softdep_setup_blkfree()
11079 jstart = jnewblk->jn_blkno + jnewblk->jn_oldfrags; in softdep_setup_blkfree()
11080 jend = jnewblk->jn_blkno + jnewblk->jn_frags; in softdep_setup_blkfree()
11084 jnewblk->jn_state, jnewblk->jn_blkno, in softdep_setup_blkfree()
11085 jnewblk->jn_oldfrags, jnewblk->jn_frags, in softdep_setup_blkfree()
11086 jnewblk->jn_dep); in softdep_setup_blkfree()
11102 struct jnewblk *jnewblk, in jnewblk_rollback() argument
11113 cgbno = dtogd(fs, jnewblk->jn_blkno); in jnewblk_rollback()
11118 for (i = jnewblk->jn_oldfrags; i < jnewblk->jn_frags; i++) in jnewblk_rollback()
11133 cgbno += jnewblk->jn_oldfrags; in jnewblk_rollback()
11154 jnewblk->jn_state &= ~ATTACHED; in jnewblk_rollback()
11155 jnewblk->jn_state |= UNDONE; in jnewblk_rollback()
11166 struct jnewblk *jnewblk; in initiate_write_bmsafemap() local
11209 LIST_FOREACH(jnewblk, &bmsafemap->sm_jnewblkhd, jn_deps) { in initiate_write_bmsafemap()
11210 if (jnewblk_rollback(jnewblk, fs, cgp, blksfree)) in initiate_write_bmsafemap()
11213 "marked free", jnewblk->jn_blkno); in initiate_write_bmsafemap()
12079 struct jnewblk *jnewblk, in jnewblk_rollforward() argument
12091 cgbno = dtogd(fs, jnewblk->jn_blkno); in jnewblk_rollforward()
12092 for (i = jnewblk->jn_oldfrags; i < jnewblk->jn_frags; i++) { in jnewblk_rollforward()
12104 cgbno += jnewblk->jn_oldfrags; in jnewblk_rollforward()
12144 struct jnewblk *jnewblk, *jntmp; in handle_written_bmsafemap() local
12205 LIST_FOREACH_SAFE(jnewblk, &bmsafemap->sm_jnewblkhd, jn_deps, in handle_written_bmsafemap()
12207 if ((jnewblk->jn_state & UNDONE) == 0) in handle_written_bmsafemap()
12211 jnewblk_rollforward(jnewblk, fs, cgp, blksfree)) in handle_written_bmsafemap()
12213 jnewblk->jn_state &= ~(UNDONE | NEWBLOCK); in handle_written_bmsafemap()
12214 jnewblk->jn_state |= ATTACHED; in handle_written_bmsafemap()
12215 free_jnewblk(jnewblk); in handle_written_bmsafemap()