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 *);
951 static struct mkdir *setup_newdir(struct diradd *, ino_t, ino_t, struct buf *,
952 struct mkdir **);
3766 struct mkdir *mkdir;
3770 mkdir = NULL;
3781 mkdir = jaddref->ja_mkdir;
3782 WORKLIST_INSERT(&inodedep->id_bufwait, &mkdir->md_list);
3784 mkdir = jaddref->ja_mkdir;
3794 * The mkdir may be waiting on the jaddref to clear before freeing.
3796 if (mkdir) {
3797 KASSERT(mkdir->md_list.wk_type == D_MKDIR,
3798 ("handle_written_jaddref: Incorrect type for mkdir %s",
3799 TYPENAME(mkdir->md_list.wk_type)));
3800 mkdir->md_jaddref = NULL;
3801 diradd = mkdir->md_diradd;
3802 mkdir->md_state |= DEPCOMPLETE;
3803 complete_mkdir(mkdir);
4707 * We don't set MKDIR_PARENT as this is not tied to a mkdir and
4902 * Called to release the journal structures created by a failed mkdir
8290 * Create the mkdir dependencies for . and .. in a new directory. Link them
8296 static struct mkdir *
8302 struct mkdir **mkdirp;
8308 struct mkdir *mkdir1, *mkdir2;
8320 mkdir1 = malloc(sizeof(struct mkdir), M_MKDIR, M_SOFTDEP_FLAGS);
8325 mkdir2 = malloc(sizeof(struct mkdir), M_MKDIR, M_SOFTDEP_FLAGS);
8424 struct buf *newdirbp; /* non-NULL => contents of new mkdir */
8435 struct mkdir *mkdir1, *mkdir2;
8553 panic("softdep_setup_directory_add: Existing mkdir");
8659 * Move the mkdir dependencies and journal work from one diradd to another
8660 * when renaming a directory. The new name must depend on the mkdir deps
8670 struct mkdir *mkdir, *nextmd;
8679 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
8680 mkdir = nextmd) {
8681 nextmd = LIST_NEXT(mkdir, md_mkdirs);
8682 if (mkdir->md_diradd != olddap)
8684 mkdir->md_diradd = newdap;
8685 state = mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY);
8696 * Any mkdir related journal items are not safe to be freed until
8740 struct mkdir *mkdir;
8777 LIST_FOREACH(mkdir, &ump->softdep_mkdirlisthd, md_mkdirs) {
8778 if (mkdir->md_diradd != dap)
8780 if ((jaddref = mkdir->md_jaddref) == NULL)
8782 mkdir->md_jaddref = NULL;
8783 if (mkdir->md_state & MKDIR_PARENT) {
8821 struct mkdir *mkdir, *nextmd;
8844 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
8845 mkdir = nextmd) {
8846 nextmd = LIST_NEXT(mkdir, md_mkdirs);
8847 if (mkdir->md_diradd != dap)
8850 ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
8851 LIST_REMOVE(mkdir, md_mkdirs);
8852 if (mkdir->md_state & ONWORKLIST)
8853 WORKLIST_REMOVE(&mkdir->md_list);
8854 if (mkdir->md_jaddref != NULL)
8856 WORKITEM_FREE(mkdir, D_MKDIR);
8969 * than a mkdir for the .. entry. We need to cancel it now before
8999 * Cancel the MKDIR_PARENT mkdir component of a diradd when we're going to
9001 * directory. This ensures that we don't simultaneously have a mkdir and
9013 struct mkdir *mkdir;
9023 for (mkdir = LIST_FIRST(&ump->softdep_mkdirlisthd); mkdir;
9024 mkdir = LIST_NEXT(mkdir, md_mkdirs))
9025 if (mkdir->md_diradd == dap && mkdir->md_state & MKDIR_PARENT)
9027 if (mkdir == NULL)
9028 panic("cancel_mkdir_dotdot: Unable to find mkdir\n");
9029 if ((jaddref = mkdir->md_jaddref) != NULL) {
9030 mkdir->md_jaddref = NULL;
9040 if (mkdir->md_state & ONWORKLIST)
9041 WORKLIST_REMOVE(&mkdir->md_list);
9042 mkdir->md_state |= ALLCOMPLETE;
9043 complete_mkdir(mkdir);
9161 * existing MKDIR_PARENT mkdir. If it has already been canceled
11929 * Try to free a mkdir dependency.
11932 complete_mkdir(mkdir)
11933 struct mkdir *mkdir;
11937 if ((mkdir->md_state & ALLCOMPLETE) != ALLCOMPLETE)
11939 LIST_REMOVE(mkdir, md_mkdirs);
11940 dap = mkdir->md_diradd;
11941 dap->da_state &= ~(mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY));
11946 WORKITEM_FREE(mkdir, D_MKDIR);
11950 * Handle the completion of a mkdir dependency.
11953 handle_written_mkdir(mkdir, type)
11954 struct mkdir *mkdir;
11958 if ((mkdir->md_state & (MKDIR_PARENT | MKDIR_BODY)) != type)
11960 mkdir->md_state |= COMPLETE;
11961 complete_mkdir(mkdir);
13820 struct mkdir *mkdir;
13937 mkdir = WK_MKDIR(wk);
13938 if (mkdir->md_jaddref) {
14327 struct mkdir *mkdir;
14334 LIST_FOREACH(mkdir, mkdirlisthd, md_mkdirs) {
14335 diradd = mkdir->md_diradd;
14336 db_printf("mkdir: %p state 0x%X dap %p state 0x%X",
14337 mkdir, mkdir->md_state, diradd, diradd->da_state);
14338 if ((jaddref = mkdir->md_jaddref) != NULL)