jfreefrag
jfreefrag_write(struct jfreefrag *jfreefrag,
jfreefrag->fr_jsegdep->jd_seg = jseg;
rec->jb_ino = jfreefrag->fr_ino;
rec->jb_blkno = jfreefrag->fr_blkno;
rec->jb_lbn = jfreefrag->fr_lbn;
rec->jb_frags = jfreefrag->fr_frags;
cancel_jfreefrag(struct jfreefrag *jfreefrag)
if (jfreefrag->fr_jsegdep) {
free_jsegdep(jfreefrag->fr_jsegdep);
jfreefrag->fr_jsegdep = NULL;
freefrag = jfreefrag->fr_freefrag;
jfreefrag->fr_freefrag = NULL;
free_jfreefrag(jfreefrag);
free_jfreefrag(struct jfreefrag *jfreefrag)
if (jfreefrag->fr_state & INPROGRESS)
WORKLIST_REMOVE(&jfreefrag->fr_list);
else if (jfreefrag->fr_state & ONWORKLIST)
remove_from_journal(&jfreefrag->fr_list);
if (jfreefrag->fr_freefrag != NULL)
WORKITEM_FREE(jfreefrag, D_JFREEFRAG);
handle_written_jfreefrag(struct jfreefrag *jfreefrag)
jsegdep = jfreefrag->fr_jsegdep;
jfreefrag->fr_jsegdep = NULL;
freefrag = jfreefrag->fr_freefrag;
jfreefrag->fr_freefrag = NULL;
free_jfreefrag(jfreefrag);
static struct jfreefrag *
struct jfreefrag *jfreefrag;
jfreefrag = malloc(sizeof(struct jfreefrag), M_JFREEFRAG,
workitem_alloc(&jfreefrag->fr_list, D_JFREEFRAG, ITOVFS(ip));
jfreefrag->fr_jsegdep = newjsegdep(&jfreefrag->fr_list);
jfreefrag->fr_state = ATTACHED | DEPCOMPLETE;
jfreefrag->fr_ino = ip->i_number;
jfreefrag->fr_lbn = lbn;
jfreefrag->fr_blkno = blkno;
jfreefrag->fr_frags = numfrags(fs, size);
jfreefrag->fr_freefrag = freefrag;
return (jfreefrag);
SOFTDEP_TYPE(JFREEFRAG, jfreefrag, "Journal free frag");
static void handle_written_jfreefrag(struct jfreefrag *);
static void jfreefrag_write(struct jfreefrag *, struct jseg *, uint8_t *);
static void free_jfreefrag(struct jfreefrag *);
static void cancel_jfreefrag(struct jfreefrag *);
static struct jfreefrag *newjfreefrag(struct freefrag *, struct inode *,
#define WK_JFREEFRAG(wk) ((struct jfreefrag *)(wk))