Lines Matching refs:inode

52 static struct inode *inodes_locked_down[INODE_LOCKED_MAX];
59 struct inode *iget_locked(struct super_block *sb, unsigned long ino) in iget_locked()
61 struct inode *inode; in iget_locked() local
63 inode = (struct inode *)malloc_cache_aligned( in iget_locked()
65 if (inode) { in iget_locked()
66 inode->i_ino = ino; in iget_locked()
67 inode->i_sb = sb; in iget_locked()
68 list_add(&inode->i_sb_list, &sb->s_inodes); in iget_locked()
69 inode->i_state = I_LOCK | I_NEW; in iget_locked()
72 return inode; in iget_locked()
75 void iget_failed(struct inode *inode) in iget_failed() argument
79 int ubifs_iput(struct inode *inode) in ubifs_iput() argument
81 list_del_init(&inode->i_sb_list); in ubifs_iput()
83 free(inode); in ubifs_iput()
90 void iput(struct inode *inode) in iput() argument
93 struct inode *ino; in iput()
111 ino = (struct inode *)malloc_cache_aligned(sizeof(struct ubifs_inode)); in iput()
112 memcpy(ino, inode, sizeof(struct ubifs_inode)); in iput()
129 void clear_nlink(struct inode *inode) in clear_nlink() argument
131 if (inode->i_nlink) { in clear_nlink()
132 inode->__i_nlink = 0; in clear_nlink()
133 atomic_long_inc(&inode->i_sb->s_remove_count); in clear_nlink()
146 void set_nlink(struct inode *inode, unsigned int nlink) in set_nlink() argument
149 clear_nlink(inode); in set_nlink()
152 if (inode->i_nlink == 0) in set_nlink()
153 atomic_long_dec(&inode->i_sb->s_remove_count); in set_nlink()
155 inode->__i_nlink = nlink; in set_nlink()
161 static inline void i_uid_write(struct inode *inode, uid_t uid) in i_uid_write() argument
163 inode->i_uid.val = uid; in i_uid_write()
166 static inline void i_gid_write(struct inode *inode, gid_t gid) in i_gid_write() argument
168 inode->i_gid.val = gid; in i_gid_write()
171 void unlock_new_inode(struct inode *inode) in unlock_new_inode() argument
205 static int validate_inode(struct ubifs_info *c, const struct inode *inode) in validate_inode() argument
208 const struct ubifs_inode *ui = ubifs_inode(inode); in validate_inode()
210 if (inode->i_size > c->max_inode_sz) { in validate_inode()
212 (long long)inode->i_size); in validate_inode()
227 if (ui->xattr && !S_ISREG(inode->i_mode)) in validate_inode()
232 inode->i_ino, ubifs_compr_name(ui->compr_type)); in validate_inode()
235 err = dbg_check_dir(c, inode); in validate_inode()
239 struct inode *ubifs_iget(struct super_block *sb, unsigned long inum) in ubifs_iget()
245 struct inode *inode; in ubifs_iget() local
276 inode = iget_locked(sb, inum); in ubifs_iget()
277 if (!inode) in ubifs_iget()
279 if (!(inode->i_state & I_NEW)) in ubifs_iget()
280 return inode; in ubifs_iget()
281 ui = ubifs_inode(inode); in ubifs_iget()
289 ino_key_init(c, &key, inode->i_ino); in ubifs_iget()
295 inode->i_flags |= (S_NOCMTIME | S_NOATIME); in ubifs_iget()
296 set_nlink(inode, le32_to_cpu(ino->nlink)); in ubifs_iget()
297 i_uid_write(inode, le32_to_cpu(ino->uid)); in ubifs_iget()
298 i_gid_write(inode, le32_to_cpu(ino->gid)); in ubifs_iget()
299 inode->i_atime.tv_sec = (int64_t)le64_to_cpu(ino->atime_sec); in ubifs_iget()
300 inode->i_atime.tv_nsec = le32_to_cpu(ino->atime_nsec); in ubifs_iget()
301 inode->i_mtime.tv_sec = (int64_t)le64_to_cpu(ino->mtime_sec); in ubifs_iget()
302 inode->i_mtime.tv_nsec = le32_to_cpu(ino->mtime_nsec); in ubifs_iget()
303 inode->i_ctime.tv_sec = (int64_t)le64_to_cpu(ino->ctime_sec); in ubifs_iget()
304 inode->i_ctime.tv_nsec = le32_to_cpu(ino->ctime_nsec); in ubifs_iget()
305 inode->i_mode = le32_to_cpu(ino->mode); in ubifs_iget()
306 inode->i_size = le64_to_cpu(ino->size); in ubifs_iget()
315 ui->synced_i_size = ui->ui_size = inode->i_size; in ubifs_iget()
319 err = validate_inode(c, inode); in ubifs_iget()
324 switch (inode->i_mode & S_IFMT) { in ubifs_iget()
326 inode->i_mapping->a_ops = &ubifs_file_address_operations; in ubifs_iget()
327 inode->i_op = &ubifs_file_inode_operations; in ubifs_iget()
328 inode->i_fop = &ubifs_file_operations; in ubifs_iget()
343 inode->i_op = &ubifs_dir_inode_operations; in ubifs_iget()
344 inode->i_fop = &ubifs_dir_operations; in ubifs_iget()
351 inode->i_op = &ubifs_symlink_inode_operations; in ubifs_iget()
363 inode->i_link = ui->data; in ubifs_iget()
387 inode->i_op = &ubifs_file_inode_operations; in ubifs_iget()
388 init_special_inode(inode, inode->i_mode, rdev); in ubifs_iget()
393 inode->i_op = &ubifs_file_inode_operations; in ubifs_iget()
394 init_special_inode(inode, inode->i_mode, 0); in ubifs_iget()
405 if ((inode->i_mode & S_IFMT) == S_IFLNK) { in ubifs_iget()
422 ubifs_set_inode_flags(inode); in ubifs_iget()
424 unlock_new_inode(inode); in ubifs_iget()
425 return inode; in ubifs_iget()
428 ubifs_err(c, "inode %lu validation failed, error %d", inode->i_ino, err); in ubifs_iget()
430 ubifs_dump_inode(c, inode); in ubifs_iget()
435 ubifs_err(c, "failed to read inode %lu, error %d", inode->i_ino, err); in ubifs_iget()
436 iget_failed(inode); in ubifs_iget()
440 static struct inode *ubifs_alloc_inode(struct super_block *sb) in ubifs_alloc_inode()
448 memset((void *)ui + sizeof(struct inode), 0, in ubifs_alloc_inode()
449 sizeof(struct ubifs_inode) - sizeof(struct inode)); in ubifs_alloc_inode()
458 struct inode *inode = container_of(head, struct inode, i_rcu); in ubifs_i_callback() local
459 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_i_callback()
463 static void ubifs_destroy_inode(struct inode *inode) in ubifs_destroy_inode() argument
465 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_destroy_inode()
468 call_rcu(&inode->i_rcu, ubifs_i_callback); in ubifs_destroy_inode()
474 static int ubifs_write_inode(struct inode *inode, struct writeback_control *wbc) in ubifs_write_inode() argument
477 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_write_inode()
478 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_write_inode()
481 if (is_bad_inode(inode)) in ubifs_write_inode()
502 inode->i_ino, (int)inode->i_mode, inode->i_nlink); in ubifs_write_inode()
503 if (inode->i_nlink) { in ubifs_write_inode()
504 err = ubifs_jnl_write_inode(c, inode); in ubifs_write_inode()
507 inode->i_ino, err); in ubifs_write_inode()
509 err = dbg_check_inode_size(c, inode, ui->ui_size); in ubifs_write_inode()
518 static void ubifs_evict_inode(struct inode *inode) in ubifs_evict_inode() argument
521 struct ubifs_info *c = inode->i_sb->s_fs_info; in ubifs_evict_inode()
522 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_evict_inode()
532 dbg_gen("inode %lu, mode %#x", inode->i_ino, (int)inode->i_mode); in ubifs_evict_inode()
533 ubifs_assert(!atomic_read(&inode->i_count)); in ubifs_evict_inode()
535 truncate_inode_pages_final(&inode->i_data); in ubifs_evict_inode()
537 if (inode->i_nlink) in ubifs_evict_inode()
540 if (is_bad_inode(inode)) in ubifs_evict_inode()
543 ui->ui_size = inode->i_size = 0; in ubifs_evict_inode()
544 err = ubifs_jnl_delete_inode(c, inode); in ubifs_evict_inode()
551 inode->i_ino, err); in ubifs_evict_inode()
562 clear_inode(inode); in ubifs_evict_inode()
566 static void ubifs_dirty_inode(struct inode *inode, int flags) in ubifs_dirty_inode() argument
568 struct ubifs_inode *ui = ubifs_inode(inode); in ubifs_dirty_inode()
573 dbg_gen("inode %lu", inode->i_ino); in ubifs_dirty_inode()
2241 struct inode *root; in ubifs_fill_super()