Lines Matching refs:dap

7245 		struct diradd *dap;
7247 LIST_FOREACH(dap, &pagedep->pd_pendinghd, da_pdlist)
7248 if (dap->da_offset > blkoff)
7250 dap, dap->da_offset, blkoff);
7252 LIST_FOREACH(dap, &pagedep->pd_diraddhd[i], da_pdlist)
7253 if (dap->da_offset > blkoff)
7255 dap, dap->da_offset, blkoff);
7529 struct diradd *dap;
7547 while ((dap = LIST_FIRST(&pagedep->pd_pendinghd)) != NULL)
7548 free_diradd(dap, NULL);
8376 setup_newdir(dap, newinum, dinum, newdirbp, mkdirp)
8377 struct diradd *dap;
8393 mp = dap->da_list.wk_mp;
8402 mkdir1->md_diradd = dap;
8407 mkdir2->md_diradd = dap;
8462 dap->da_state &= ~MKDIR_PARENT;
8509 struct diradd *dap;
8537 dap = malloc(sizeof(struct diradd), M_DIRADD,
8539 workitem_alloc(&dap->da_list, D_DIRADD, mp);
8540 dap->da_offset = offset;
8541 dap->da_newinum = newinum;
8542 dap->da_state = ATTACHED;
8543 LIST_INIT(&dap->da_jwork);
8555 * the dap state to wait for them. Otherwise it's COMPLETE and
8559 dap->da_state |= DEPCOMPLETE;
8562 dap->da_state |= MKDIR_BODY | MKDIR_PARENT;
8563 mkdir1 = setup_newdir(dap, newinum, dp->i_number, newdirbp,
8575 dap->da_pagedep = pagedep;
8576 LIST_INSERT_HEAD(&pagedep->pd_diraddhd[DIRADDHASH(offset)], dap,
8592 jaddref->ja_diradd = dap;
8595 diradd_inode_written(dap, inodedep);
8597 WORKLIST_INSERT(&inodedep->id_bufwait, &dap->da_list);
8633 inodedep->id_mkdiradd = dap;
8635 merge_diradd(inodedep, dap);
8684 struct diradd *dap;
8717 dap = diradd_lookup(pagedep, oldoffset);
8718 if (dap) {
8719 dap->da_offset = newoffset;
8722 if ((dap->da_state & ALLCOMPLETE) != ALLCOMPLETE &&
8724 LIST_REMOVE(dap, da_pdlist);
8726 dap, da_pdlist);
8790 complete_diradd(dap)
8791 struct diradd *dap;
8795 if ((dap->da_state & ALLCOMPLETE) == ALLCOMPLETE) {
8796 if (dap->da_state & DIRCHG)
8797 pagedep = dap->da_previous->dm_pagedep;
8799 pagedep = dap->da_pagedep;
8800 LIST_REMOVE(dap, da_pdlist);
8801 LIST_INSERT_HEAD(&pagedep->pd_pendinghd, dap, da_pdlist);
8810 cancel_diradd(dap, dirrem, jremref, dotremref, dotdotremref)
8811 struct diradd *dap;
8828 free_diradd(dap, NULL);
8835 if (inodedep_lookup(dap->da_list.wk_mp, dap->da_newinum,
8842 if (jaddref->ja_diradd != dap)
8856 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) != 0) {
8857 ump = VFSTOUFS(dap->da_list.wk_mp);
8859 if (mkdir->md_diradd != dap)
8886 jwork_move(&dirrem->dm_jwork, &dap->da_jwork);
8887 free_diradd(dap, &dirrem->dm_jwork);
8894 free_diradd(dap, wkhd)
8895 struct diradd *dap;
8904 ump = VFSTOUFS(dap->da_list.wk_mp);
8906 LIST_REMOVE(dap, da_pdlist);
8907 if (dap->da_state & ONWORKLIST)
8908 WORKLIST_REMOVE(&dap->da_list);
8909 if ((dap->da_state & DIRCHG) == 0) {
8910 pagedep = dap->da_pagedep;
8912 dirrem = dap->da_previous;
8919 if (inodedep_lookup(pagedep->pd_list.wk_mp, dap->da_newinum,
8921 if (inodedep->id_mkdiradd == dap)
8923 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) != 0) {
8927 if (mkdir->md_diradd != dap)
8929 dap->da_state &=
8937 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) == 0)
8940 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) != 0)
8948 handle_jwork(&dap->da_jwork);
8949 WORKITEM_FREE(dap, D_DIRADD);
9036 struct diradd *dap;
9038 LIST_FOREACH(dap, &pagedep->pd_diraddhd[DIRADDHASH(offset)], da_pdlist)
9039 if (dap->da_offset == offset)
9040 return (dap);
9041 LIST_FOREACH(dap, &pagedep->pd_pendinghd, da_pdlist)
9042 if (dap->da_offset == offset)
9043 return (dap);
9060 struct diradd *dap;
9065 dap = diradd_lookup(pagedep, DOTDOT_OFFSET);
9066 if (dap == NULL)
9068 cancel_diradd(dap, dirrem, jremref, NULL, NULL);
9094 struct diradd *dap;
9100 dap = inodedep->id_mkdiradd;
9101 if (dap == NULL || (dap->da_state & MKDIR_PARENT) == 0)
9106 if (mkdir->md_diradd == dap && mkdir->md_state & MKDIR_PARENT)
9177 struct diradd *dap;
9265 dap = diradd_lookup(pagedep, offset);
9266 if (dap == NULL) {
9279 if ((dap->da_state & ATTACHED) == 0)
9281 if (dap->da_newinum != ip->i_number)
9283 (uintmax_t)ip->i_number, (uintmax_t)dap->da_newinum);
9289 if ((dap->da_state & DIRCHG) != 0) {
9290 *prevdirremp = dap->da_previous;
9291 dap->da_state &= ~DIRCHG;
9292 dap->da_pagedep = pagedep;
9299 cancel_diradd(dap, dirrem, jremref, dotremref, dotdotremref);
9339 struct diradd *dap = NULL;
9357 dap = malloc(sizeof(struct diradd),
9359 workitem_alloc(&dap->da_list, D_DIRADD, mp);
9360 dap->da_state = DIRCHG | ATTACHED | DEPCOMPLETE;
9361 dap->da_offset = offset;
9362 dap->da_newinum = newinum;
9363 LIST_INIT(&dap->da_jwork);
9426 dap->da_previous = dirrem;
9429 dap->da_previous = prevdirrem;
9431 dap->da_state &= ~DIRCHG;
9432 dap->da_pagedep = pagedep;
9453 jaddref->ja_diradd = dap;
9455 dap, da_pdlist);
9458 dap->da_state |= COMPLETE;
9459 LIST_INSERT_HEAD(&pagedep->pd_pendinghd, dap, da_pdlist);
9460 WORKLIST_INSERT(&inodedep->id_pendinghd, &dap->da_list);
9463 dap, da_pdlist);
9464 WORKLIST_INSERT(&inodedep->id_bufwait, &dap->da_list);
9472 merge_diradd(inodedep, dap);
10141 struct diradd *dap;
10168 LIST_FOREACH(dap, &pagedep->pd_diraddhd[i], da_pdlist) {
10170 ((char *)bp->b_data + dap->da_offset);
10171 if (ep->d_ino != dap->da_newinum)
10175 (uintmax_t)dap->da_newinum);
10176 if (dap->da_state & DIRCHG)
10177 ep->d_ino = dap->da_previous->dm_oldinum;
10180 dap->da_state &= ~ATTACHED;
10181 dap->da_state |= UNDONE;
11804 diradd_inode_written(dap, inodedep)
11805 struct diradd *dap;
11809 LOCK_OWNED(VFSTOUFS(dap->da_list.wk_mp));
11810 dap->da_state |= COMPLETE;
11811 complete_diradd(dap);
11812 WORKLIST_INSERT(&inodedep->id_pendinghd, &dap->da_list);
12043 struct diradd *dap;
12048 dap = mkdir->md_diradd;
12049 dap->da_state &= ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
12050 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) == 0) {
12051 dap->da_state |= DEPCOMPLETE;
12052 complete_diradd(dap);
12115 struct diradd *dap, *nextdap;
12141 while ((dap = LIST_FIRST(&pagedep->pd_pendinghd)) != NULL)
12142 free_diradd(dap, NULL);
12148 for (dap = LIST_FIRST(&pagedep->pd_diraddhd[i]); dap;
12149 dap = nextdap) {
12150 nextdap = LIST_NEXT(dap, da_pdlist);
12151 if (dap->da_state & ATTACHED)
12154 ((char *)bp->b_data + dap->da_offset);
12155 ep->d_ino = dap->da_newinum;
12156 dap->da_state &= ~UNDONE;
12157 dap->da_state |= ATTACHED;
12164 if ((dap->da_state & ALLCOMPLETE) == ALLCOMPLETE) {
12165 LIST_REMOVE(dap, da_pdlist);
12166 LIST_INSERT_HEAD(&pagedep->pd_pendinghd, dap,
12415 struct diradd *dap;
12457 dap = WK_DIRADD(wk);
12462 if (dap->da_state & DIRCHG)
12463 pagedep = dap->da_previous->dm_pagedep;
12465 pagedep = dap->da_pagedep;
12468 if ((dap->da_state & (MKDIR_BODY | COMPLETE)) != COMPLETE)
12470 if ((dap->da_state & MKDIR_PARENT) ||
12535 dap = WK_DIRADD(wk);
12536 if (dap->da_state & DIRCHG)
12537 pagedep = dap->da_previous->dm_pagedep;
12539 pagedep = dap->da_pagedep;
13081 struct diradd *dap;
13092 while ((dap = LIST_FIRST(diraddhdp)) != NULL) {
13097 if (dap->da_state & MKDIR_PARENT) {
13105 if (dap != LIST_FIRST(diraddhdp))
13118 LIST_REMOVE(dap, da_pdlist);
13119 LIST_INSERT_HEAD(&unfinished, dap, da_pdlist);
13127 inum = dap->da_newinum;
13141 if (dap->da_state & MKDIR_BODY) {
13153 if (error == 0 && dap == LIST_FIRST(diraddhdp))
13162 if (dap != LIST_FIRST(diraddhdp))
13164 if (dap->da_state & MKDIR_BODY) {
13168 "inodedep %p dap %p vp %p",
13169 inodedep, dap, vp);
13198 if (dap != LIST_FIRST(diraddhdp))
13206 if (dap == LIST_FIRST(diraddhdp)) {
13222 if (dap == LIST_FIRST(diraddhdp)) {
13225 "inodedep %p ino %ju dap %p",
13226 inodedep, (uintmax_t)inum, dap);
13231 while ((dap = LIST_FIRST(&unfinished)) != NULL) {
13232 LIST_REMOVE(dap, da_pdlist);
13233 LIST_INSERT_HEAD(diraddhdp, dap, da_pdlist);
14025 struct diradd *dap;
14094 LIST_FOREACH(dap, &pagedep->pd_diraddhd[i], da_pdlist) {
14526 db_printf("mkdir: %p state 0x%X dap %p state 0x%X",