Lines Matching refs:dir
59 static int inherit_flags(const struct inode *dir, umode_t mode) in inherit_flags() argument
62 const struct ubifs_inode *ui = ubifs_inode(dir); in inherit_flags()
64 if (!S_ISDIR(dir->i_mode)) in inherit_flags()
88 struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir, in ubifs_new_inode() argument
107 inode_init_owner(inode, dir, mode); in ubifs_new_inode()
136 ui->flags = inherit_flags(dir, mode); in ubifs_new_inode()
184 static struct dentry *ubifs_lookup(struct inode *dir, struct dentry *dentry, in ubifs_lookup() argument
191 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_lookup()
193 dbg_gen("'%pd' in dir ino %lu", dentry, dir->i_ino); in ubifs_lookup()
202 dent_key_init(c, &key, dir->i_ino, &dentry->d_name); in ubifs_lookup()
218 inode = ubifs_iget(dir->i_sb, le64_to_cpu(dent->inum)); in ubifs_lookup()
245 static int ubifs_create(struct inode *dir, struct dentry *dentry, umode_t mode, in ubifs_create() argument
249 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_create()
253 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_create()
261 dentry, mode, dir->i_ino); in ubifs_create()
267 inode = ubifs_new_inode(c, dir, mode); in ubifs_create()
273 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_create()
278 dir->i_size += sz_change; in ubifs_create()
279 dir_ui->ui_size = dir->i_size; in ubifs_create()
280 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_create()
281 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_create()
292 dir->i_size -= sz_change; in ubifs_create()
293 dir_ui->ui_size = dir->i_size; in ubifs_create()
357 struct inode *dir = file_inode(file); in ubifs_readdir() local
358 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_readdir()
360 dbg_gen("dir ino %lu, f_pos %#llx", dir->i_ino, ctx->pos); in ubifs_readdir()
394 lowest_dent_key(c, &key, dir->i_ino); in ubifs_readdir()
412 dent_key_init_hash(c, &key, dir->i_ino, ctx->pos); in ubifs_readdir()
428 ubifs_inode(dir)->creat_sqnum); in ubifs_readdir()
466 static int ubifs_dir_release(struct inode *dir, struct file *file) in ubifs_dir_release() argument
499 static int ubifs_link(struct dentry *old_dentry, struct inode *dir, in ubifs_link() argument
502 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_link()
505 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_link()
517 inode->i_nlink, dir->i_ino); in ubifs_link()
518 ubifs_assert(mutex_is_locked(&dir->i_mutex)); in ubifs_link()
529 lock_2_inodes(dir, inode); in ubifs_link()
533 dir->i_size += sz_change; in ubifs_link()
534 dir_ui->ui_size = dir->i_size; in ubifs_link()
535 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_link()
536 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_link()
539 unlock_2_inodes(dir, inode); in ubifs_link()
546 dir->i_size -= sz_change; in ubifs_link()
547 dir_ui->ui_size = dir->i_size; in ubifs_link()
549 unlock_2_inodes(dir, inode); in ubifs_link()
555 static int ubifs_unlink(struct inode *dir, struct dentry *dentry) in ubifs_unlink() argument
557 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_unlink()
559 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_unlink()
574 inode->i_nlink, dir->i_ino); in ubifs_unlink()
575 ubifs_assert(mutex_is_locked(&dir->i_mutex)); in ubifs_unlink()
588 lock_2_inodes(dir, inode); in ubifs_unlink()
589 inode->i_ctime = ubifs_current_time(dir); in ubifs_unlink()
591 dir->i_size -= sz_change; in ubifs_unlink()
592 dir_ui->ui_size = dir->i_size; in ubifs_unlink()
593 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_unlink()
594 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 1, 0); in ubifs_unlink()
597 unlock_2_inodes(dir, inode); in ubifs_unlink()
609 dir->i_size += sz_change; in ubifs_unlink()
610 dir_ui->ui_size = dir->i_size; in ubifs_unlink()
612 unlock_2_inodes(dir, inode); in ubifs_unlink()
627 static int check_dir_empty(struct ubifs_info *c, struct inode *dir) in check_dir_empty() argument
634 lowest_dent_key(c, &key, dir->i_ino); in check_dir_empty()
647 static int ubifs_rmdir(struct inode *dir, struct dentry *dentry) in ubifs_rmdir() argument
649 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_rmdir()
653 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_rmdir()
663 inode->i_ino, dir->i_ino); in ubifs_rmdir()
664 ubifs_assert(mutex_is_locked(&dir->i_mutex)); in ubifs_rmdir()
677 lock_2_inodes(dir, inode); in ubifs_rmdir()
678 inode->i_ctime = ubifs_current_time(dir); in ubifs_rmdir()
680 drop_nlink(dir); in ubifs_rmdir()
681 dir->i_size -= sz_change; in ubifs_rmdir()
682 dir_ui->ui_size = dir->i_size; in ubifs_rmdir()
683 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_rmdir()
684 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 1, 0); in ubifs_rmdir()
687 unlock_2_inodes(dir, inode); in ubifs_rmdir()
699 dir->i_size += sz_change; in ubifs_rmdir()
700 dir_ui->ui_size = dir->i_size; in ubifs_rmdir()
701 inc_nlink(dir); in ubifs_rmdir()
703 unlock_2_inodes(dir, inode); in ubifs_rmdir()
709 static int ubifs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in ubifs_mkdir() argument
712 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_mkdir()
713 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_mkdir()
723 dentry, mode, dir->i_ino); in ubifs_mkdir()
729 inode = ubifs_new_inode(c, dir, S_IFDIR | mode); in ubifs_mkdir()
735 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_mkdir()
742 inc_nlink(dir); in ubifs_mkdir()
743 dir->i_size += sz_change; in ubifs_mkdir()
744 dir_ui->ui_size = dir->i_size; in ubifs_mkdir()
745 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_mkdir()
746 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_mkdir()
758 dir->i_size -= sz_change; in ubifs_mkdir()
759 dir_ui->ui_size = dir->i_size; in ubifs_mkdir()
760 drop_nlink(dir); in ubifs_mkdir()
770 static int ubifs_mknod(struct inode *dir, struct dentry *dentry, in ubifs_mknod() argument
775 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_mknod()
776 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_mknod()
789 dbg_gen("dent '%pd' in dir ino %lu", dentry, dir->i_ino); in ubifs_mknod()
804 inode = ubifs_new_inode(c, dir, mode); in ubifs_mknod()
817 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_mknod()
822 dir->i_size += sz_change; in ubifs_mknod()
823 dir_ui->ui_size = dir->i_size; in ubifs_mknod()
824 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_mknod()
825 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_mknod()
836 dir->i_size -= sz_change; in ubifs_mknod()
837 dir_ui->ui_size = dir->i_size; in ubifs_mknod()
847 static int ubifs_symlink(struct inode *dir, struct dentry *dentry, in ubifs_symlink() argument
852 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_symlink()
853 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_symlink()
866 symname, dir->i_ino); in ubifs_symlink()
875 inode = ubifs_new_inode(c, dir, S_IFLNK | S_IRWXUGO); in ubifs_symlink()
899 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_symlink()
904 dir->i_size += sz_change; in ubifs_symlink()
905 dir_ui->ui_size = dir->i_size; in ubifs_symlink()
906 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_symlink()
907 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_symlink()
918 dir->i_size -= sz_change; in ubifs_symlink()
919 dir_ui->ui_size = dir->i_size; in ubifs_symlink()