Lines Matching refs:inode

59 static int inherit_flags(const struct inode *dir, umode_t mode)  in inherit_flags()
88 struct inode *ubifs_new_inode(struct ubifs_info *c, const struct inode *dir, in ubifs_new_inode()
91 struct inode *inode; in ubifs_new_inode() local
94 inode = new_inode(c->vfs_sb); in ubifs_new_inode()
95 ui = ubifs_inode(inode); in ubifs_new_inode()
96 if (!inode) in ubifs_new_inode()
105 inode->i_flags |= S_NOCMTIME; in ubifs_new_inode()
107 inode_init_owner(inode, dir, mode); in ubifs_new_inode()
108 inode->i_mtime = inode->i_atime = inode->i_ctime = in ubifs_new_inode()
109 ubifs_current_time(inode); in ubifs_new_inode()
110 inode->i_mapping->nrpages = 0; in ubifs_new_inode()
114 inode->i_mapping->a_ops = &ubifs_file_address_operations; in ubifs_new_inode()
115 inode->i_op = &ubifs_file_inode_operations; in ubifs_new_inode()
116 inode->i_fop = &ubifs_file_operations; in ubifs_new_inode()
119 inode->i_op = &ubifs_dir_inode_operations; in ubifs_new_inode()
120 inode->i_fop = &ubifs_dir_operations; in ubifs_new_inode()
121 inode->i_size = ui->ui_size = UBIFS_INO_NODE_SZ; in ubifs_new_inode()
124 inode->i_op = &ubifs_symlink_inode_operations; in ubifs_new_inode()
130 inode->i_op = &ubifs_file_inode_operations; in ubifs_new_inode()
137 ubifs_set_inode_flags(inode); in ubifs_new_inode()
150 make_bad_inode(inode); in ubifs_new_inode()
151 iput(inode); in ubifs_new_inode()
158 inode->i_ino = ++c->highest_inum; in ubifs_new_inode()
168 return inode; in ubifs_new_inode()
184 static struct dentry *ubifs_lookup(struct inode *dir, struct dentry *dentry, in ubifs_lookup()
189 struct inode *inode = NULL; in ubifs_lookup() local
218 inode = ubifs_iget(dir->i_sb, le64_to_cpu(dent->inum)); in ubifs_lookup()
219 if (IS_ERR(inode)) { in ubifs_lookup()
224 err = PTR_ERR(inode); in ubifs_lookup()
237 d_add(dentry, inode); in ubifs_lookup()
245 static int ubifs_create(struct inode *dir, struct dentry *dentry, umode_t mode, in ubifs_create()
248 struct inode *inode; in ubifs_create() local
267 inode = ubifs_new_inode(c, dir, mode); in ubifs_create()
268 if (IS_ERR(inode)) { in ubifs_create()
269 err = PTR_ERR(inode); in ubifs_create()
273 err = ubifs_init_security(dir, inode, &dentry->d_name); 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()
287 insert_inode_hash(inode); in ubifs_create()
288 d_instantiate(dentry, inode); in ubifs_create()
296 make_bad_inode(inode); in ubifs_create()
297 iput(inode); in ubifs_create()
357 struct inode *dir = file_inode(file); in ubifs_readdir()
465 static int ubifs_dir_release(struct inode *dir, struct file *file) in ubifs_dir_release()
481 static void lock_2_inodes(struct inode *inode1, struct inode *inode2) in lock_2_inodes()
492 static void unlock_2_inodes(struct inode *inode1, struct inode *inode2) in unlock_2_inodes()
498 static int ubifs_link(struct dentry *old_dentry, struct inode *dir, in ubifs_link()
502 struct inode *inode = d_inode(old_dentry); in ubifs_link() local
503 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_link()
515 dentry, inode->i_ino, in ubifs_link()
516 inode->i_nlink, dir->i_ino); in ubifs_link()
518 ubifs_assert(mutex_is_locked(&inode->i_mutex)); in ubifs_link()
520 err = dbg_check_synced_i_size(c, inode); in ubifs_link()
528 lock_2_inodes(dir, inode); in ubifs_link()
529 inc_nlink(inode); in ubifs_link()
530 ihold(inode); in ubifs_link()
531 inode->i_ctime = ubifs_current_time(inode); 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()
541 d_instantiate(dentry, inode); in ubifs_link()
547 drop_nlink(inode); in ubifs_link()
548 unlock_2_inodes(dir, inode); in ubifs_link()
550 iput(inode); in ubifs_link()
554 static int ubifs_unlink(struct inode *dir, struct dentry *dentry) in ubifs_unlink()
557 struct inode *inode = d_inode(dentry); in ubifs_unlink() local
562 unsigned int saved_nlink = inode->i_nlink; in ubifs_unlink()
572 dentry, inode->i_ino, in ubifs_unlink()
573 inode->i_nlink, dir->i_ino); in ubifs_unlink()
575 ubifs_assert(mutex_is_locked(&inode->i_mutex)); in ubifs_unlink()
576 err = dbg_check_synced_i_size(c, inode); in ubifs_unlink()
587 lock_2_inodes(dir, inode); in ubifs_unlink()
588 inode->i_ctime = ubifs_current_time(dir); in ubifs_unlink()
589 drop_nlink(inode); 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()
610 set_nlink(inode, saved_nlink); 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()
646 static int ubifs_rmdir(struct inode *dir, struct dentry *dentry) in ubifs_rmdir()
649 struct inode *inode = d_inode(dentry); in ubifs_rmdir() local
662 inode->i_ino, dir->i_ino); in ubifs_rmdir()
664 ubifs_assert(mutex_is_locked(&inode->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()
678 clear_nlink(inode); 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()
701 set_nlink(inode, 2); 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()
710 struct inode *inode; in ubifs_mkdir() local
728 inode = ubifs_new_inode(c, dir, S_IFDIR | mode); in ubifs_mkdir()
729 if (IS_ERR(inode)) { in ubifs_mkdir()
730 err = PTR_ERR(inode); in ubifs_mkdir()
734 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_mkdir()
739 insert_inode_hash(inode); in ubifs_mkdir()
740 inc_nlink(inode); 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()
753 d_instantiate(dentry, inode); in ubifs_mkdir()
762 make_bad_inode(inode); in ubifs_mkdir()
763 iput(inode); in ubifs_mkdir()
769 static int ubifs_mknod(struct inode *dir, struct dentry *dentry, in ubifs_mknod()
772 struct inode *inode; in ubifs_mknod() local
806 inode = ubifs_new_inode(c, dir, mode); in ubifs_mknod()
807 if (IS_ERR(inode)) { in ubifs_mknod()
809 err = PTR_ERR(inode); in ubifs_mknod()
813 init_special_inode(inode, inode->i_mode, rdev); in ubifs_mknod()
814 inode->i_size = ubifs_inode(inode)->ui_size = devlen; in ubifs_mknod()
815 ui = ubifs_inode(inode); in ubifs_mknod()
819 err = ubifs_init_security(dir, inode, &dentry->d_name); 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()
833 insert_inode_hash(inode); in ubifs_mknod()
834 d_instantiate(dentry, inode); in ubifs_mknod()
842 make_bad_inode(inode); in ubifs_mknod()
843 iput(inode); in ubifs_mknod()
849 static int ubifs_symlink(struct inode *dir, struct dentry *dentry, in ubifs_symlink()
852 struct inode *inode; in ubifs_symlink() local
877 inode = ubifs_new_inode(c, dir, S_IFLNK | S_IRWXUGO); in ubifs_symlink()
878 if (IS_ERR(inode)) { in ubifs_symlink()
879 err = PTR_ERR(inode); in ubifs_symlink()
883 ui = ubifs_inode(inode); in ubifs_symlink()
898 inode->i_size = ubifs_inode(inode)->ui_size = len; in ubifs_symlink()
900 err = ubifs_init_security(dir, inode, &dentry->d_name); 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()
914 insert_inode_hash(inode); in ubifs_symlink()
915 d_instantiate(dentry, inode); in ubifs_symlink()
923 make_bad_inode(inode); in ubifs_symlink()
924 iput(inode); in ubifs_symlink()
943 static void lock_3_inodes(struct inode *inode1, struct inode *inode2, in lock_3_inodes()
944 struct inode *inode3) in lock_3_inodes()
959 static void unlock_3_inodes(struct inode *inode1, struct inode *inode2, in unlock_3_inodes()
960 struct inode *inode3) in unlock_3_inodes()
969 static int ubifs_rename(struct inode *old_dir, struct dentry *old_dentry, in ubifs_rename()
970 struct inode *new_dir, struct dentry *new_dentry) in ubifs_rename()
973 struct inode *old_inode = d_inode(old_dentry); in ubifs_rename()
974 struct inode *new_inode = d_inode(new_dentry); in ubifs_rename()
1139 struct inode *inode = d_inode(dentry); in ubifs_getattr() local
1140 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_getattr()
1143 generic_fillattr(inode, stat); in ubifs_getattr()
1159 if (S_ISREG(inode->i_mode)) { in ubifs_getattr()