sys/ufs/ffs/ffs_softdep.c
11165
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
11187
LIST_FOREACH(jaddref, &bmsafemap->sm_jaddrefhd, ja_bmdeps) {
sys/ufs/ffs/ffs_softdep.c
11188
ino = jaddref->ja_ino % fs->fs_ipg;
sys/ufs/ffs/ffs_softdep.c
11190
if ((jaddref->ja_mode & IFMT) == IFDIR)
sys/ufs/ffs/ffs_softdep.c
11194
jaddref->ja_state &= ~ATTACHED;
sys/ufs/ffs/ffs_softdep.c
11195
jaddref->ja_state |= UNDONE;
sys/ufs/ffs/ffs_softdep.c
11199
"marked free", (uintmax_t)jaddref->ja_ino);
sys/ufs/ffs/ffs_softdep.c
11572
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
11634
jaddref = WK_JADDREF(wk);
sys/ufs/ffs/ffs_softdep.c
11635
TAILQ_REMOVE(&inodedep->id_inoreflst, &jaddref->ja_ref,
sys/ufs/ffs/ffs_softdep.c
11643
free_jaddref(jaddref);
sys/ufs/ffs/ffs_softdep.c
12143
struct jaddref *jaddref, *jatmp;
sys/ufs/ffs/ffs_softdep.c
12177
LIST_FOREACH_SAFE(jaddref, &bmsafemap->sm_jaddrefhd,
sys/ufs/ffs/ffs_softdep.c
12179
if ((jaddref->ja_state & UNDONE) == 0)
sys/ufs/ffs/ffs_softdep.c
12181
ino = jaddref->ja_ino % fs->fs_ipg;
sys/ufs/ffs/ffs_softdep.c
12187
if ((jaddref->ja_mode & IFMT) == IFDIR)
sys/ufs/ffs/ffs_softdep.c
12193
jaddref->ja_state &= ~UNDONE;
sys/ufs/ffs/ffs_softdep.c
12194
jaddref->ja_state |= ATTACHED;
sys/ufs/ffs/ffs_softdep.c
12195
free_jaddref(jaddref);
sys/ufs/ffs/ffs_softdep.c
3409
jaddref_write(struct jaddref *jaddref,
sys/ufs/ffs/ffs_softdep.c
3417
inoref_write(&jaddref->ja_ref, jseg, rec);
sys/ufs/ffs/ffs_softdep.c
4044
handle_written_jaddref(struct jaddref *jaddref)
sys/ufs/ffs/ffs_softdep.c
4052
jsegdep = inoref_jseg(&jaddref->ja_ref);
sys/ufs/ffs/ffs_softdep.c
4055
if (inodedep_lookup(jaddref->ja_list.wk_mp, jaddref->ja_ino,
sys/ufs/ffs/ffs_softdep.c
4058
if (jaddref->ja_diradd == NULL)
sys/ufs/ffs/ffs_softdep.c
4060
if (jaddref->ja_diradd->da_list.wk_type == D_DIRADD) {
sys/ufs/ffs/ffs_softdep.c
4061
diradd = jaddref->ja_diradd;
sys/ufs/ffs/ffs_softdep.c
4063
} else if (jaddref->ja_state & MKDIR_PARENT) {
sys/ufs/ffs/ffs_softdep.c
4064
mkdir = jaddref->ja_mkdir;
sys/ufs/ffs/ffs_softdep.c
4066
} else if (jaddref->ja_state & MKDIR_BODY)
sys/ufs/ffs/ffs_softdep.c
4067
mkdir = jaddref->ja_mkdir;
sys/ufs/ffs/ffs_softdep.c
4070
jaddref->ja_diradd);
sys/ufs/ffs/ffs_softdep.c
4071
jaddref->ja_diradd = NULL; /* also clears ja_mkdir */
sys/ufs/ffs/ffs_softdep.c
4075
TAILQ_REMOVE(&inodedep->id_inoreflst, &jaddref->ja_ref, if_deps);
sys/ufs/ffs/ffs_softdep.c
4089
if (jaddref->ja_state & NEWBLOCK) {
sys/ufs/ffs/ffs_softdep.c
4094
free_jaddref(jaddref);
sys/ufs/ffs/ffs_softdep.c
4336
static struct jaddref *
sys/ufs/ffs/ffs_softdep.c
4343
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
4345
jaddref = malloc(sizeof(*jaddref), M_JADDREF, M_SOFTDEP_FLAGS);
sys/ufs/ffs/ffs_softdep.c
4346
workitem_alloc(&jaddref->ja_list, D_JADDREF, ITOVFS(dp));
sys/ufs/ffs/ffs_softdep.c
4347
jaddref->ja_state = ATTACHED;
sys/ufs/ffs/ffs_softdep.c
4348
jaddref->ja_mkdir = NULL;
sys/ufs/ffs/ffs_softdep.c
4349
newinoref(&jaddref->ja_ref, ino, dp->i_number, diroff, nlink, mode);
sys/ufs/ffs/ffs_softdep.c
4351
return (jaddref);
sys/ufs/ffs/ffs_softdep.c
4536
move_newblock_dep(struct jaddref *jaddref, struct inodedep *inodedep)
sys/ufs/ffs/ffs_softdep.c
4539
struct jaddref *jaddrefn;
sys/ufs/ffs/ffs_softdep.c
4542
for (inoref = TAILQ_NEXT(&jaddref->ja_ref, if_deps); inoref;
sys/ufs/ffs/ffs_softdep.c
4544
if ((jaddref->ja_state & NEWBLOCK) &&
sys/ufs/ffs/ffs_softdep.c
4546
jaddrefn = (struct jaddref *)inoref;
sys/ufs/ffs/ffs_softdep.c
4553
jaddrefn->ja_state |= jaddref->ja_state &
sys/ufs/ffs/ffs_softdep.c
4555
jaddref->ja_state &= ~(ATTACHED | UNDONE | NEWBLOCK);
sys/ufs/ffs/ffs_softdep.c
4556
jaddref->ja_state |= ATTACHED;
sys/ufs/ffs/ffs_softdep.c
4557
LIST_REMOVE(jaddref, ja_bmdeps);
sys/ufs/ffs/ffs_softdep.c
4574
cancel_jaddref(struct jaddref *jaddref,
sys/ufs/ffs/ffs_softdep.c
4582
KASSERT((jaddref->ja_state & COMPLETE) == 0,
sys/ufs/ffs/ffs_softdep.c
4584
if (jaddref->ja_state & (INPROGRESS | COMPLETE))
sys/ufs/ffs/ffs_softdep.c
4589
if (inodedep_lookup(jaddref->ja_list.wk_mp, jaddref->ja_ino,
sys/ufs/ffs/ffs_softdep.c
4598
for (inoref = TAILQ_NEXT(&jaddref->ja_ref, if_deps); inoref;
sys/ufs/ffs/ffs_softdep.c
4605
jsegdep = inoref_jseg(&jaddref->ja_ref);
sys/ufs/ffs/ffs_softdep.c
4606
if (jaddref->ja_state & NEWBLOCK)
sys/ufs/ffs/ffs_softdep.c
4607
move_newblock_dep(jaddref, inodedep);
sys/ufs/ffs/ffs_softdep.c
4608
wake_worklist(&jaddref->ja_list);
sys/ufs/ffs/ffs_softdep.c
4609
jaddref->ja_mkdir = NULL;
sys/ufs/ffs/ffs_softdep.c
4610
if (jaddref->ja_state & INPROGRESS) {
sys/ufs/ffs/ffs_softdep.c
4611
jaddref->ja_state &= ~INPROGRESS;
sys/ufs/ffs/ffs_softdep.c
4612
WORKLIST_REMOVE(&jaddref->ja_list);
sys/ufs/ffs/ffs_softdep.c
4616
if (jaddref->ja_state & DEPCOMPLETE)
sys/ufs/ffs/ffs_softdep.c
4617
remove_from_journal(&jaddref->ja_list);
sys/ufs/ffs/ffs_softdep.c
4619
jaddref->ja_state |= (GOINGAWAY | DEPCOMPLETE);
sys/ufs/ffs/ffs_softdep.c
4626
if ((jaddref->ja_state & NEWBLOCK) == 0) {
sys/ufs/ffs/ffs_softdep.c
4627
TAILQ_REMOVE(&inodedep->id_inoreflst, &jaddref->ja_ref,
sys/ufs/ffs/ffs_softdep.c
4629
jaddref->ja_state |= COMPLETE;
sys/ufs/ffs/ffs_softdep.c
4630
free_jaddref(jaddref);
sys/ufs/ffs/ffs_softdep.c
4637
jaddref->ja_state |= ONWORKLIST;
sys/ufs/ffs/ffs_softdep.c
4638
LIST_INSERT_AFTER(LIST_FIRST(wkhd), &jaddref->ja_list, wk_list);
sys/ufs/ffs/ffs_softdep.c
4640
WORKLIST_INSERT(wkhd, &jaddref->ja_list);
sys/ufs/ffs/ffs_softdep.c
4651
free_jaddref(struct jaddref *jaddref)
sys/ufs/ffs/ffs_softdep.c
4654
if ((jaddref->ja_state & ALLCOMPLETE) != ALLCOMPLETE)
sys/ufs/ffs/ffs_softdep.c
4656
if (jaddref->ja_ref.if_jsegdep)
sys/ufs/ffs/ffs_softdep.c
4658
jaddref, jaddref->ja_state);
sys/ufs/ffs/ffs_softdep.c
4659
if (jaddref->ja_state & NEWBLOCK)
sys/ufs/ffs/ffs_softdep.c
4660
LIST_REMOVE(jaddref, ja_bmdeps);
sys/ufs/ffs/ffs_softdep.c
4661
if (jaddref->ja_state & (INPROGRESS | ONWORKLIST))
sys/ufs/ffs/ffs_softdep.c
4663
jaddref, jaddref->ja_state);
sys/ufs/ffs/ffs_softdep.c
4664
if (jaddref->ja_mkdir != NULL)
sys/ufs/ffs/ffs_softdep.c
4665
panic("free_jaddref: Work pending, 0x%X\n", jaddref->ja_state);
sys/ufs/ffs/ffs_softdep.c
4666
WORKITEM_FREE(jaddref, D_JADDREF);
sys/ufs/ffs/ffs_softdep.c
4927
struct jaddref *jaddref __diagused;
sys/ufs/ffs/ffs_softdep.c
4938
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
4940
KASSERT(jaddref != NULL && jaddref->ja_parent == dp->i_number,
sys/ufs/ffs/ffs_softdep.c
4956
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
4962
jaddref = NULL;
sys/ufs/ffs/ffs_softdep.c
4968
jaddref = newjaddref(ip, dp->i_number, DOTDOT_OFFSET,
sys/ufs/ffs/ffs_softdep.c
4972
if (jaddref)
sys/ufs/ffs/ffs_softdep.c
4973
TAILQ_INSERT_TAIL(&inodedep->id_inoreflst, &jaddref->ja_ref,
sys/ufs/ffs/ffs_softdep.c
4988
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
4994
jaddref = NULL;
sys/ufs/ffs/ffs_softdep.c
4996
jaddref = newjaddref(dp, ip->i_number, 0, ip->i_effnlink - 1,
sys/ufs/ffs/ffs_softdep.c
5000
if (jaddref)
sys/ufs/ffs/ffs_softdep.c
5001
TAILQ_INSERT_TAIL(&inodedep->id_inoreflst, &jaddref->ja_ref,
sys/ufs/ffs/ffs_softdep.c
5016
struct jaddref *dotdotaddref;
sys/ufs/ffs/ffs_softdep.c
5017
struct jaddref *dotaddref;
sys/ufs/ffs/ffs_softdep.c
5018
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
5036
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
5038
KASSERT(jaddref != NULL,
sys/ufs/ffs/ffs_softdep.c
5040
KASSERT(jaddref->ja_parent == dp->i_number,
sys/ufs/ffs/ffs_softdep.c
5042
(uintmax_t)jaddref->ja_parent));
sys/ufs/ffs/ffs_softdep.c
5043
TAILQ_INSERT_BEFORE(&jaddref->ja_ref, &dotaddref->ja_ref,
sys/ufs/ffs/ffs_softdep.c
5093
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
5102
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
5104
KASSERT(jaddref->ja_parent == dp->i_number,
sys/ufs/ffs/ffs_softdep.c
5106
cancel_jaddref(jaddref, inodedep, &inodedep->id_inowait);
sys/ufs/ffs/ffs_softdep.c
5119
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
5128
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
5130
KASSERT(jaddref->ja_parent == dp->i_number,
sys/ufs/ffs/ffs_softdep.c
5132
cancel_jaddref(jaddref, inodedep, &inodedep->id_inowait);
sys/ufs/ffs/ffs_softdep.c
5145
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
5146
struct jaddref *dotaddref;
sys/ufs/ffs/ffs_softdep.c
5156
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
5158
KASSERT(jaddref->ja_parent == ip->i_number,
sys/ufs/ffs/ffs_softdep.c
5160
cancel_jaddref(jaddref, inodedep, &inodedep->id_inowait);
sys/ufs/ffs/ffs_softdep.c
5164
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
5166
KASSERT(jaddref->ja_parent == dp->i_number,
sys/ufs/ffs/ffs_softdep.c
5168
dotaddref = (struct jaddref *)TAILQ_PREV(&jaddref->ja_ref,
sys/ufs/ffs/ffs_softdep.c
5170
cancel_jaddref(jaddref, inodedep, &inodedep->id_inowait);
sys/ufs/ffs/ffs_softdep.c
5237
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
5245
jaddref = NULL;
sys/ufs/ffs/ffs_softdep.c
5252
jaddref = newjaddref(ip, newinum, 0, 0, mode);
sys/ufs/ffs/ffs_softdep.c
5253
jaddref->ja_state |= NEWBLOCK;
sys/ufs/ffs/ffs_softdep.c
5281
if (jaddref) {
sys/ufs/ffs/ffs_softdep.c
5282
LIST_INSERT_HEAD(&bmsafemap->sm_jaddrefhd, jaddref, ja_bmdeps);
sys/ufs/ffs/ffs_softdep.c
5283
TAILQ_INSERT_TAIL(&inodedep->id_inoreflst, &jaddref->ja_ref,
sys/ufs/ffs/ffs_softdep.c
625
SOFTDEP_TYPE(JADDREF, jaddref, "Journal inode ref add");
sys/ufs/ffs/ffs_softdep.c
729
static void handle_written_jaddref(struct jaddref *);
sys/ufs/ffs/ffs_softdep.c
738
static void jaddref_write(struct jaddref *, struct jseg *, uint8_t *);
sys/ufs/ffs/ffs_softdep.c
796
static void free_jaddref(struct jaddref *);
sys/ufs/ffs/ffs_softdep.c
808
static int cancel_jaddref(struct jaddref *, struct inodedep *,
sys/ufs/ffs/ffs_softdep.c
8592
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
8655
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
8657
KASSERT(jaddref != NULL && jaddref->ja_parent == newinum &&
sys/ufs/ffs/ffs_softdep.c
8658
(jaddref->ja_state & MKDIR_PARENT),
sys/ufs/ffs/ffs_softdep.c
8659
("setup_newdir: bad dotdot jaddref %p", jaddref));
sys/ufs/ffs/ffs_softdep.c
8661
mkdir2->md_jaddref = jaddref;
sys/ufs/ffs/ffs_softdep.c
8662
jaddref->ja_mkdir = mkdir2;
sys/ufs/ffs/ffs_softdep.c
8718
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
8735
jaddref = NULL;
sys/ufs/ffs/ffs_softdep.c
8790
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
8792
KASSERT(jaddref != NULL && jaddref->ja_parent == dp->i_number,
sys/ufs/ffs/ffs_softdep.c
8793
("softdep_setup_directory_add: bad jaddref %p", jaddref));
sys/ufs/ffs/ffs_softdep.c
8794
jaddref->ja_diroff = diroffset;
sys/ufs/ffs/ffs_softdep.c
8795
jaddref->ja_diradd = dap;
sys/ufs/ffs/ffs_softdep.c
8796
add_to_journal(&jaddref->ja_list);
sys/ufs/ffs/ffs_softdep.c
8806
jaddref = (struct jaddref *)TAILQ_PREV(&jaddref->ja_ref,
sys/ufs/ffs/ffs_softdep.c
8808
KASSERT(jaddref != NULL &&
sys/ufs/ffs/ffs_softdep.c
8809
jaddref->ja_ino == jaddref->ja_parent &&
sys/ufs/ffs/ffs_softdep.c
8810
(jaddref->ja_state & MKDIR_BODY),
sys/ufs/ffs/ffs_softdep.c
8812
jaddref));
sys/ufs/ffs/ffs_softdep.c
8813
mkdir1->md_jaddref = jaddref;
sys/ufs/ffs/ffs_softdep.c
8814
jaddref->ja_mkdir = mkdir1;
sys/ufs/ffs/ffs_softdep.c
8823
add_to_journal(&jaddref->ja_list);
sys/ufs/ffs/ffs_softdep.c
896
static struct jaddref *newjaddref(struct inode *, ino_t, off_t, int16_t,
sys/ufs/ffs/ffs_softdep.c
9018
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
9041
jaddref = (struct jaddref *)inoref;
sys/ufs/ffs/ffs_softdep.c
9042
if (jaddref->ja_diradd != dap)
sys/ufs/ffs/ffs_softdep.c
9044
if (cancel_jaddref(jaddref, inodedep,
sys/ufs/ffs/ffs_softdep.c
906
static void move_newblock_dep(struct jaddref *, struct inodedep *);
sys/ufs/ffs/ffs_softdep.c
9061
if ((jaddref = mkdir->md_jaddref) == NULL)
sys/ufs/ffs/ffs_softdep.c
9065
if (cancel_jaddref(jaddref, NULL,
sys/ufs/ffs/ffs_softdep.c
9071
if (cancel_jaddref(jaddref, inodedep,
sys/ufs/ffs/ffs_softdep.c
9285
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
9304
if ((jaddref = mkdir->md_jaddref) != NULL) {
sys/ufs/ffs/ffs_softdep.c
9306
jaddref->ja_state &= ~MKDIR_PARENT;
sys/ufs/ffs/ffs_softdep.c
9307
if (inodedep_lookup(mp, jaddref->ja_ino, 0, &inodedep) == 0)
sys/ufs/ffs/ffs_softdep.c
9309
if (cancel_jaddref(jaddref, inodedep, &dirrem->dm_jwork)) {
sys/ufs/ffs/ffs_softdep.c
9535
struct jaddref *jaddref;
sys/ufs/ffs/ffs_softdep.c
9639
jaddref = (struct jaddref *)TAILQ_LAST(&inodedep->id_inoreflst,
sys/ufs/ffs/ffs_softdep.c
9641
KASSERT(jaddref != NULL && jaddref->ja_parent == dp->i_number,
sys/ufs/ffs/ffs_softdep.c
9643
jaddref));
sys/ufs/ffs/ffs_softdep.c
9644
jaddref->ja_diroff = I_OFFSET(dp);
sys/ufs/ffs/ffs_softdep.c
9645
jaddref->ja_diradd = dap;
sys/ufs/ffs/ffs_softdep.c
9648
add_to_journal(&jaddref->ja_list);
sys/ufs/ffs/softdep.h
235
#define WK_JADDREF(wk) ((struct jaddref *)(wk))
sys/ufs/ffs/softdep.h
259
LIST_HEAD(jaddrefhd, jaddref);
sys/ufs/ffs/softdep.h
727
struct jaddref *md_jaddref; /* dependent jaddref. */
sys/ufs/ffs/softdep.h
819
LIST_ENTRY(jaddref) ja_bmdeps; /* Links for bmsafemap. */