Lines Matching refs:ip

26 void inode_set_bytes(struct reiserfs_node *ip, off_t bytes);
47 struct reiserfs_node *ip; in reiserfs_read() local
57 ip = VTOI(vp); in reiserfs_read()
58 sbi = ip->i_reiserfs; in reiserfs_read()
63 if ((bytesinfile = ip->i_size - uio->uio_offset) <= 0) in reiserfs_read()
77 if ((error = reiserfs_get_block(ip, lbn, offset, uio)) != 0) { in reiserfs_read()
107 struct reiserfs_node *ip; in reiserfs_inactive() local
111 ip = VTOI(vp); in reiserfs_inactive()
118 if (ip->i_mode == 0) in reiserfs_inactive()
128 if (ip->i_mode == 0) { in reiserfs_inactive()
139 struct reiserfs_node *ip; in reiserfs_reclaim() local
146 ip = VTOI(vp); in reiserfs_reclaim()
184 make_cpu_key(struct cpu_key *key, struct reiserfs_node *ip, off_t offset, in make_cpu_key() argument
188 _make_cpu_key(key, get_inode_item_key_version(ip), in make_cpu_key()
189 le32toh(INODE_PKEY(ip)->k_dir_id), in make_cpu_key()
190 le32toh(INODE_PKEY(ip)->k_objectid), in make_cpu_key()
195 reiserfs_get_block(struct reiserfs_node *ip, long block, off_t offset, in reiserfs_get_block() argument
207 sbi = ip->i_reiserfs; in reiserfs_get_block()
211 make_cpu_key(&key, ip, (off_t)block * sbi->s_blocksize + 1, TYPE_ANY, 3); in reiserfs_get_block()
249 ip->i_size - uio->uio_offset); in reiserfs_get_block()
323 fs_gen = get_generation(ip->i_reiserfs); in reiserfs_get_block()
343 blk = malloc(ip->i_size, M_REISERFSNODE, M_WAITOK | M_ZERO); in reiserfs_get_block()
362 if ((le_ih_k_offset(ih) + path.pos_in_item) > ip->i_size) in reiserfs_get_block()
365 if ((le_ih_k_offset(ih) - 1 + ih_item_len(ih)) > ip->i_size) { in reiserfs_get_block()
366 chars = ip->i_size - (le_ih_k_offset(ih) - 1) - in reiserfs_get_block()
411 ret = uiomove(blk, ip->i_size, uio); in reiserfs_get_block()
422 real_space_diff(struct reiserfs_node *ip, int sd_size) in real_space_diff() argument
425 off_t blocksize = ip->i_reiserfs->s_blocksize; in real_space_diff()
427 if (S_ISLNK(ip->i_mode) || S_ISDIR(ip->i_mode)) in real_space_diff()
436 bytes = ((ip->i_size + (blocksize - 1)) >> in real_space_diff()
437 ip->i_reiserfs->s_blocksize_bits) * UNFM_P_SIZE + sd_size; in real_space_diff()
443 to_real_used_space(struct reiserfs_node *ip, unsigned long blocks, int sd_size) in to_real_used_space() argument
446 if (S_ISLNK(ip->i_mode) || S_ISDIR(ip->i_mode)) { in to_real_used_space()
447 return ip->i_size + (off_t)(real_space_diff(ip, sd_size)); in to_real_used_space()
450 return ((off_t)real_space_diff(ip, sd_size)) + (((off_t)blocks) << 9); in to_real_used_space()
454 inode_set_bytes(struct reiserfs_node *ip, off_t bytes) in inode_set_bytes() argument
457 ip->i_blocks = bytes >> 9; in inode_set_bytes()
458 ip->i_bytes = bytes & 511; in inode_set_bytes()
463 init_inode(struct reiserfs_node *ip, struct path *path) in init_inode() argument
474 copy_key(INODE_PKEY(ip), &(ih->ih_key)); in init_inode()
478 REISERFS_I(ip)->i_flags = 0; in init_inode()
480 REISERFS_I(ip)->i_prealloc_block = 0; in init_inode()
481 REISERFS_I(ip)->i_prealloc_count = 0; in init_inode()
482 REISERFS_I(ip)->i_trans_id = 0; in init_inode()
483 REISERFS_I(ip)->i_jl = NULL; in init_inode()
484 REISERFS_I(ip)->i_acl_access = NULL; in init_inode()
485 REISERFS_I(ip)->i_acl_default = NULL; in init_inode()
497 set_inode_item_key_version(ip, KEY_FORMAT_3_5); in init_inode()
498 set_inode_sd_version(ip, STAT_DATA_V1); in init_inode()
499 ip->i_mode = sd_v1_mode(sd); in init_inode()
500 ip->i_nlink = sd_v1_nlink(sd); in init_inode()
501 ip->i_uid = sd_v1_uid(sd); in init_inode()
502 ip->i_gid = sd_v1_gid(sd); in init_inode()
503 ip->i_size = sd_v1_size(sd); in init_inode()
504 ip->i_atime.tv_sec = sd_v1_atime(sd); in init_inode()
505 ip->i_mtime.tv_sec = sd_v1_mtime(sd); in init_inode()
506 ip->i_ctime.tv_sec = sd_v1_ctime(sd); in init_inode()
507 ip->i_atime.tv_nsec = 0; in init_inode()
508 ip->i_ctime.tv_nsec = 0; in init_inode()
509 ip->i_mtime.tv_nsec = 0; in init_inode()
511 reiserfs_log(LOG_DEBUG, " mode = %08x\n", ip->i_mode); in init_inode()
512 reiserfs_log(LOG_DEBUG, " nlink = %d\n", ip->i_nlink); in init_inode()
513 reiserfs_log(LOG_DEBUG, " owner = %d:%d\n", ip->i_uid, in init_inode()
514 ip->i_gid); in init_inode()
516 (intmax_t)ip->i_size); in init_inode()
518 (intmax_t)ip->i_atime.tv_sec); in init_inode()
520 (intmax_t)ip->i_mtime.tv_sec); in init_inode()
522 (intmax_t)ip->i_ctime.tv_sec); in init_inode()
524 ip->i_blocks = sd_v1_blocks(sd); in init_inode()
525 ip->i_generation = le32toh(INODE_PKEY(ip)->k_dir_id); in init_inode()
526 blocks = (ip->i_size + 511) >> 9; in init_inode()
527 blocks = _ROUND_UP(blocks, ip->i_reiserfs->s_blocksize >> 9); in init_inode()
528 if (ip->i_blocks > blocks) { in init_inode()
538 ip->i_blocks = blocks; in init_inode()
542 REISERFS_I(ip)->i_first_direct_byte = in init_inode()
549 if (ip->i_blocks & 1) { in init_inode()
550 ip->i_blocks++ ; in init_inode()
552 inode_set_bytes(ip, to_real_used_space(ip, ip->i_blocks, in init_inode()
559 REISERFS_I(ip)->i_flags &= ~i_nopack_mask; in init_inode()
570 ip->i_mode = sd_v2_mode(sd); in init_inode()
571 ip->i_nlink = sd_v2_nlink(sd); in init_inode()
572 ip->i_uid = sd_v2_uid(sd); in init_inode()
573 ip->i_size = sd_v2_size(sd); in init_inode()
574 ip->i_gid = sd_v2_gid(sd); in init_inode()
575 ip->i_mtime.tv_sec = sd_v2_mtime(sd); in init_inode()
576 ip->i_atime.tv_sec = sd_v2_atime(sd); in init_inode()
577 ip->i_ctime.tv_sec = sd_v2_ctime(sd); in init_inode()
578 ip->i_ctime.tv_nsec = 0; in init_inode()
579 ip->i_mtime.tv_nsec = 0; in init_inode()
580 ip->i_atime.tv_nsec = 0; in init_inode()
582 reiserfs_log(LOG_DEBUG, " mode = %08x\n", ip->i_mode); in init_inode()
583 reiserfs_log(LOG_DEBUG, " nlink = %d\n", ip->i_nlink); in init_inode()
584 reiserfs_log(LOG_DEBUG, " owner = %d:%d\n", ip->i_uid, in init_inode()
585 ip->i_gid); in init_inode()
587 (intmax_t)ip->i_size); in init_inode()
589 (intmax_t)ip->i_atime.tv_sec); in init_inode()
591 (intmax_t)ip->i_mtime.tv_sec); in init_inode()
593 (intmax_t)ip->i_ctime.tv_sec); in init_inode()
595 ip->i_blocks = sd_v2_blocks(sd); in init_inode()
597 reiserfs_log(LOG_DEBUG, " blocks = %u\n", ip->i_blocks); in init_inode()
599 if (S_ISCHR(ip->i_mode) || S_ISBLK(ip->i_mode)) in init_inode()
600 ip->i_generation = le32toh(INODE_PKEY(ip)->k_dir_id); in init_inode()
602 ip->i_generation = sd_v2_generation(sd); in init_inode()
604 if (S_ISDIR(ip->i_mode) || S_ISLNK(ip->i_mode)) in init_inode()
605 set_inode_item_key_version(ip, KEY_FORMAT_3_5); in init_inode()
607 set_inode_item_key_version(ip, KEY_FORMAT_3_6); in init_inode()
609 REISERFS_I(ip)->i_first_direct_byte = 0; in init_inode()
610 set_inode_sd_version(ip, STAT_DATA_V2); in init_inode()
611 inode_set_bytes(ip, to_real_used_space(ip, ip->i_blocks, in init_inode()
618 REISERFS_I(ip)->i_attrs = sd_v2_attrs(sd); in init_inode()
619 sd_attrs_to_i_attrs(sd_v2_attrs(sd), ip); in init_inode()
624 if (S_ISREG(ip->i_mode)) { in init_inode()
629 } else if (S_ISDIR(ip->i_mode)) { in init_inode()
633 } else if (S_ISLNK(ip->i_mode)) { in init_inode()
640 ip->i_blocks = 0; in init_inode()
654 reiserfs_make_bad_inode(struct reiserfs_node *ip) { in reiserfs_make_bad_inode() argument
656 memset(INODE_PKEY(ip), 0, KEY_SIZE); in reiserfs_make_bad_inode()
661 reiserfs_read_locked_inode(struct reiserfs_node *ip, in reiserfs_read_locked_inode() argument
677 key.on_disk_key.k_objectid = ip->i_number; in reiserfs_read_locked_inode()
682 retval = search_item(ip->i_reiserfs, &key, &path_to_sd); in reiserfs_read_locked_inode()
688 reiserfs_make_bad_inode(ip); in reiserfs_read_locked_inode()
700 reiserfs_make_bad_inode(ip); in reiserfs_read_locked_inode()
701 ip->i_nlink = 0; in reiserfs_read_locked_inode()
705 init_inode(ip, &path_to_sd); in reiserfs_read_locked_inode()
724 if((ip->i_nlink == 0) && in reiserfs_read_locked_inode()
725 !REISERFS_SB(ip->i_reiserfs)->s_is_unlinked_ok ) { in reiserfs_read_locked_inode()
728 reiserfs_make_bad_inode(ip); in reiserfs_read_locked_inode()
743 struct reiserfs_node *ip; in reiserfs_iget() local
761 ip = malloc(sizeof(struct reiserfs_node), M_REISERFSNODE, in reiserfs_iget()
769 free(ip, M_REISERFSNODE); in reiserfs_iget()
778 vp->v_data = ip; in reiserfs_iget()
779 ip->i_vnode = vp; in reiserfs_iget()
780 ip->i_dev = dev; in reiserfs_iget()
781 ip->i_number = args.objectid; in reiserfs_iget()
782 ip->i_ino = args.dirid; in reiserfs_iget()
783 ip->i_reiserfs = rmp->rm_reiserfs; in reiserfs_iget()
789 if (ip->i_number == REISERFS_ROOT_OBJECTID && in reiserfs_iget()
790 ip->i_ino == REISERFS_ROOT_PARENT_OBJECTID) in reiserfs_iget()
808 free(ip, M_REISERFSNODE); in reiserfs_iget()
821 reiserfs_read_locked_inode(ip, &args); in reiserfs_iget()
823 ip->i_devvp = rmp->rm_devvp; in reiserfs_iget()
825 switch(vp->v_type = IFTOVT(ip->i_mode)) { in reiserfs_iget()
834 vp = addaliasu(vp, ip->i_rdev); in reiserfs_iget()
835 ip->i_vnode = vp; in reiserfs_iget()
851 sd_attrs_to_i_attrs(uint16_t sd_attrs, struct reiserfs_node *ip) in sd_attrs_to_i_attrs() argument
854 if (reiserfs_attrs(ip->i_reiserfs)) { in sd_attrs_to_i_attrs()
857 ip->i_flags |= S_SYNC; in sd_attrs_to_i_attrs()
859 ip->i_flags &= ~S_SYNC; in sd_attrs_to_i_attrs()
862 ip->i_flags |= IMMUTABLE; in sd_attrs_to_i_attrs()
864 ip->i_flags &= ~IMMUTABLE; in sd_attrs_to_i_attrs()
866 ip->i_flags |= APPEND; in sd_attrs_to_i_attrs()
868 ip->i_flags &= ~APPEND; in sd_attrs_to_i_attrs()
871 ip->i_flags |= S_NOATIME; in sd_attrs_to_i_attrs()
873 ip->i_flags &= ~S_NOATIME; in sd_attrs_to_i_attrs()
875 REISERFS_I(ip)->i_flags |= i_nopack_mask; in sd_attrs_to_i_attrs()
877 REISERFS_I(ip)->i_flags &= ~i_nopack_mask; in sd_attrs_to_i_attrs()
883 i_attrs_to_sd_attrs(struct reiserfs_node *ip, uint16_t *sd_attrs) in i_attrs_to_sd_attrs() argument
886 if (reiserfs_attrs(ip->i_reiserfs)) { in i_attrs_to_sd_attrs()
888 if (ip->i_flags & S_SYNC) in i_attrs_to_sd_attrs()
893 if (ip->i_flags & IMMUTABLE) in i_attrs_to_sd_attrs()
897 if (ip->i_flags & APPEND) in i_attrs_to_sd_attrs()
902 if (ip->i_flags & S_NOATIME) in i_attrs_to_sd_attrs()
906 if (REISERFS_I(ip)->i_flags & i_nopack_mask) in i_attrs_to_sd_attrs()