Lines Matching refs:jfreefrag

671 SOFTDEP_TYPE(JFREEFRAG, jfreefrag, "Journal free frag");
774 static void handle_written_jfreefrag(struct jfreefrag *);
785 static void jfreefrag_write(struct jfreefrag *, struct jseg *, uint8_t *);
843 static void free_jfreefrag(struct jfreefrag *);
850 static void cancel_jfreefrag(struct jfreefrag *);
949 static struct jfreefrag *newjfreefrag(struct freefrag *, struct inode *,
3194 jfreefrag_write(jfreefrag, jseg, data)
3195 struct jfreefrag *jfreefrag;
3201 jfreefrag->fr_jsegdep->jd_seg = jseg;
3204 rec->jb_ino = jfreefrag->fr_ino;
3205 rec->jb_blkno = jfreefrag->fr_blkno;
3206 rec->jb_lbn = jfreefrag->fr_lbn;
3207 rec->jb_frags = jfreefrag->fr_frags;
3883 * Cancel a jfreefrag that won't be needed, probably due to colliding with
3889 cancel_jfreefrag(jfreefrag)
3890 struct jfreefrag *jfreefrag;
3894 if (jfreefrag->fr_jsegdep) {
3895 free_jsegdep(jfreefrag->fr_jsegdep);
3896 jfreefrag->fr_jsegdep = NULL;
3898 freefrag = jfreefrag->fr_freefrag;
3899 jfreefrag->fr_freefrag = NULL;
3900 free_jfreefrag(jfreefrag);
3906 * Free a jfreefrag when the parent freefrag is rendered obsolete.
3909 free_jfreefrag(jfreefrag)
3910 struct jfreefrag *jfreefrag;
3913 if (jfreefrag->fr_state & INPROGRESS)
3914 WORKLIST_REMOVE(&jfreefrag->fr_list);
3915 else if (jfreefrag->fr_state & ONWORKLIST)
3916 remove_from_journal(&jfreefrag->fr_list);
3917 if (jfreefrag->fr_freefrag != NULL)
3919 WORKITEM_FREE(jfreefrag, D_JFREEFRAG);
3923 * Called when the journal write for a jfreefrag completes. The parent
3927 handle_written_jfreefrag(jfreefrag)
3928 struct jfreefrag *jfreefrag;
3934 jsegdep = jfreefrag->fr_jsegdep;
3935 jfreefrag->fr_jsegdep = NULL;
3936 freefrag = jfreefrag->fr_freefrag;
3944 jfreefrag->fr_freefrag = NULL;
3945 free_jfreefrag(jfreefrag);
5422 /* Replace a jfreefrag with a jnewblk. */
5547 * Allocate a jfreefrag structure to journal a single block free.
5549 static struct jfreefrag *
5557 struct jfreefrag *jfreefrag;
5561 jfreefrag = malloc(sizeof(struct jfreefrag), M_JFREEFRAG,
5563 workitem_alloc(&jfreefrag->fr_list, D_JFREEFRAG, ITOVFS(ip));
5564 jfreefrag->fr_jsegdep = newjsegdep(&jfreefrag->fr_list);
5565 jfreefrag->fr_state = ATTACHED | DEPCOMPLETE;
5566 jfreefrag->fr_ino = ip->i_number;
5567 jfreefrag->fr_lbn = lbn;
5568 jfreefrag->fr_blkno = blkno;
5569 jfreefrag->fr_frags = numfrags(fs, size);
5570 jfreefrag->fr_freefrag = freefrag;
5572 return (jfreefrag);