Lines Matching defs:mkdir

658 SOFTDEP_TYPE(MKDIR, mkdir, "New directory");
794 static void handle_written_mkdir(struct mkdir *, int);
828 static void complete_mkdir(struct mkdir *);
948 static struct mkdir *setup_newdir(struct diradd *, ino_t, ino_t, struct buf *,
949 struct mkdir **);
3756 struct mkdir *mkdir;
3760 mkdir = NULL;
3771 mkdir = jaddref->ja_mkdir;
3772 WORKLIST_INSERT(&inodedep->id_bufwait, &mkdir->md_list);
3774 mkdir = jaddref->ja_mkdir;
3784 * The mkdir may be waiting on the jaddref to clear before freeing.
3786 if (mkdir) {
3787 KASSERT(mkdir->md_list.wk_type == D_MKDIR,
3788 ("handle_written_jaddref: Incorrect type for mkdir %s",
3789 TYPENAME(mkdir->md_list.wk_type)));
3790 mkdir->md_jaddref = NULL;
3791 diradd = mkdir->md_diradd;
3792 mkdir->md_state |= DEPCOMPLETE;
3793 complete_mkdir(mkdir);
4703 * We don't set MKDIR_PARENT as this is not tied to a mkdir and
4898 * Called to release the journal structures created by a failed mkdir
8301 * Create the mkdir dependencies for . and .. in a new directory. Link them
8307 static struct mkdir *
8313 struct mkdir **mkdirp;
8319 struct mkdir *mkdir1, *mkdir2;
8331 mkdir1 = malloc(sizeof(struct mkdir), M_MKDIR, M_SOFTDEP_FLAGS);
8336 mkdir2 = malloc(sizeof(struct mkdir), M_MKDIR, M_SOFTDEP_FLAGS);
8435 struct buf *newdirbp; /* non-NULL => contents of new mkdir */
8446 struct mkdir *mkdir1, *mkdir2;
8563 panic("softdep_setup_directory_add: Existing mkdir");
8669 * Move the mkdir dependencies and journal work from one diradd to another
8670 * when renaming a directory. The new name must depend on the mkdir deps
8680 struct mkdir *mkdir, *nextmd;
8689 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
8690 mkdir = nextmd) {
8691 nextmd = LIST_NEXT(mkdir, md_mkdirs);
8692 if (mkdir->md_diradd != olddap)
8694 mkdir->md_diradd = newdap;
8695 state = mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY);
8706 * Any mkdir related journal items are not safe to be freed until
8750 struct mkdir *mkdir;
8787 LIST_FOREACH(mkdir, &ump->softdep_mkdirlisthd, md_mkdirs) {
8788 if (mkdir->md_diradd != dap)
8790 if ((jaddref = mkdir->md_jaddref) == NULL)
8792 mkdir->md_jaddref = NULL;
8793 if (mkdir->md_state & MKDIR_PARENT) {
8831 struct mkdir *mkdir, *nextmd;
8854 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
8855 mkdir = nextmd) {
8856 nextmd = LIST_NEXT(mkdir, md_mkdirs);
8857 if (mkdir->md_diradd != dap)
8860 ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
8861 LIST_REMOVE(mkdir, md_mkdirs);
8862 if (mkdir->md_state & ONWORKLIST)
8863 WORKLIST_REMOVE(&mkdir->md_list);
8864 if (mkdir->md_jaddref != NULL)
8866 WORKITEM_FREE(mkdir, D_MKDIR);
8979 * than a mkdir for the .. entry. We need to cancel it now before
9009 * Cancel the MKDIR_PARENT mkdir component of a diradd when we're going to
9011 * directory. This ensures that we don't simultaneously have a mkdir and
9023 struct mkdir *mkdir;
9033 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
9034 mkdir = LIST_NEXT(mkdir, md_mkdirs))
9035 if (mkdir->md_diradd == dap && mkdir->md_state & MKDIR_PARENT)
9037 if (mkdir == NULL)
9038 panic("cancel_mkdir_dotdot: Unable to find mkdir\n");
9039 if ((jaddref = mkdir->md_jaddref) != NULL) {
9040 mkdir->md_jaddref = NULL;
9050 if (mkdir->md_state & ONWORKLIST)
9051 WORKLIST_REMOVE(&mkdir->md_list);
9052 mkdir->md_state |= ALLCOMPLETE;
9053 complete_mkdir(mkdir);
9172 * existing MKDIR_PARENT mkdir. If it has already been canceled
11851 * Try to free a mkdir dependency.
11854 complete_mkdir(mkdir)
11855 struct mkdir *mkdir;
11859 if ((mkdir->md_state & ALLCOMPLETE) != ALLCOMPLETE)
11861 LIST_REMOVE(mkdir, md_mkdirs);
11862 dap = mkdir->md_diradd;
11863 dap->da_state &= ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
11868 WORKITEM_FREE(mkdir, D_MKDIR);
11872 * Handle the completion of a mkdir dependency.
11875 handle_written_mkdir(mkdir, type)
11876 struct mkdir *mkdir;
11880 if ((mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY)) != type)
11882 mkdir->md_state |= COMPLETE;
11883 complete_mkdir(mkdir);
13644 struct mkdir *mkdir;
13761 mkdir = WK_MKDIR(wk);
13762 if (mkdir->md_jaddref) {
14151 struct mkdir *mkdir;
14158 LIST_FOREACH(mkdir, mkdirlisthd, md_mkdirs) {
14159 diradd = mkdir->md_diradd;
14160 db_printf("mkdir: %p state 0x%X dap %p state 0x%X",
14161 mkdir, mkdir->md_state, diradd, diradd->da_state);
14162 if ((jaddref = mkdir->md_jaddref) != NULL)