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()
466 static int ubifs_dir_release(struct inode *dir, struct file *file) in ubifs_dir_release()
482 static void lock_2_inodes(struct inode *inode1, struct inode *inode2) in lock_2_inodes()
493 static void unlock_2_inodes(struct inode *inode1, struct inode *inode2) in unlock_2_inodes()
499 static int ubifs_link(struct dentry *old_dentry, struct inode *dir, in ubifs_link()
503 struct inode *inode = d_inode(old_dentry); in ubifs_link() local
504 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_link()
516 dentry, inode->i_ino, in ubifs_link()
517 inode->i_nlink, dir->i_ino); in ubifs_link()
519 ubifs_assert(mutex_is_locked(&inode->i_mutex)); in ubifs_link()
521 err = dbg_check_synced_i_size(c, inode); in ubifs_link()
529 lock_2_inodes(dir, inode); in ubifs_link()
530 inc_nlink(inode); in ubifs_link()
531 ihold(inode); in ubifs_link()
532 inode->i_ctime = ubifs_current_time(inode); 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()
542 d_instantiate(dentry, inode); in ubifs_link()
548 drop_nlink(inode); in ubifs_link()
549 unlock_2_inodes(dir, inode); in ubifs_link()
551 iput(inode); in ubifs_link()
555 static int ubifs_unlink(struct inode *dir, struct dentry *dentry) in ubifs_unlink()
558 struct inode *inode = d_inode(dentry); in ubifs_unlink() local
563 unsigned int saved_nlink = inode->i_nlink; in ubifs_unlink()
573 dentry, inode->i_ino, in ubifs_unlink()
574 inode->i_nlink, dir->i_ino); in ubifs_unlink()
576 ubifs_assert(mutex_is_locked(&inode->i_mutex)); in ubifs_unlink()
577 err = dbg_check_synced_i_size(c, inode); in ubifs_unlink()
588 lock_2_inodes(dir, inode); in ubifs_unlink()
589 inode->i_ctime = ubifs_current_time(dir); in ubifs_unlink()
590 drop_nlink(inode); 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()
611 set_nlink(inode, saved_nlink); 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()
647 static int ubifs_rmdir(struct inode *dir, struct dentry *dentry) in ubifs_rmdir()
650 struct inode *inode = d_inode(dentry); in ubifs_rmdir() local
663 inode->i_ino, dir->i_ino); in ubifs_rmdir()
665 ubifs_assert(mutex_is_locked(&inode->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()
679 clear_nlink(inode); 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()
702 set_nlink(inode, 2); 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()
711 struct inode *inode; in ubifs_mkdir() local
729 inode = ubifs_new_inode(c, dir, S_IFDIR | mode); in ubifs_mkdir()
730 if (IS_ERR(inode)) { in ubifs_mkdir()
731 err = PTR_ERR(inode); in ubifs_mkdir()
735 err = ubifs_init_security(dir, inode, &dentry->d_name); in ubifs_mkdir()
740 insert_inode_hash(inode); in ubifs_mkdir()
741 inc_nlink(inode); 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()
754 d_instantiate(dentry, inode); in ubifs_mkdir()
763 make_bad_inode(inode); in ubifs_mkdir()
764 iput(inode); in ubifs_mkdir()
770 static int ubifs_mknod(struct inode *dir, struct dentry *dentry, in ubifs_mknod()
773 struct inode *inode; in ubifs_mknod() local
804 inode = ubifs_new_inode(c, dir, mode); in ubifs_mknod()
805 if (IS_ERR(inode)) { in ubifs_mknod()
807 err = PTR_ERR(inode); in ubifs_mknod()
811 init_special_inode(inode, inode->i_mode, rdev); in ubifs_mknod()
812 inode->i_size = ubifs_inode(inode)->ui_size = devlen; in ubifs_mknod()
813 ui = ubifs_inode(inode); in ubifs_mknod()
817 err = ubifs_init_security(dir, inode, &dentry->d_name); 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()
831 insert_inode_hash(inode); in ubifs_mknod()
832 d_instantiate(dentry, inode); in ubifs_mknod()
840 make_bad_inode(inode); in ubifs_mknod()
841 iput(inode); in ubifs_mknod()
847 static int ubifs_symlink(struct inode *dir, struct dentry *dentry, in ubifs_symlink()
850 struct inode *inode; in ubifs_symlink() local
875 inode = ubifs_new_inode(c, dir, S_IFLNK | S_IRWXUGO); in ubifs_symlink()
876 if (IS_ERR(inode)) { in ubifs_symlink()
877 err = PTR_ERR(inode); in ubifs_symlink()
881 ui = ubifs_inode(inode); in ubifs_symlink()
890 inode->i_link = ui->data; in ubifs_symlink()
897 inode->i_size = ubifs_inode(inode)->ui_size = len; in ubifs_symlink()
899 err = ubifs_init_security(dir, inode, &dentry->d_name); 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()
913 insert_inode_hash(inode); in ubifs_symlink()
914 d_instantiate(dentry, inode); in ubifs_symlink()
922 make_bad_inode(inode); in ubifs_symlink()
923 iput(inode); in ubifs_symlink()
942 static void lock_3_inodes(struct inode *inode1, struct inode *inode2, in lock_3_inodes()
943 struct inode *inode3) in lock_3_inodes()
958 static void unlock_3_inodes(struct inode *inode1, struct inode *inode2, in unlock_3_inodes()
959 struct inode *inode3) in unlock_3_inodes()
968 static int ubifs_rename(struct inode *old_dir, struct dentry *old_dentry, in ubifs_rename()
969 struct inode *new_dir, struct dentry *new_dentry) in ubifs_rename()
972 struct inode *old_inode = d_inode(old_dentry); in ubifs_rename()
973 struct inode *new_inode = d_inode(new_dentry); in ubifs_rename()
1138 struct inode *inode = d_inode(dentry); in ubifs_getattr() local
1139 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_getattr()
1142 generic_fillattr(inode, stat); in ubifs_getattr()
1158 if (S_ISREG(inode->i_mode)) { in ubifs_getattr()