这篇教程C++ vfs_mkdir函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中vfs_mkdir函数的典型用法代码示例。如果您正苦于以下问题:C++ vfs_mkdir函数的具体用法?C++ vfs_mkdir怎么用?C++ vfs_mkdir使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了vfs_mkdir函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: ccfs_mkdirstatic int ccfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode){ int rc; struct dentry *lower_dentry; struct dentry *lower_dir_dentry; lower_dentry = ccfs_get_nested_dentry(dentry); lower_dir_dentry = lock_parent(lower_dentry); mdbg(INFO3,"MKDIR w/ lower_dentry->d_name.name = [%s] DIR = [%s]", lower_dentry->d_name.name, lower_dir_dentry->d_name.name); rc = vfs_mkdir(lower_dir_dentry->d_inode, lower_dentry, mode); if (rc || !lower_dentry->d_inode) goto out; rc = ccfs_interpose(lower_dentry, dentry, dir->i_sb, 0); if (rc) goto out; fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); set_nlink(dir, lower_dir_dentry->d_inode->i_nlink); //Fix for kernel 3.7.1 use function set_nlink by Jiri Rakosnikout: unlock_dir(lower_dir_dentry); if (!dentry->d_inode) d_drop(dentry); return rc;}
开发者ID:FIT-CVUT,项目名称:clondike,代码行数:25,
示例2: do_mkdirint do_mkdir (struct inode *inode, const char *name, int len, int mode){#if USE_DENTRY_F struct dentry *tmp_dent;#endif int ret_code; DOWN(&(inode->i_sem));#if USE_DENTRY_F /* Create a temporary negative dentry for the target. */ ret_code = ovlfs_inode_get_child_dentry(inode, name, len, &tmp_dent, OVLFS_DENT_GET_NEGATIVE); if ( ret_code == 0 ) { /* Use the vfs_mkdir function to do the dirty work. */ ret_code = vfs_mkdir(inode, tmp_dent, mode); dput(tmp_dent); }#else IMARK(inode); ret_code = inode->i_op->mkdir(inode, name, len, mode);#endif UP(&(inode->i_sem)); return ret_code;}
开发者ID:raven-au,项目名称:ovlfs,代码行数:32,
示例3: dev_mkdirstatic int dev_mkdir(const char *name, mode_t mode){ struct nameidata nd; struct dentry *dentry; int err; err = vfs_path_lookup(dev_mnt->mnt_root, dev_mnt, name, LOOKUP_PARENT, &nd); if (err) return err; dentry = lookup_create(&nd, 1); if (!IS_ERR(dentry)) { err = vfs_mkdir(nd.path.dentry->d_inode, dentry, mode); if (!err) /* mark as kernel-created inode */ dentry->d_inode->i_private = &dev_mnt; dput(dentry); } else { err = PTR_ERR(dentry); } mutex_unlock(&nd.path.dentry->d_inode->i_mutex); path_put(&nd.path); return err;}
开发者ID:jhu-chang,项目名称:r6300v2,代码行数:26,
示例4: wrapfs_mkdirstatic int wrapfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode){ int err; struct dentry *lower_dentry; struct dentry *lower_parent_dentry = NULL; struct path lower_path; wrapfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); err = vfs_mkdir(lower_parent_dentry->d_inode, lower_dentry, mode); if (err) goto out; err = wrapfs_interpose(dentry, dir->i_sb, &lower_path); if (err) goto out; fsstack_copy_attr_times(dir, wrapfs_lower_inode(dir)); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); /* update number of links on parent directory */ set_nlink(dir, wrapfs_lower_inode(dir)->i_nlink);out: unlock_dir(lower_parent_dentry); wrapfs_put_lower_path(dentry, &lower_path);#ifdef NEKTECH_LOGGER /*NEKTECH LOGGING*/ nektech_logger (dir, dentry, NEKTECH_MKDIR);#endif /*NEKTECH LOGGING*/ return err;}
开发者ID:AkyZero,项目名称:wrapfs-nektech,代码行数:33,
示例5: wrapfs_mkdirstatic int wrapfs_mkdir(struct inode *dir, struct dentry *dentry, int mode){ int err = 0; struct dentry *lower_dentry; struct dentry *lower_parent_dentry = NULL; struct path lower_path; wrapfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); err = mnt_want_write(lower_path.mnt); if (err) goto out_unlock; err = vfs_mkdir(lower_parent_dentry->d_inode, lower_dentry, mode); if (err) goto out; err = wrapfs_interpose(dentry, dir->i_sb, &lower_path); if (err) goto out; fsstack_copy_attr_times(dir, wrapfs_lower_inode(dir)); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); /* update number of links on parent directory */ set_nlink(dir, wrapfs_lower_inode(dir)->i_nlink);out: mnt_drop_write(lower_path.mnt);out_unlock: unlock_dir(lower_parent_dentry); wrapfs_put_lower_path(dentry, &lower_path); return err;}
开发者ID:abhishekShukla,项目名称:Linux-Stackable-File-System-,代码行数:34,
示例6: diaryfs_mkdirstatic int diaryfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) { int err; struct dentry * lower_dentry; struct dentry * lower_parent_dentry = NULL; struct path lower_path; diaryfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); err = vfs_mkdir(lower_parent_dentry->d_inode, lower_dentry, mode); if (err) goto out; err = diaryfs_interpose(dentry, dir->i_sb, &lower_path); if (err) goto out; fsstack_copy_attr_times(dir, diaryfs_lower_inode(dir)); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); /* update the # of links on parent directory */ set_nlink(dir, diaryfs_lower_inode(dir)->i_nlink);out: unlock_dir(lower_parent_dentry); diaryfs_put_lower_path(dentry, &lower_path); return err;}
开发者ID:jameswhang,项目名称:DiaryFS,代码行数:28,
示例7: sys_mkdir/* sys_mkdir * Copies the given path into the kernel space, and call vfs_mkdir. */intsys_mkdir(userptr_t path, int mode) { char *p; int result; if ((p = (char *)kmalloc(__PATH_MAX)) == NULL) { return ENOMEM; } /* Copy in the path */ result = copyinstr(path, p, __PATH_MAX, NULL); if (result) { kfree(p); return result; } /* Check that given path of directory is valid */ if (strcmp(p, ".") == 0 || strcmp(p, "..") == 0) { kfree(p); return EEXIST; } result = vfs_mkdir(p, mode); kfree(p); return result;}
开发者ID:gapry,项目名称:os161,代码行数:29,
示例8: __u2fs_mkdirvoid __u2fs_mkdir(struct work_struct *work){ struct sioq_args *args = container_of(work, struct sioq_args, work); struct mkdir_args *m = &args->mkdir; args->err = vfs_mkdir(m->parent, m->dentry, m->mode); complete(&args->comp);}
开发者ID:abhishekgupta8,项目名称:fan-out-unification-file-system-u2fs,代码行数:8,
示例9: u2fs_mkdirstatic int u2fs_mkdir(struct inode *dir, struct dentry *dentry, int mode){ int err = 0; struct dentry *lower_dentry; struct dentry *lower_parent_dentry = NULL; struct path lower_path; struct dentry *ret = NULL; /* creating parent directories if destination is read-only */ if((U2FS_D(dentry)->lower_path[LEFT].dentry) == NULL && (U2FS_D(dentry)->lower_path[LEFT].mnt) == NULL){ ret = create_parents(dir, dentry, dentry->d_name.name); if (!ret || IS_ERR(ret)) { err = PTR_ERR(ret); if (!IS_COPYUP_ERR(err)) printk(KERN_ERR "u2fs: create_parents for " "u2fs_mkdir failed" "err=%d/n", err); goto out_copyup; } u2fs_postcopyup_setmnt(dentry); u2fs_put_reset_lower_path(dentry, RIGHT); } u2fs_get_lower_path(dentry, &lower_path, LEFT); lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); err = mnt_want_write(lower_path.mnt); if (err) goto out_unlock; err = vfs_mkdir(lower_parent_dentry->d_inode, lower_dentry, mode); if (err) goto out; err = u2fs_interpose(dentry, dir->i_sb, &lower_path, LEFT); if (err) goto out; fsstack_copy_attr_times(dir, u2fs_lower_inode(dir, LEFT)); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); /* update number of links on parent directory */ set_nlink(dir, u2fs_lower_inode(dir, LEFT)->i_nlink);out: mnt_drop_write(lower_path.mnt);out_unlock: unlock_dir(lower_parent_dentry); u2fs_put_lower_path(dentry, &lower_path);out_copyup: return err;}
开发者ID:abhishekgupta8,项目名称:fan-out-unification-file-system-u2fs,代码行数:55,
示例10: cmd_vfs_mkdirstatic int cmd_vfs_mkdir(struct vmm_chardev *cdev, const char *path){ int rc; struct stat st; rc = vfs_stat(path, &st); if (!rc) { vmm_cprintf(cdev, "Path %s already exist./n", path); return VMM_EEXIST; } return vfs_mkdir(path, S_IRWXU|S_IRWXG|S_IRWXO);}
开发者ID:MaiDaftedar,项目名称:xvisor-next,代码行数:13,
示例11: mainint main(int argc, char *argv[]){ vfs_init(); vfs_mkdir("/fat"); errval_t err = vfs_mount("/fat", "fat32://0+0"); if (err_is_fail(err)) { USER_PANIC_ERR(err, "vfs_fat_mount failed"); } walk_dir("/fat"); return 0;}
开发者ID:Karamax,项目名称:arrakis,代码行数:14,
示例12: sdcardfs_mkdirstatic int sdcardfs_mkdir(struct inode *dir, struct dentry *dentry, int mode){ int err = 0; struct dentry *lower_dentry; struct dentry *lower_parent_dentry = NULL; struct path lower_path; OVERRIDE_CRED(SDCARDFS_SB(dir->i_sb));#if defined(LOWER_FS_MIN_FREE_SIZE) /* check disk space */ if (!check_min_free_space(dentry, 0, 1)) { REVERT_CRED(); printk(KERN_INFO "No minimum free space./n"); return -ENOSPC; }#endif sdcardfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); err = mnt_want_write(lower_path.mnt); if (err) goto out_unlock; /* set last 16bytes of mode field to 0775 */ mode = (mode & S_IFMT) | 00775; err = vfs_mkdir(lower_parent_dentry->d_inode, lower_dentry, mode); if (err) goto out; err = sdcardfs_interpose(dentry, dir->i_sb, &lower_path); if (err) goto out; fsstack_copy_attr_times(dir, sdcardfs_lower_inode(dir)); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); /* update number of links on parent directory */ dir->i_nlink = sdcardfs_lower_inode(dir)->i_nlink;out: mnt_drop_write(lower_path.mnt);out_unlock: unlock_dir(lower_parent_dentry); sdcardfs_put_lower_path(dentry, &lower_path); REVERT_CRED(); return err;}
开发者ID:ItsAnilSingh,项目名称:android_kernel_samsung_logan2g,代码行数:49,
示例13: do_vfsub_mkdirint do_vfsub_mkdir(struct inode *dir, struct dentry *dentry, int mode){ int err; LKTRTrace("i%lu, %.*s, 0x%x/n", dir->i_ino, AuDLNPair(dentry), mode); IMustLock(dir); err = vfs_mkdir(dir, dentry, mode); if (!err) { /* dir inode is locked */ au_update_fuse_h_inode(NULL, dentry->d_parent); /*ignore*/ au_update_fuse_h_inode(NULL, dentry); /*ignore*/ } return err;}
开发者ID:wosigh,项目名称:patches,代码行数:15,
示例14: ecryptfs_mkdirstatic int ecryptfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode){ int rc; struct dentry *lower_dentry; struct dentry *lower_dir_dentry; lower_dentry = ecryptfs_dentry_to_lower(dentry); lower_dir_dentry = lock_parent(lower_dentry);#ifdef CONFIG_SDP if(!strncmp(lower_dir_dentry->d_sb->s_type->name, "sdcardfs", 8)) { struct sdcardfs_dentry_info *dinfo = SDCARDFS_D(lower_dir_dentry); int len = strlen(dentry->d_name.name); int i, numeric = 1; dinfo->under_knox = 1; dinfo->userid = -1; if(IS_UNDER_ROOT(dentry)) { for(i=0 ; i < len ; i++) if(!isdigit(dentry->d_name.name[i])) { numeric = 0; break; } if(numeric) { dinfo->userid = simple_strtoul(dentry->d_name.name, NULL, 10); } } }#endif rc = vfs_mkdir(lower_dir_dentry->d_inode, lower_dentry, mode); if (rc || !lower_dentry->d_inode) goto out; rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb); if (rc) goto out; fsstack_copy_attr_times(dir, lower_dir_dentry->d_inode); fsstack_copy_inode_size(dir, lower_dir_dentry->d_inode); set_nlink(dir, lower_dir_dentry->d_inode->i_nlink);out:#ifdef CONFIG_SDP if(!strncmp(lower_dir_dentry->d_sb->s_type->name, "sdcardfs", 8)) { struct sdcardfs_dentry_info *dinfo = SDCARDFS_D(lower_dir_dentry); dinfo->under_knox = 0; dinfo->userid = -1; }#endif unlock_dir(lower_dir_dentry); if (!dentry->d_inode) d_drop(dentry); return rc;}
开发者ID:engine95,项目名称:exynos5433-MM-NNKernel,代码行数:48,
示例15: mainint main(int argc, char *argv[]){ errval_t err; vfs_init(); err = vfs_mkdir("/filetests"); if (err_is_fail(err)) { USER_PANIC_ERR(err, "vfs_mkdir failed"); } /* Create a file with a lot of data */ FILE *fh = fopen("/filetests/fread_test.dat", "w"); if (!fh) { USER_PANIC("fopen failed"); } for (int i = 0; i < AMOUNT; i++) { fprintf(fh, "h"); } fclose(fh); /* Read out the data in chunks */ fh = fopen("/filetests/fread_test.dat", "r"); if (!fh) { USER_PANIC("fopen failed"); } char *ptr = malloc(AMOUNT); assert(ptr); size_t size = fread(ptr, 10, 1, fh); if (size != 10) { USER_PANIC("fread did not read full amount"); } size = fread(ptr, AMOUNT - 10, 1, fh); if (size != AMOUNT - 10) { USER_PANIC("fread did not read full amount"); } size = fread(ptr, AMOUNT, 1, fh); if (size != 0) { USER_PANIC("fread did not read full amount"); } printf("client done/n"); return 0;}
开发者ID:CoryXie,项目名称:BarrelfishOS,代码行数:48,
示例16: cmd_mkdstatic void cmd_mkd(const char *arg, struct tcp_pcb *pcb, struct ftpd_msgstate *fsm){ if (arg == NULL) { send_msg(pcb, fsm, msg501); return; } if (*arg == '/0') { send_msg(pcb, fsm, msg501); return; } if (vfs_mkdir(fsm->vfs, arg, VFS_IRWXU | VFS_IRWXG | VFS_IRWXO) != 0) { send_msg(pcb, fsm, msg550); } else { send_msg(pcb, fsm, msg257, arg); }}
开发者ID:skyformat99,项目名称:lwip-ftpd,代码行数:16,
示例17: create_pathstatic int create_path(const char *nodepath){ char *path; struct nameidata nd; int err = 0; struct vfsmount *dev_mnt = ve_devmnt(); path = kstrdup(nodepath, GFP_KERNEL); if (!path) return -ENOMEM; err = vfs_path_lookup(dev_mnt->mnt_root, dev_mnt, path, LOOKUP_PARENT, &nd); if (err == 0) { struct dentry *dentry; /* create directory right away */ dentry = lookup_create(&nd, 1); if (!IS_ERR(dentry)) { err = vfs_mkdir(nd.path.dentry->d_inode, dentry, 0755); dput(dentry); } mutex_unlock(&nd.path.dentry->d_inode->i_mutex); path_put(&nd.path); } else if (err == -ENOENT) { char *s; /* parent directories do not exist, create them */ s = path; while (1) { s = strchr(s, '/'); if (!s) break; s[0] = '/0'; err = dev_mkdir(path, 0755); if (err && err != -EEXIST) break; s[0] = '/'; s++; } } kfree(path); return err;}
开发者ID:katuma,项目名称:openvz-kernel,代码行数:47,
示例18: dev_mkdirstatic int dev_mkdir(const char *name, umode_t mode){ struct dentry *dentry; struct path path; int err; dentry = kern_path_create(AT_FDCWD, name, &path, LOOKUP_DIRECTORY); if (IS_ERR(dentry)) return PTR_ERR(dentry); err = vfs_mkdir(path.dentry->d_inode, dentry, mode); if (!err) /* mark as kernel-created inode */ dentry->d_inode->i_private = &thread; done_path_create(&path, dentry); return err;}
开发者ID:twobrokenshoes,项目名称:linux-3.8,代码行数:17,
示例19: mkdirstatic int mkdir(int argc, char *argv[]){ if(argc != 2) { printf("Usage: %s dir/n", argv[0]); return 1; } char *path = vfs_path_mkabsolute(cwd, argv[1]); errval_t err = vfs_mkdir(path); free(path); if (err_is_fail(err)) { printf("%s/n", err_getstring(err)); return 1; } else { return 0; }}
开发者ID:CoryXie,项目名称:BarrelfishOS,代码行数:17,
示例20: nfsd4_create_clid_dirintnfsd4_create_clid_dir(struct nfs4_client *clp){ char *dname = clp->cl_recdir; struct dentry *dentry; uid_t uid; gid_t gid; int status; dprintk("NFSD: nfsd4_create_clid_dir for /"%s/"/n", dname); if (!rec_dir_init || clp->cl_firststate) return 0; nfs4_save_user(&uid, &gid); /* lock the parent */ mutex_lock(&rec_dir.path.dentry->d_inode->i_mutex); dentry = lookup_one_len(dname, rec_dir.path.dentry, HEXDIR_LEN-1); if (IS_ERR(dentry)) { status = PTR_ERR(dentry); goto out_unlock; } status = -EEXIST; if (dentry->d_inode) { dprintk("NFSD: nfsd4_create_clid_dir: DIRECTORY EXISTS/n"); goto out_put; } status = mnt_want_write(rec_dir.path.mnt); if (status) goto out_put; status = vfs_mkdir(rec_dir.path.dentry->d_inode, dentry, S_IRWXU); mnt_drop_write(rec_dir.path.mnt);out_put: dput(dentry);out_unlock: mutex_unlock(&rec_dir.path.dentry->d_inode->i_mutex); if (status == 0) { clp->cl_firststate = 1; nfsd4_sync_rec_dir(); } nfs4_reset_user(uid, gid); dprintk("NFSD: nfsd4_create_clid_dir returns %d/n", status); return status;}
开发者ID:274914765,项目名称:C,代码行数:46,
示例21: esdfs_mkdirstatic int esdfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode){ int err = 0; struct dentry *lower_dentry; struct dentry *lower_parent_dentry = NULL; struct path lower_path; int mask; const struct cred *creds = esdfs_override_creds(ESDFS_SB(dir->i_sb), &mask); if (!creds) return -ENOMEM; esdfs_get_lower_path(dentry, &lower_path); lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); mode |= S_IFDIR; esdfs_set_lower_mode(ESDFS_SB(dir->i_sb), &mode); err = mnt_want_write(lower_path.mnt); if (err) goto out_unlock; err = vfs_mkdir(lower_parent_dentry->d_inode, lower_dentry, mode); if (err) goto out; err = esdfs_interpose(dentry, dir->i_sb, &lower_path); if (err) goto out; fsstack_copy_attr_times(dir, esdfs_lower_inode(dir)); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); /* update number of links on parent directory */ set_nlink(dir, esdfs_lower_inode(dir)->i_nlink); if (ESDFS_DERIVE_PERMS(ESDFS_SB(dir->i_sb))) err = esdfs_derive_mkdir_contents(dentry);out: mnt_drop_write(lower_path.mnt);out_unlock: unlock_dir(lower_parent_dentry); esdfs_put_lower_path(dentry, &lower_path); esdfs_revert_creds(creds, &mask); return err;}
开发者ID:itsmerajit,项目名称:kernel_otus,代码行数:46,
示例22: create_dev_dir//====================================================================// Create a directory for this device under the given path. Returns// 0 on success and non-zero on failure.static int create_dev_dir(const char *dev_dir_path) { struct dentry *dentry; struct path path; int lookup_flags = LOOKUP_DIRECTORY; umode_t mode = S_IRUGO | S_IXUGO; int err; dentry = kern_path_create(AT_FDCWD, dev_dir_path, &path, lookup_flags); if (IS_ERR(dentry)) { return PTR_ERR(dentry); } err = security_path_mkdir(&path, dentry, mode); if (!err) { err = vfs_mkdir(path.dentry->d_inode, dentry, mode); } done_path_create(&path, dentry); return err;}
开发者ID:Bredgren,项目名称:CSE451,代码行数:21,
示例23: ui_dbase_mk_db_dirstatic BOOL ui_dbase_mk_db_dir(void){ u16 uni_tmp[16] = {0}; if(file_list_get_partition(&p_partition) > 0) { g_partition_letter = p_partition[sys_status_get_usb_work_partition()].letter[0]; uni_tmp[0] = g_partition_letter; str_asc2uni((u8 *)"://", uni_tmp + 1); str_asc2uni((u8 *)IW_DATA_FOLDER_NAME, uni_tmp + 3); OS_PRINTF("sys_status_get_usb_work_partition(%d)/n",sys_status_get_usb_work_partition()); if(vfs_mkdir(uni_tmp) != SUCCESS) { OS_PRINTF("%s, %s dir can't create or exist!/n", __FUNCTION__, "DB_DATA"); } } return 0;}
开发者ID:github188,项目名称:CC6000M_LQ_V3.1_DSCA5.2,代码行数:19,
示例24: sys_mkdirint sys_mkdir (char *pathname, uint_t mode){ register error_t err = 0; struct task_s *task = current_task; struct ku_obj ku_path; KU_BUFF(ku_path, pathname); rwlock_rdlock(&task->cwd_lock); if((err = vfs_mkdir(&task->vfs_cwd, &ku_path, mode))) { current_thread->info.errno = (err < 0) ? -err : err; rwlock_unlock(&task->cwd_lock); return -1; } rwlock_unlock(&task->cwd_lock); return 0;}
开发者ID:walafc0,项目名称:almos-mk,代码行数:19,
示例25: dev_mkdirstatic int dev_mkdir(const char *name, mode_t mode){ struct dentry *dentry; struct path path; int err; dentry = kern_path_create(AT_FDCWD, name, &path, 1); if (IS_ERR(dentry)) return PTR_ERR(dentry); err = vfs_mkdir(path.dentry->d_inode, dentry, mode); if (!err) /* mark as kernel-created inode */ dentry->d_inode->i_private = &thread; dput(dentry); mutex_unlock(&path.dentry->d_inode->i_mutex); path_put(&path); return err;}
开发者ID:nos1609,项目名称:Chrono_Kernel-1,代码行数:19,
示例26: scfs_mkdir/* * scfs_mkdir * * Parameters: * @*dir: inode of the dir to create * @*scfs_dentry: dentry of the dir to create * @mode: * * Return: * SCFS_SUCCESS if success, otherwise if error * * Description: * mkdir() for SCFS. */static int scfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode){ struct dentry *lower_dir_dentry; struct dentry *lower_parent_dentry; int ret; SCFS_DEBUG_START; lower_dir_dentry = scfs_lower_dentry(dentry); lower_parent_dentry = lock_parent(lower_dir_dentry); ret = vfs_mkdir(lower_parent_dentry->d_inode, lower_dir_dentry, mode); if (ret || !lower_dir_dentry->d_inode) { SCFS_PRINT_ERROR("dir %s vfs_mkdir failed, " "lower_dir %s lower_parent %s mode %x/n", dentry->d_name.name, lower_dir_dentry->d_name.name, lower_parent_dentry->d_name.name, mode); goto out; } ret = scfs_interpose(lower_dir_dentry, dentry, dir->i_sb); if (ret) { SCFS_PRINT_ERROR("dir %s interpose failed, " "lower_dir %s lower_parent %s mode %x/n", dentry->d_name.name, lower_dir_dentry->d_name.name, lower_parent_dentry->d_name.name, mode); vfs_rmdir(lower_parent_dentry->d_inode, lower_dir_dentry); goto out; } fsstack_copy_attr_times(dir, lower_parent_dentry->d_inode); fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); set_nlink(dir, lower_parent_dentry->d_inode->i_nlink);out: unlock_dir(lower_parent_dentry); if (!dentry->d_inode) d_drop(dentry); SCFS_DEBUG_END; return ret;}
开发者ID:bju2000,项目名称:android_kernel_samsung_slteskt,代码行数:56,
示例27: ecryptfs_mkdirstatic int ecryptfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode){ int rc; struct dentry *lower_dentry; struct dentry *lower_dir_dentry; lower_dentry = ecryptfs_dentry_to_lower(dentry); lower_dir_dentry = lock_parent(lower_dentry); rc = vfs_mkdir(d_inode(lower_dir_dentry), lower_dentry, mode); if (rc || d_really_is_negative(lower_dentry)) goto out; rc = ecryptfs_interpose(lower_dentry, dentry, dir->i_sb); if (rc) goto out; fsstack_copy_attr_times(dir, d_inode(lower_dir_dentry)); fsstack_copy_inode_size(dir, d_inode(lower_dir_dentry)); set_nlink(dir, d_inode(lower_dir_dentry)->i_nlink);out: unlock_dir(lower_dir_dentry); if (d_really_is_negative(dentry)) d_drop(dentry); return rc;}
开发者ID:acton393,项目名称:linux,代码行数:23,
示例28: mainint main(int argc, char *argv[]){ errval_t err; // initialization vfs_init(); bench_init(); // mount nfs err = vfs_mkdir("/nfs"); assert(err_is_ok(err)); err = vfs_mount("/nfs", "nfs://10.110.4.4/local/nfs"); assert(err_is_ok(err)); // argument processing if (argc == 3) { printf("Started vfs_bench in command-line mode/n"); int32_t chunksize = atol(argv[1]); int32_t repetitions = atol(argv[2]); single_run(chunksize, repetitions); } else { printf("Started vfs_bench./n"); for (int32_t i = 1; i < 20; i++) { single_run(4096, i * 2000); } } //err = vfs_unmount("/nfs"); // unmount is NYI //assert(err_is_ok(err)); err = vfs_rmdir("/nfs"); assert(err_is_ok(err)); return 0;}
开发者ID:Karamax,项目名称:arrakis,代码行数:37,
示例29: walk_parents_mkdirstatic intwalk_parents_mkdir( const char **path, struct nameidata *nd, int is_dir){ char *slash; char buf[strlen(*path)+1]; int error; while ((slash = strchr(*path, '/')) != NULL) { int len = slash - *path; memcpy(buf, *path, len); buf[len] = '/0'; error = path_walk(buf, nd); if (unlikely(error)) return error; nd->dentry = lookup_create(nd, is_dir); nd->flags |= LOOKUP_PARENT; if (IS_ERR(nd->dentry)) return PTR_ERR(nd->dentry); if (!nd->dentry->d_inode) error = vfs_mkdir(nd->dentry->d_parent->d_inode, nd->dentry, 0755); up(&nd->dentry->d_parent->d_inode->i_sem); if (unlikely(error)) return error; *path += len + 1; } return 0;}
开发者ID:NandanPhadke,项目名称:oslab,代码行数:37,
注:本文中的vfs_mkdir函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ vfs_mknod函数代码示例 C++ vfs_lstat函数代码示例 |