Lines Matching defs:mkdir

620 SOFTDEP_TYPE(MKDIR, mkdir, "New directory");
759 static void handle_written_mkdir(struct mkdir *, int);
793 static void complete_mkdir(struct mkdir *);
917 static struct mkdir *setup_newdir(struct diradd *, ino_t, ino_t, struct buf *,
918 struct mkdir **);
4036 struct mkdir *mkdir;
4040 mkdir = NULL;
4051 mkdir = jaddref->ja_mkdir;
4052 WORKLIST_INSERT(&inodedep->id_bufwait, &mkdir->md_list);
4054 mkdir = jaddref->ja_mkdir;
4064 * The mkdir may be waiting on the jaddref to clear before freeing.
4066 if (mkdir) {
4067 KASSERT(mkdir->md_list.wk_type == D_MKDIR,
4068 ("handle_written_jaddref: Incorrect type for mkdir %s",
4069 TYPENAME(mkdir->md_list.wk_type)));
4070 mkdir->md_jaddref = NULL;
4071 diradd = mkdir->md_diradd;
4072 mkdir->md_state |= DEPCOMPLETE;
4073 complete_mkdir(mkdir);
4951 * We don't set MKDIR_PARENT as this is not tied to a mkdir and
5125 * Called to release the journal structures created by a failed mkdir
8559 * Create the mkdir dependencies for . and .. in a new directory. Link them
8565 static struct mkdir *
8571 struct mkdir **mkdirp)
8577 struct mkdir *mkdir1, *mkdir2;
8589 mkdir1 = malloc(sizeof(struct mkdir), M_MKDIR, M_SOFTDEP_FLAGS);
8594 mkdir2 = malloc(sizeof(struct mkdir), M_MKDIR, M_SOFTDEP_FLAGS);
8693 struct buf *newdirbp, /* non-NULL => contents of new mkdir */
8704 struct mkdir *mkdir1, *mkdir2;
8822 panic("softdep_setup_directory_add: Existing mkdir");
8930 * Move the mkdir dependencies and journal work from one diradd to another
8931 * when renaming a directory. The new name must depend on the mkdir deps
8939 struct mkdir *mkdir, *nextmd;
8948 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
8949 mkdir = nextmd) {
8950 nextmd = LIST_NEXT(mkdir, md_mkdirs);
8951 if (mkdir->md_diradd != olddap)
8953 mkdir->md_diradd = newdap;
8954 state = mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY);
8965 * Any mkdir related journal items are not safe to be freed until
9008 struct mkdir *mkdir;
9045 LIST_FOREACH(mkdir, &ump->softdep_mkdirlisthd, md_mkdirs) {
9046 if (mkdir->md_diradd != dap)
9048 if ((jaddref = mkdir->md_jaddref) == NULL)
9050 mkdir->md_jaddref = NULL;
9051 if (mkdir->md_state & MKDIR_PARENT) {
9086 struct mkdir *mkdir, *nextmd;
9109 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
9110 mkdir = nextmd) {
9111 nextmd = LIST_NEXT(mkdir, md_mkdirs);
9112 if (mkdir->md_diradd != dap)
9115 ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
9116 LIST_REMOVE(mkdir, md_mkdirs);
9117 if (mkdir->md_state & ONWORKLIST)
9118 WORKLIST_REMOVE(&mkdir->md_list);
9119 if (mkdir->md_jaddref != NULL)
9121 WORKITEM_FREE(mkdir, D_MKDIR);
9233 * than a mkdir for the .. entry. We need to cancel it now before
9261 * Cancel the MKDIR_PARENT mkdir component of a diradd when we're going to
9263 * directory. This ensures that we don't simultaneously have a mkdir and
9274 struct mkdir *mkdir;
9285 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
9286 mkdir = LIST_NEXT(mkdir, md_mkdirs))
9287 if (mkdir->md_diradd == dap && mkdir->md_state & MKDIR_PARENT)
9289 if (mkdir == NULL)
9290 panic("cancel_mkdir_dotdot: Unable to find mkdir\n");
9291 if ((jaddref = mkdir->md_jaddref) != NULL) {
9292 mkdir->md_jaddref = NULL;
9301 if (mkdir->md_state & ONWORKLIST)
9302 WORKLIST_REMOVE(&mkdir->md_list);
9303 mkdir->md_state |= ALLCOMPLETE;
9304 complete_mkdir(mkdir);
9423 * existing MKDIR_PARENT mkdir. If it has already been canceled
12259 * Try to free a mkdir dependency.
12262 complete_mkdir(struct mkdir *mkdir)
12266 if ((mkdir->md_state & ALLCOMPLETE) != ALLCOMPLETE)
12268 LIST_REMOVE(mkdir, md_mkdirs);
12269 dap = mkdir->md_diradd;
12270 dap->da_state &= ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
12275 WORKITEM_FREE(mkdir, D_MKDIR);
12279 * Handle the completion of a mkdir dependency.
12282 handle_written_mkdir(struct mkdir *mkdir, int type)
12285 if ((mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY)) != type)
12287 mkdir->md_state |= COMPLETE;
12288 complete_mkdir(mkdir);
14326 struct mkdir *mkdir;
14441 mkdir = WK_MKDIR(wk);
14442 if (mkdir->md_jaddref) {
14867 mkdir_print(struct mkdir *mkdir)
14870 worklist_print(&mkdir->md_list, 0);
14872 mkdir->md_diradd, mkdir->md_jaddref, mkdir->md_buf);
14962 db_printf("mkdir address required\n");
14965 mkdir_print((struct mkdir *)addr);
14971 struct mkdir *mkdir;
14974 db_printf("mkdir listhead address required\n");
14978 LIST_FOREACH(mkdir, mkdirlisthd, md_mkdirs) {
14979 mkdir_print(mkdir);
14980 if (mkdir->md_diradd != NULL) {
14982 worklist_print(&mkdir->md_diradd->da_list, 0);
14984 if (mkdir->md_jaddref != NULL) {
14986 worklist_print(&mkdir->md_jaddref->ja_list, 0);