Lines Matching refs:dap

7183 		struct diradd *dap;
7185 LIST_FOREACH(dap, &pagedep->pd_pendinghd, da_pdlist)
7186 if (dap->da_offset > blkoff)
7188 dap, dap->da_offset, blkoff);
7190 LIST_FOREACH(dap, &pagedep->pd_diraddhd[i], da_pdlist)
7191 if (dap->da_offset > blkoff)
7193 dap, dap->da_offset, blkoff);
7468 struct diradd *dap;
7486 while ((dap = LIST_FIRST(&pagedep->pd_pendinghd)) != NULL)
7487 free_diradd(dap, NULL);
8307 setup_newdir(dap, newinum, dinum, newdirbp, mkdirp)
8308 struct diradd *dap;
8324 mp = dap->da_list.wk_mp;
8333 mkdir1->md_diradd = dap;
8338 mkdir2->md_diradd = dap;
8393 dap->da_state &= ~MKDIR_PARENT;
8440 struct diradd *dap;
8468 dap = malloc(sizeof(struct diradd), M_DIRADD,
8470 workitem_alloc(&dap->da_list, D_DIRADD, mp);
8471 dap->da_offset = offset;
8472 dap->da_newinum = newinum;
8473 dap->da_state = ATTACHED;
8474 LIST_INIT(&dap->da_jwork);
8486 * the dap state to wait for them. Otherwise it's COMPLETE and
8490 dap->da_state |= DEPCOMPLETE;
8493 dap->da_state |= MKDIR_BODY | MKDIR_PARENT;
8494 mkdir1 = setup_newdir(dap, newinum, dp->i_number, newdirbp,
8506 dap->da_pagedep = pagedep;
8507 LIST_INSERT_HEAD(&pagedep->pd_diraddhd[DIRADDHASH(offset)], dap,
8523 jaddref->ja_diradd = dap;
8526 diradd_inode_written(dap, inodedep);
8528 WORKLIST_INSERT(&inodedep->id_bufwait, &dap->da_list);
8564 inodedep->id_mkdiradd = dap;
8566 merge_diradd(inodedep, dap);
8615 struct diradd *dap;
8646 dap = diradd_lookup(pagedep, oldoffset);
8647 if (dap) {
8648 dap->da_offset = newoffset;
8651 if ((dap->da_state & ALLCOMPLETE) != ALLCOMPLETE &&
8653 LIST_REMOVE(dap, da_pdlist);
8655 dap, da_pdlist);
8719 complete_diradd(dap)
8720 struct diradd *dap;
8724 if ((dap->da_state & ALLCOMPLETE) == ALLCOMPLETE) {
8725 if (dap->da_state & DIRCHG)
8726 pagedep = dap->da_previous->dm_pagedep;
8728 pagedep = dap->da_pagedep;
8729 LIST_REMOVE(dap, da_pdlist);
8730 LIST_INSERT_HEAD(&pagedep->pd_pendinghd, dap, da_pdlist);
8739 cancel_diradd(dap, dirrem, jremref, dotremref, dotdotremref)
8740 struct diradd *dap;
8757 free_diradd(dap, NULL);
8764 if (inodedep_lookup(dap->da_list.wk_mp, dap->da_newinum,
8771 if (jaddref->ja_diradd != dap)
8785 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) != 0) {
8786 ump = VFSTOUFS(dap->da_list.wk_mp);
8788 if (mkdir->md_diradd != dap)
8815 jwork_move(&dirrem->dm_jwork, &dap->da_jwork);
8816 free_diradd(dap, &dirrem->dm_jwork);
8824 free_diradd(dap, wkhd)
8825 struct diradd *dap;
8834 ump = VFSTOUFS(dap->da_list.wk_mp);
8836 LIST_REMOVE(dap, da_pdlist);
8837 if (dap->da_state & ONWORKLIST)
8838 WORKLIST_REMOVE(&dap->da_list);
8839 if ((dap->da_state & DIRCHG) == 0) {
8840 pagedep = dap->da_pagedep;
8842 dirrem = dap->da_previous;
8849 if (inodedep_lookup(pagedep->pd_list.wk_mp, dap->da_newinum,
8851 if (inodedep->id_mkdiradd == dap)
8853 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) != 0) {
8857 if (mkdir->md_diradd != dap)
8859 dap->da_state &=
8867 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) == 0)
8870 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) != 0)
8878 handle_jwork(&dap->da_jwork);
8879 WORKITEM_FREE(dap, D_DIRADD);
8965 struct diradd *dap;
8967 LIST_FOREACH(dap, &pagedep->pd_diraddhd[DIRADDHASH(offset)], da_pdlist)
8968 if (dap->da_offset == offset)
8969 return (dap);
8970 LIST_FOREACH(dap, &pagedep->pd_pendinghd, da_pdlist)
8971 if (dap->da_offset == offset)
8972 return (dap);
8989 struct diradd *dap;
8995 dap = diradd_lookup(pagedep, DOTDOT_OFFSET);
8996 if (dap == NULL)
8998 cancel_diradd(dap, dirrem, jremref, NULL, NULL);
9024 struct diradd *dap;
9029 dap = inodedep->id_mkdiradd;
9030 if (dap == NULL || (dap->da_state & MKDIR_PARENT) == 0)
9035 if (mkdir->md_diradd == dap && mkdir->md_state & MKDIR_PARENT)
9107 struct diradd *dap;
9192 dap = diradd_lookup(pagedep, offset);
9193 if (dap == NULL) {
9206 if ((dap->da_state & ATTACHED) == 0)
9208 if (dap->da_newinum != ip->i_number)
9210 (uintmax_t)ip->i_number, (uintmax_t)dap->da_newinum);
9216 if ((dap->da_state & DIRCHG) != 0) {
9217 *prevdirremp = dap->da_previous;
9218 dap->da_state &= ~DIRCHG;
9219 dap->da_pagedep = pagedep;
9226 cancel_diradd(dap, dirrem, jremref, dotremref, dotdotremref);
9266 struct diradd *dap = NULL;
9282 dap = malloc(sizeof(struct diradd),
9284 workitem_alloc(&dap->da_list, D_DIRADD, mp);
9285 dap->da_state = DIRCHG | ATTACHED | DEPCOMPLETE;
9286 dap->da_offset = offset;
9287 dap->da_newinum = newinum;
9288 LIST_INIT(&dap->da_jwork);
9351 dap->da_previous = dirrem;
9354 dap->da_previous = prevdirrem;
9356 dap->da_state &= ~DIRCHG;
9357 dap->da_pagedep = pagedep;
9378 jaddref->ja_diradd = dap;
9380 dap, da_pdlist);
9383 dap->da_state |= COMPLETE;
9384 LIST_INSERT_HEAD(&pagedep->pd_pendinghd, dap, da_pdlist);
9385 WORKLIST_INSERT(&inodedep->id_pendinghd, &dap->da_list);
9388 dap, da_pdlist);
9389 WORKLIST_INSERT(&inodedep->id_bufwait, &dap->da_list);
9397 merge_diradd(inodedep, dap);
10058 struct diradd *dap;
10085 LIST_FOREACH(dap, &pagedep->pd_diraddhd[i], da_pdlist) {
10087 ((char *)bp->b_data + dap->da_offset);
10088 if (ep->d_ino != dap->da_newinum)
10092 (uintmax_t)dap->da_newinum);
10093 if (dap->da_state & DIRCHG)
10094 ep->d_ino = dap->da_previous->dm_oldinum;
10097 dap->da_state &= ~ATTACHED;
10098 dap->da_state |= UNDONE;
11637 diradd_inode_written(dap, inodedep)
11638 struct diradd *dap;
11642 dap->da_state |= COMPLETE;
11643 complete_diradd(dap);
11644 WORKLIST_INSERT(&inodedep->id_pendinghd, &dap->da_list);
11851 struct diradd *dap;
11856 dap = mkdir->md_diradd;
11857 dap->da_state &= ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
11858 if ((dap->da_state & (MKDIR_PARENT | MKDIR_BODY)) == 0) {
11859 dap->da_state |= DEPCOMPLETE;
11860 complete_diradd(dap);
11918 struct diradd *dap, *nextdap;
11942 while ((dap = LIST_FIRST(&pagedep->pd_pendinghd)) != NULL)
11943 free_diradd(dap, NULL);
11948 for (dap = LIST_FIRST(&pagedep->pd_diraddhd[i]); dap;
11949 dap = nextdap) {
11950 nextdap = LIST_NEXT(dap, da_pdlist);
11951 if (dap->da_state & ATTACHED)
11954 ((char *)bp->b_data + dap->da_offset);
11955 ep->d_ino = dap->da_newinum;
11956 dap->da_state &= ~UNDONE;
11957 dap->da_state |= ATTACHED;
11964 if ((dap->da_state & ALLCOMPLETE) == ALLCOMPLETE) {
11965 LIST_REMOVE(dap, da_pdlist);
11966 LIST_INSERT_HEAD(&pagedep->pd_pendinghd, dap,
12213 struct diradd *dap;
12255 dap = WK_DIRADD(wk);
12260 if (dap->da_state & DIRCHG)
12261 pagedep = dap->da_previous->dm_pagedep;
12263 pagedep = dap->da_pagedep;
12266 if ((dap->da_state & (MKDIR_BODY | COMPLETE)) != COMPLETE)
12268 if ((dap->da_state & MKDIR_PARENT) ||
12343 dap = WK_DIRADD(wk);
12344 if (dap->da_state & DIRCHG)
12345 pagedep = dap->da_previous->dm_pagedep;
12347 pagedep = dap->da_pagedep;
12891 struct diradd *dap;
12902 while ((dap = LIST_FIRST(diraddhdp)) != NULL) {
12907 if (dap->da_state & MKDIR_PARENT) {
12915 if (dap != LIST_FIRST(diraddhdp))
12928 LIST_REMOVE(dap, da_pdlist);
12929 LIST_INSERT_HEAD(&unfinished, dap, da_pdlist);
12937 inum = dap->da_newinum;
12951 if (dap->da_state & MKDIR_BODY) {
12962 if (error == 0 && dap == LIST_FIRST(diraddhdp))
12971 if (dap != LIST_FIRST(diraddhdp))
12973 if (dap->da_state & MKDIR_BODY) {
12977 "inodedep %p dap %p vp %p",
12978 inodedep, dap, vp);
13007 if (dap != LIST_FIRST(diraddhdp))
13015 if (dap == LIST_FIRST(diraddhdp)) {
13030 if (dap == LIST_FIRST(diraddhdp)) {
13033 "inodedep %p ino %ju dap %p",
13034 inodedep, (uintmax_t)inum, dap);
13039 while ((dap = LIST_FIRST(&unfinished)) != NULL) {
13040 LIST_REMOVE(dap, da_pdlist);
13041 LIST_INSERT_HEAD(diraddhdp, dap, da_pdlist);
13728 struct diradd *dap;
13797 LIST_FOREACH(dap, &pagedep->pd_diraddhd[i], da_pdlist) {
14243 db_printf("mkdir: %p state 0x%X dap %p state 0x%X",