jmvref
struct jmvref *jmvref;
while ((jmvref = LIST_FIRST(&pagedep->pd_jmvrefhd)) != NULL)
jwait(&jmvref->jm_list, MNT_WAIT);
jmvref_write(struct jmvref *jmvref,
rec->jm_ino = jmvref->jm_ino;
rec->jm_parent = jmvref->jm_parent;
rec->jm_oldoff = jmvref->jm_oldoff;
rec->jm_newoff = jmvref->jm_newoff;
struct jmvref *jmvref;
jmvref = WK_JMVREF(wk);
LIST_REMOVE(jmvref, jm_deps);
if ((jmvref->jm_pagedep->pd_state & ONWORKLIST) == 0)
free_pagedep(jmvref->jm_pagedep);
WORKITEM_FREE(jmvref, D_JMVREF);
static struct jmvref *
struct jmvref *jmvref;
jmvref = malloc(sizeof(*jmvref), M_JMVREF, M_SOFTDEP_FLAGS);
workitem_alloc(&jmvref->jm_list, D_JMVREF, ITOVFS(dp));
jmvref->jm_list.wk_state = ATTACHED | DEPCOMPLETE;
jmvref->jm_parent = dp->i_number;
jmvref->jm_ino = ino;
jmvref->jm_oldoff = oldoff;
jmvref->jm_newoff = newoff;
return (jmvref);
SOFTDEP_TYPE(JMVREF, jmvref, "Journal inode ref move");
static void jmvref_write(struct jmvref *, struct jseg *, uint8_t *);
struct jmvref *jmvref;
while ((jmvref = LIST_FIRST(&pagedep->pd_jmvrefhd)) != NULL) {
jwait(&jmvref->jm_list, MNT_WAIT);
struct jmvref *jmvref;
jmvref = NULL;
jmvref = newjmvref(dp, de->d_ino,
if (jmvref) {
jmvref->jm_pagedep = pagedep;
LIST_INSERT_HEAD(&pagedep->pd_jmvrefhd, jmvref, jm_deps);
add_to_journal(&jmvref->jm_list);
static struct jmvref *newjmvref(struct inode *, ino_t, off_t, off_t);
#define WK_JMVREF(wk) ((struct jmvref *)(wk))
LIST_HEAD(jmvrefhd, jmvref);
LIST_ENTRY(jmvref) jm_deps; /* Jmvref on pagedep. */