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()
465 static int ubifs_dir_release(struct inode *dir, struct file *file) in ubifs_dir_release() argument
498 static int ubifs_link(struct dentry *old_dentry, struct inode *dir, in ubifs_link() argument
501 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_link()
504 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_link()
516 inode->i_nlink, dir->i_ino); in ubifs_link()
517 ubifs_assert(mutex_is_locked(&dir->i_mutex)); in ubifs_link()
528 lock_2_inodes(dir, inode); in ubifs_link()
532 dir->i_size += sz_change; in ubifs_link()
533 dir_ui->ui_size = dir->i_size; in ubifs_link()
534 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_link()
535 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_link()
538 unlock_2_inodes(dir, inode); in ubifs_link()
545 dir->i_size -= sz_change; in ubifs_link()
546 dir_ui->ui_size = dir->i_size; in ubifs_link()
548 unlock_2_inodes(dir, inode); in ubifs_link()
554 static int ubifs_unlink(struct inode *dir, struct dentry *dentry) in ubifs_unlink() argument
556 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_unlink()
558 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_unlink()
573 inode->i_nlink, dir->i_ino); in ubifs_unlink()
574 ubifs_assert(mutex_is_locked(&dir->i_mutex)); in ubifs_unlink()
587 lock_2_inodes(dir, inode); in ubifs_unlink()
588 inode->i_ctime = ubifs_current_time(dir); in ubifs_unlink()
590 dir->i_size -= sz_change; in ubifs_unlink()
591 dir_ui->ui_size = dir->i_size; in ubifs_unlink()
592 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_unlink()
593 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 1, 0); in ubifs_unlink()
596 unlock_2_inodes(dir, inode); in ubifs_unlink()
608 dir->i_size += sz_change; in ubifs_unlink()
609 dir_ui->ui_size = dir->i_size; in ubifs_unlink()
611 unlock_2_inodes(dir, inode); in ubifs_unlink()
626 static int check_dir_empty(struct ubifs_info *c, struct inode *dir) in check_dir_empty() argument
633 lowest_dent_key(c, &key, dir->i_ino); in check_dir_empty()
646 static int ubifs_rmdir(struct inode *dir, struct dentry *dentry) in ubifs_rmdir() argument
648 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_rmdir()
652 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_rmdir()
662 inode->i_ino, dir->i_ino); in ubifs_rmdir()
663 ubifs_assert(mutex_is_locked(&dir->i_mutex)); in ubifs_rmdir()
676 lock_2_inodes(dir, inode); in ubifs_rmdir()
677 inode->i_ctime = ubifs_current_time(dir); in ubifs_rmdir()
679 drop_nlink(dir); in ubifs_rmdir()
680 dir->i_size -= sz_change; in ubifs_rmdir()
681 dir_ui->ui_size = dir->i_size; in ubifs_rmdir()
682 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_rmdir()
683 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 1, 0); in ubifs_rmdir()
686 unlock_2_inodes(dir, inode); in ubifs_rmdir()
698 dir->i_size += sz_change; in ubifs_rmdir()
699 dir_ui->ui_size = dir->i_size; in ubifs_rmdir()
700 inc_nlink(dir); in ubifs_rmdir()
702 unlock_2_inodes(dir, inode); in ubifs_rmdir()
708 static int ubifs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in ubifs_mkdir() argument
711 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_mkdir()
712 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_mkdir()
722 dentry, mode, dir->i_ino); in ubifs_mkdir()
728 inode = ubifs_new_inode(c, dir, S_IFDIR | mode); in ubifs_mkdir()
734 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_mkdir()
741 inc_nlink(dir); in ubifs_mkdir()
742 dir->i_size += sz_change; in ubifs_mkdir()
743 dir_ui->ui_size = dir->i_size; in ubifs_mkdir()
744 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_mkdir()
745 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_mkdir()
757 dir->i_size -= sz_change; in ubifs_mkdir()
758 dir_ui->ui_size = dir->i_size; in ubifs_mkdir()
759 drop_nlink(dir); in ubifs_mkdir()
769 static int ubifs_mknod(struct inode *dir, struct dentry *dentry, in ubifs_mknod() argument
774 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_mknod()
775 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_mknod()
788 dbg_gen("dent '%pd' in dir ino %lu", dentry, dir->i_ino); in ubifs_mknod()
806 inode = ubifs_new_inode(c, dir, mode); in ubifs_mknod()
819 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_mknod()
824 dir->i_size += sz_change; in ubifs_mknod()
825 dir_ui->ui_size = dir->i_size; in ubifs_mknod()
826 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_mknod()
827 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_mknod()
838 dir->i_size -= sz_change; in ubifs_mknod()
839 dir_ui->ui_size = dir->i_size; in ubifs_mknod()
849 static int ubifs_symlink(struct inode *dir, struct dentry *dentry, in ubifs_symlink() argument
854 struct ubifs_inode *dir_ui = ubifs_inode(dir); in ubifs_symlink()
855 struct ubifs_info *c = dir->i_sb->s_fs_info; in ubifs_symlink()
868 symname, dir->i_ino); in ubifs_symlink()
877 inode = ubifs_new_inode(c, dir, S_IFLNK | S_IRWXUGO); in ubifs_symlink()
900 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_symlink()
905 dir->i_size += sz_change; in ubifs_symlink()
906 dir_ui->ui_size = dir->i_size; in ubifs_symlink()
907 dir->i_mtime = dir->i_ctime = inode->i_ctime; in ubifs_symlink()
908 err = ubifs_jnl_update(c, dir, &dentry->d_name, inode, 0, 0); in ubifs_symlink()
919 dir->i_size -= sz_change; in ubifs_symlink()
920 dir_ui->ui_size = dir->i_size; in ubifs_symlink()