Lines Matching defs:mkdir

702 SOFTDEP_TYPE(MKDIR, mkdir, "New directory");
759 static LIST_HEAD(mkdirlist, mkdir) mkdirlisthd;
869 static void handle_written_mkdir(struct mkdir *, int);
903 static void complete_mkdir(struct mkdir *);
1022 static struct mkdir *setup_newdir(struct diradd *, ino_t, ino_t, struct buf *,
1023 struct mkdir **);
3625 struct mkdir *mkdir;
3629 mkdir = NULL;
3640 mkdir = jaddref->ja_mkdir;
3641 WORKLIST_INSERT(&inodedep->id_bufwait, &mkdir->md_list);
3643 mkdir = jaddref->ja_mkdir;
3653 * The mkdir may be waiting on the jaddref to clear before freeing.
3655 if (mkdir) {
3656 KASSERT(mkdir->md_list.wk_type == D_MKDIR,
3657 ("handle_written_jaddref: Incorrect type for mkdir %s",
3658 TYPENAME(mkdir->md_list.wk_type)));
3659 mkdir->md_jaddref = NULL;
3660 diradd = mkdir->md_diradd;
3661 mkdir->md_state |= DEPCOMPLETE;
3662 complete_mkdir(mkdir);
4539 * We don't set MKDIR_PARENT as this is not tied to a mkdir and
4748 * Called to release the journal structures created by a failed mkdir
8097 * Create the mkdir dependencies for . and .. in a new directory. Link them
8102 static struct mkdir *
8108 struct mkdir **mkdirp;
8114 struct mkdir *mkdir1, *mkdir2;
8124 mkdir1 = malloc(sizeof(struct mkdir), M_MKDIR, M_SOFTDEP_FLAGS);
8129 mkdir2 = malloc(sizeof(struct mkdir), M_MKDIR, M_SOFTDEP_FLAGS);
8228 struct buf *newdirbp; /* non-NULL => contents of new mkdir */
8239 struct mkdir *mkdir1, *mkdir2;
8352 panic("softdep_setup_directory_add: Existing mkdir");
8455 * Move the mkdir dependencies and journal work from one diradd to another
8456 * when renaming a directory. The new name must depend on the mkdir deps
8466 struct mkdir *mkdir, *nextmd;
8473 for (mkdir = LIST_FIRST(&mkdirlisthd); mkdir; mkdir = nextmd) {
8474 nextmd = LIST_NEXT(mkdir, md_mkdirs);
8475 if (mkdir->md_diradd != olddap)
8477 mkdir->md_diradd = newdap;
8478 state = mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY);
8489 * Any mkdir related journal items are not safe to be freed until
8532 struct mkdir *mkdir;
8568 LIST_FOREACH(mkdir, &mkdirlisthd, md_mkdirs) {
8569 if (mkdir->md_diradd != dap)
8571 if ((jaddref = mkdir->md_jaddref) == NULL)
8573 mkdir->md_jaddref = NULL;
8574 if (mkdir->md_state & MKDIR_PARENT) {
8612 struct mkdir *mkdir, *nextmd;
8633 for (mkdir = LIST_FIRST(&mkdirlisthd); mkdir; mkdir = nextmd) {
8634 nextmd = LIST_NEXT(mkdir, md_mkdirs);
8635 if (mkdir->md_diradd != dap)
8638 ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
8639 LIST_REMOVE(mkdir, md_mkdirs);
8640 if (mkdir->md_state & ONWORKLIST)
8641 WORKLIST_REMOVE(&mkdir->md_list);
8642 if (mkdir->md_jaddref != NULL)
8644 WORKITEM_FREE(mkdir, D_MKDIR);
8755 * than a mkdir for the .. entry. We need to cancel it now before
8785 * Cancel the MKDIR_PARENT mkdir component of a diradd when we're going to
8787 * directory. This ensures that we don't simultaneously have a mkdir and
8798 struct mkdir *mkdir;
8807 for (mkdir = LIST_FIRST(&mkdirlisthd); mkdir;
8808 mkdir = LIST_NEXT(mkdir, md_mkdirs))
8809 if (mkdir->md_diradd == dap && mkdir->md_state & MKDIR_PARENT)
8811 if (mkdir == NULL)
8812 panic("cancel_mkdir_dotdot: Unable to find mkdir\n");
8813 if ((jaddref = mkdir->md_jaddref) != NULL) {
8814 mkdir->md_jaddref = NULL;
8824 if (mkdir->md_state & ONWORKLIST)
8825 WORKLIST_REMOVE(&mkdir->md_list);
8826 mkdir->md_state |= ALLCOMPLETE;
8827 complete_mkdir(mkdir);
8942 * existing MKDIR_PARENT mkdir. If it has already been canceled
11592 * Try to free a mkdir dependency.
11595 complete_mkdir(mkdir)
11596 struct mkdir *mkdir;
11600 if ((mkdir->md_state & ALLCOMPLETE) != ALLCOMPLETE)
11602 LIST_REMOVE(mkdir, md_mkdirs);
11603 dap = mkdir->md_diradd;
11604 dap->da_state &= ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
11609 WORKITEM_FREE(mkdir, D_MKDIR);
11613 * Handle the completion of a mkdir dependency.
11616 handle_written_mkdir(mkdir, type)
11617 struct mkdir *mkdir;
11621 if ((mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY)) != type)
11623 mkdir->md_state |= COMPLETE;
11624 complete_mkdir(mkdir);
13260 struct mkdir *mkdir;
13374 mkdir = WK_MKDIR(wk);
13375 if (mkdir->md_jaddref) {
13708 struct mkdir *mkdir;
13710 LIST_FOREACH(mkdir, &mkdirlisthd, md_mkdirs) {
13711 diradd = mkdir->md_diradd;
13712 db_printf("mkdir: %p state 0x%X dap %p state 0x%X",
13713 mkdir, mkdir->md_state, diradd, diradd->da_state);
13714 if ((jaddref = mkdir->md_jaddref) != NULL)