Lines Matching refs:inode
22 static int minix_write_inode(struct inode *inode,
27 static void minix_evict_inode(struct inode *inode) in minix_evict_inode() argument
29 truncate_inode_pages_final(&inode->i_data); in minix_evict_inode()
30 if (!inode->i_nlink) { in minix_evict_inode()
31 inode->i_size = 0; in minix_evict_inode()
32 minix_truncate(inode); in minix_evict_inode()
34 invalidate_inode_buffers(inode); in minix_evict_inode()
35 clear_inode(inode); in minix_evict_inode()
36 if (!inode->i_nlink) in minix_evict_inode()
37 minix_free_inode(inode); in minix_evict_inode()
62 static struct inode *minix_alloc_inode(struct super_block *sb) in minix_alloc_inode()
73 struct inode *inode = container_of(head, struct inode, i_rcu); in minix_i_callback() local
74 kmem_cache_free(minix_inode_cachep, minix_i(inode)); in minix_i_callback()
77 static void minix_destroy_inode(struct inode *inode) in minix_destroy_inode() argument
79 call_rcu(&inode->i_rcu, minix_i_callback); in minix_destroy_inode()
165 struct inode *root_inode; in minix_fill_super()
375 static int minix_get_block(struct inode *inode, sector_t block, in minix_get_block() argument
378 if (INODE_VERSION(inode) == MINIX_V1) in minix_get_block()
379 return V1_minix_get_block(inode, block, bh_result, create); in minix_get_block()
381 return V2_minix_get_block(inode, block, bh_result, create); in minix_get_block()
401 struct inode *inode = mapping->host; in minix_write_failed() local
403 if (to > inode->i_size) { in minix_write_failed()
404 truncate_pagecache(inode, inode->i_size); in minix_write_failed()
405 minix_truncate(inode); in minix_write_failed()
443 void minix_set_inode(struct inode *inode, dev_t rdev) in minix_set_inode() argument
445 if (S_ISREG(inode->i_mode)) { in minix_set_inode()
446 inode->i_op = &minix_file_inode_operations; in minix_set_inode()
447 inode->i_fop = &minix_file_operations; in minix_set_inode()
448 inode->i_mapping->a_ops = &minix_aops; in minix_set_inode()
449 } else if (S_ISDIR(inode->i_mode)) { in minix_set_inode()
450 inode->i_op = &minix_dir_inode_operations; in minix_set_inode()
451 inode->i_fop = &minix_dir_operations; in minix_set_inode()
452 inode->i_mapping->a_ops = &minix_aops; in minix_set_inode()
453 } else if (S_ISLNK(inode->i_mode)) { in minix_set_inode()
454 inode->i_op = &minix_symlink_inode_operations; in minix_set_inode()
455 inode->i_mapping->a_ops = &minix_aops; in minix_set_inode()
457 init_special_inode(inode, inode->i_mode, rdev); in minix_set_inode()
463 static struct inode *V1_minix_iget(struct inode *inode) in V1_minix_iget() argument
467 struct minix_inode_info *minix_inode = minix_i(inode); in V1_minix_iget()
470 raw_inode = minix_V1_raw_inode(inode->i_sb, inode->i_ino, &bh); in V1_minix_iget()
472 iget_failed(inode); in V1_minix_iget()
475 inode->i_mode = raw_inode->i_mode; in V1_minix_iget()
476 i_uid_write(inode, raw_inode->i_uid); in V1_minix_iget()
477 i_gid_write(inode, raw_inode->i_gid); in V1_minix_iget()
478 set_nlink(inode, raw_inode->i_nlinks); in V1_minix_iget()
479 inode->i_size = raw_inode->i_size; in V1_minix_iget()
480 inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec = raw_inode->i_time; in V1_minix_iget()
481 inode->i_mtime.tv_nsec = 0; in V1_minix_iget()
482 inode->i_atime.tv_nsec = 0; in V1_minix_iget()
483 inode->i_ctime.tv_nsec = 0; in V1_minix_iget()
484 inode->i_blocks = 0; in V1_minix_iget()
487 minix_set_inode(inode, old_decode_dev(raw_inode->i_zone[0])); in V1_minix_iget()
489 unlock_new_inode(inode); in V1_minix_iget()
490 return inode; in V1_minix_iget()
496 static struct inode *V2_minix_iget(struct inode *inode) in V2_minix_iget() argument
500 struct minix_inode_info *minix_inode = minix_i(inode); in V2_minix_iget()
503 raw_inode = minix_V2_raw_inode(inode->i_sb, inode->i_ino, &bh); in V2_minix_iget()
505 iget_failed(inode); in V2_minix_iget()
508 inode->i_mode = raw_inode->i_mode; in V2_minix_iget()
509 i_uid_write(inode, raw_inode->i_uid); in V2_minix_iget()
510 i_gid_write(inode, raw_inode->i_gid); in V2_minix_iget()
511 set_nlink(inode, raw_inode->i_nlinks); in V2_minix_iget()
512 inode->i_size = raw_inode->i_size; in V2_minix_iget()
513 inode->i_mtime.tv_sec = raw_inode->i_mtime; in V2_minix_iget()
514 inode->i_atime.tv_sec = raw_inode->i_atime; in V2_minix_iget()
515 inode->i_ctime.tv_sec = raw_inode->i_ctime; in V2_minix_iget()
516 inode->i_mtime.tv_nsec = 0; in V2_minix_iget()
517 inode->i_atime.tv_nsec = 0; in V2_minix_iget()
518 inode->i_ctime.tv_nsec = 0; in V2_minix_iget()
519 inode->i_blocks = 0; in V2_minix_iget()
522 minix_set_inode(inode, old_decode_dev(raw_inode->i_zone[0])); in V2_minix_iget()
524 unlock_new_inode(inode); in V2_minix_iget()
525 return inode; in V2_minix_iget()
531 struct inode *minix_iget(struct super_block *sb, unsigned long ino) in minix_iget()
533 struct inode *inode; in minix_iget() local
535 inode = iget_locked(sb, ino); in minix_iget()
536 if (!inode) in minix_iget()
538 if (!(inode->i_state & I_NEW)) in minix_iget()
539 return inode; in minix_iget()
541 if (INODE_VERSION(inode) == MINIX_V1) in minix_iget()
542 return V1_minix_iget(inode); in minix_iget()
544 return V2_minix_iget(inode); in minix_iget()
550 static struct buffer_head * V1_minix_update_inode(struct inode * inode) in V1_minix_update_inode() argument
554 struct minix_inode_info *minix_inode = minix_i(inode); in V1_minix_update_inode()
557 raw_inode = minix_V1_raw_inode(inode->i_sb, inode->i_ino, &bh); in V1_minix_update_inode()
560 raw_inode->i_mode = inode->i_mode; in V1_minix_update_inode()
561 raw_inode->i_uid = fs_high2lowuid(i_uid_read(inode)); in V1_minix_update_inode()
562 raw_inode->i_gid = fs_high2lowgid(i_gid_read(inode)); in V1_minix_update_inode()
563 raw_inode->i_nlinks = inode->i_nlink; in V1_minix_update_inode()
564 raw_inode->i_size = inode->i_size; in V1_minix_update_inode()
565 raw_inode->i_time = inode->i_mtime.tv_sec; in V1_minix_update_inode()
566 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) in V1_minix_update_inode()
567 raw_inode->i_zone[0] = old_encode_dev(inode->i_rdev); in V1_minix_update_inode()
577 static struct buffer_head * V2_minix_update_inode(struct inode * inode) in V2_minix_update_inode() argument
581 struct minix_inode_info *minix_inode = minix_i(inode); in V2_minix_update_inode()
584 raw_inode = minix_V2_raw_inode(inode->i_sb, inode->i_ino, &bh); in V2_minix_update_inode()
587 raw_inode->i_mode = inode->i_mode; in V2_minix_update_inode()
588 raw_inode->i_uid = fs_high2lowuid(i_uid_read(inode)); in V2_minix_update_inode()
589 raw_inode->i_gid = fs_high2lowgid(i_gid_read(inode)); in V2_minix_update_inode()
590 raw_inode->i_nlinks = inode->i_nlink; in V2_minix_update_inode()
591 raw_inode->i_size = inode->i_size; in V2_minix_update_inode()
592 raw_inode->i_mtime = inode->i_mtime.tv_sec; in V2_minix_update_inode()
593 raw_inode->i_atime = inode->i_atime.tv_sec; in V2_minix_update_inode()
594 raw_inode->i_ctime = inode->i_ctime.tv_sec; in V2_minix_update_inode()
595 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode)) in V2_minix_update_inode()
596 raw_inode->i_zone[0] = old_encode_dev(inode->i_rdev); in V2_minix_update_inode()
603 static int minix_write_inode(struct inode *inode, struct writeback_control *wbc) in minix_write_inode() argument
608 if (INODE_VERSION(inode) == MINIX_V1) in minix_write_inode()
609 bh = V1_minix_update_inode(inode); in minix_write_inode()
611 bh = V2_minix_update_inode(inode); in minix_write_inode()
618 inode->i_sb->s_id, inode->i_ino); in minix_write_inode()
641 void minix_truncate(struct inode * inode) in minix_truncate() argument
643 if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode))) in minix_truncate()
645 if (INODE_VERSION(inode) == MINIX_V1) in minix_truncate()
646 V1_minix_truncate(inode); in minix_truncate()
648 V2_minix_truncate(inode); in minix_truncate()