Lines Matching refs:inode
3 * linux/fs/minix/inode.c
23 static int minix_write_inode(struct inode *inode,
28 static void minix_evict_inode(struct inode *inode)
30 truncate_inode_pages_final(&inode->i_data);
31 if (!inode->i_nlink) {
32 inode->i_size = 0;
33 minix_truncate(inode);
35 invalidate_inode_buffers(inode);
36 clear_inode(inode);
37 if (!inode->i_nlink)
38 minix_free_inode(inode);
63 static struct inode *minix_alloc_inode(struct super_block *sb)
72 static void minix_free_in_core_inode(struct inode *inode)
74 kmem_cache_free(minix_inode_cachep, minix_i(inode));
179 struct inode *root_inode;
298 /* set up enough so that it can read an inode */
329 printk("MINIX-fs: get root inode failed\n");
391 static int minix_get_block(struct inode *inode, sector_t block,
394 if (INODE_VERSION(inode) == MINIX_V1)
395 return V1_minix_get_block(inode, block, bh_result, create);
397 return V2_minix_get_block(inode, block, bh_result, create);
417 struct inode *inode = mapping->host;
419 if (to > inode->i_size) {
420 truncate_pagecache(inode, inode->i_size);
421 minix_truncate(inode);
458 void minix_set_inode(struct inode *inode, dev_t rdev)
460 if (S_ISREG(inode->i_mode)) {
461 inode->i_op = &minix_file_inode_operations;
462 inode->i_fop = &minix_file_operations;
463 inode->i_mapping->a_ops = &minix_aops;
464 } else if (S_ISDIR(inode->i_mode)) {
465 inode->i_op = &minix_dir_inode_operations;
466 inode->i_fop = &minix_dir_operations;
467 inode->i_mapping->a_ops = &minix_aops;
468 } else if (S_ISLNK(inode->i_mode)) {
469 inode->i_op = &minix_symlink_inode_operations;
470 inode_nohighmem(inode);
471 inode->i_mapping->a_ops = &minix_aops;
473 init_special_inode(inode, inode->i_mode, rdev);
477 * The minix V1 function to read an inode.
479 static struct inode *V1_minix_iget(struct inode *inode)
483 struct minix_inode_info *minix_inode = minix_i(inode);
486 raw_inode = minix_V1_raw_inode(inode->i_sb, inode->i_ino, &bh);
488 iget_failed(inode);
492 printk("MINIX-fs: deleted inode referenced: %lu\n",
493 inode->i_ino);
495 iget_failed(inode);
498 inode->i_mode = raw_inode->i_mode;
499 i_uid_write(inode, raw_inode->i_uid);
500 i_gid_write(inode, raw_inode->i_gid);
501 set_nlink(inode, raw_inode->i_nlinks);
502 inode->i_size = raw_inode->i_size;
503 inode->i_mtime.tv_sec = inode->i_atime.tv_sec = inode->i_ctime.tv_sec = raw_inode->i_time;
504 inode->i_mtime.tv_nsec = 0;
505 inode->i_atime.tv_nsec = 0;
506 inode->i_ctime.tv_nsec = 0;
507 inode->i_blocks = 0;
510 minix_set_inode(inode, old_decode_dev(raw_inode->i_zone[0]));
512 unlock_new_inode(inode);
513 return inode;
517 * The minix V2 function to read an inode.
519 static struct inode *V2_minix_iget(struct inode *inode)
523 struct minix_inode_info *minix_inode = minix_i(inode);
526 raw_inode = minix_V2_raw_inode(inode->i_sb, inode->i_ino, &bh);
528 iget_failed(inode);
532 printk("MINIX-fs: deleted inode referenced: %lu\n",
533 inode->i_ino);
535 iget_failed(inode);
538 inode->i_mode = raw_inode->i_mode;
539 i_uid_write(inode, raw_inode->i_uid);
540 i_gid_write(inode, raw_inode->i_gid);
541 set_nlink(inode, raw_inode->i_nlinks);
542 inode->i_size = raw_inode->i_size;
543 inode->i_mtime.tv_sec = raw_inode->i_mtime;
544 inode->i_atime.tv_sec = raw_inode->i_atime;
545 inode->i_ctime.tv_sec = raw_inode->i_ctime;
546 inode->i_mtime.tv_nsec = 0;
547 inode->i_atime.tv_nsec = 0;
548 inode->i_ctime.tv_nsec = 0;
549 inode->i_blocks = 0;
552 minix_set_inode(inode, old_decode_dev(raw_inode->i_zone[0]));
554 unlock_new_inode(inode);
555 return inode;
559 * The global function to read an inode.
561 struct inode *minix_iget(struct super_block *sb, unsigned long ino)
563 struct inode *inode;
565 inode = iget_locked(sb, ino);
566 if (!inode)
568 if (!(inode->i_state & I_NEW))
569 return inode;
571 if (INODE_VERSION(inode) == MINIX_V1)
572 return V1_minix_iget(inode);
574 return V2_minix_iget(inode);
578 * The minix V1 function to synchronize an inode.
580 static struct buffer_head * V1_minix_update_inode(struct inode * inode)
584 struct minix_inode_info *minix_inode = minix_i(inode);
587 raw_inode = minix_V1_raw_inode(inode->i_sb, inode->i_ino, &bh);
590 raw_inode->i_mode = inode->i_mode;
591 raw_inode->i_uid = fs_high2lowuid(i_uid_read(inode));
592 raw_inode->i_gid = fs_high2lowgid(i_gid_read(inode));
593 raw_inode->i_nlinks = inode->i_nlink;
594 raw_inode->i_size = inode->i_size;
595 raw_inode->i_time = inode->i_mtime.tv_sec;
596 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
597 raw_inode->i_zone[0] = old_encode_dev(inode->i_rdev);
605 * The minix V2 function to synchronize an inode.
607 static struct buffer_head * V2_minix_update_inode(struct inode * inode)
611 struct minix_inode_info *minix_inode = minix_i(inode);
614 raw_inode = minix_V2_raw_inode(inode->i_sb, inode->i_ino, &bh);
617 raw_inode->i_mode = inode->i_mode;
618 raw_inode->i_uid = fs_high2lowuid(i_uid_read(inode));
619 raw_inode->i_gid = fs_high2lowgid(i_gid_read(inode));
620 raw_inode->i_nlinks = inode->i_nlink;
621 raw_inode->i_size = inode->i_size;
622 raw_inode->i_mtime = inode->i_mtime.tv_sec;
623 raw_inode->i_atime = inode->i_atime.tv_sec;
624 raw_inode->i_ctime = inode->i_ctime.tv_sec;
625 if (S_ISCHR(inode->i_mode) || S_ISBLK(inode->i_mode))
626 raw_inode->i_zone[0] = old_encode_dev(inode->i_rdev);
633 static int minix_write_inode(struct inode *inode, struct writeback_control *wbc)
638 if (INODE_VERSION(inode) == MINIX_V1)
639 bh = V1_minix_update_inode(inode);
641 bh = V2_minix_update_inode(inode);
647 printk("IO error syncing minix inode [%s:%08lx]\n",
648 inode->i_sb->s_id, inode->i_ino);
660 struct inode *inode = d_inode(path->dentry);
662 generic_fillattr(inode, stat);
663 if (INODE_VERSION(inode) == MINIX_V1)
674 void minix_truncate(struct inode * inode)
676 if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode) || S_ISLNK(inode->i_mode)))
678 if (INODE_VERSION(inode) == MINIX_V1)
679 V1_minix_truncate(inode);
681 V2_minix_truncate(inode);