Lines Matching refs:inode
54 void ocfs2_extent_map_init(struct inode *inode) in ocfs2_extent_map_init() argument
56 struct ocfs2_inode_info *oi = OCFS2_I(inode); in ocfs2_extent_map_init()
83 static int ocfs2_extent_map_lookup(struct inode *inode, unsigned int cpos, in ocfs2_extent_map_lookup() argument
88 struct ocfs2_inode_info *oi = OCFS2_I(inode); in ocfs2_extent_map_lookup()
114 void ocfs2_extent_map_trunc(struct inode *inode, unsigned int cpos) in ocfs2_extent_map_trunc() argument
117 struct ocfs2_inode_info *oi = OCFS2_I(inode); in ocfs2_extent_map_trunc()
227 void ocfs2_extent_map_insert_rec(struct inode *inode, in ocfs2_extent_map_insert_rec() argument
230 struct ocfs2_inode_info *oi = OCFS2_I(inode); in ocfs2_extent_map_insert_rec()
236 ins.ei_phys = ocfs2_blocks_to_clusters(inode->i_sb, in ocfs2_extent_map_insert_rec()
288 static int ocfs2_last_eb_is_empty(struct inode *inode, in ocfs2_last_eb_is_empty() argument
297 ret = ocfs2_read_extent_block(INODE_CACHE(inode), last_eb_blk, &eb_bh); in ocfs2_last_eb_is_empty()
307 ocfs2_error(inode->i_sb, in ocfs2_last_eb_is_empty()
309 "leaf block %llu\n", inode->i_ino, in ocfs2_last_eb_is_empty()
410 static int ocfs2_get_clusters_nocache(struct inode *inode, in ocfs2_get_clusters_nocache() argument
432 ret = ocfs2_find_leaf(INODE_CACHE(inode), el, v_cluster, in ocfs2_get_clusters_nocache()
443 ocfs2_error(inode->i_sb, in ocfs2_get_clusters_nocache()
445 "leaf block %llu\n", inode->i_ino, in ocfs2_get_clusters_nocache()
460 ret = ocfs2_figure_hole_clusters(INODE_CACHE(inode), in ocfs2_get_clusters_nocache()
478 ocfs2_error(inode->i_sb, "Inode %lu has bad extent " in ocfs2_get_clusters_nocache()
479 "record (%u, %u, 0)", inode->i_ino, in ocfs2_get_clusters_nocache()
510 ret = ocfs2_last_eb_is_empty(inode, di); in ocfs2_get_clusters_nocache()
543 int ocfs2_xattr_get_clusters(struct inode *inode, u32 v_cluster, in ocfs2_xattr_get_clusters() argument
555 ret = ocfs2_find_leaf(INODE_CACHE(inode), el, v_cluster, in ocfs2_xattr_get_clusters()
566 ocfs2_error(inode->i_sb, in ocfs2_xattr_get_clusters()
568 "xattr leaf block %llu\n", inode->i_ino, in ocfs2_xattr_get_clusters()
585 ocfs2_error(inode->i_sb, "Inode %lu has bad extent " in ocfs2_xattr_get_clusters()
586 "record (%u, %u, 0) in xattr", inode->i_ino, in ocfs2_xattr_get_clusters()
593 *p_cluster = ocfs2_blocks_to_clusters(inode->i_sb, in ocfs2_xattr_get_clusters()
608 int ocfs2_get_clusters(struct inode *inode, u32 v_cluster, in ocfs2_get_clusters() argument
617 if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) { in ocfs2_get_clusters()
623 ret = ocfs2_extent_map_lookup(inode, v_cluster, p_cluster, in ocfs2_get_clusters()
628 ret = ocfs2_read_inode_block(inode, &di_bh); in ocfs2_get_clusters()
634 ret = ocfs2_get_clusters_nocache(inode, di_bh, v_cluster, &hole_len, in ocfs2_get_clusters()
652 ocfs2_relative_extent_offsets(inode->i_sb, v_cluster, &rec, in ocfs2_get_clusters()
656 ocfs2_extent_map_insert_rec(inode, &rec); in ocfs2_get_clusters()
671 int ocfs2_extent_map_get_blocks(struct inode *inode, u64 v_blkno, u64 *p_blkno, in ocfs2_extent_map_get_blocks() argument
675 int bpc = ocfs2_clusters_to_blocks(inode->i_sb, 1); in ocfs2_extent_map_get_blocks()
679 cpos = ocfs2_blocks_to_clusters(inode->i_sb, v_blkno); in ocfs2_extent_map_get_blocks()
681 ret = ocfs2_get_clusters(inode, cpos, &p_cluster, &num_clusters, in ocfs2_extent_map_get_blocks()
692 boff = ocfs2_clusters_to_blocks(inode->i_sb, p_cluster); in ocfs2_extent_map_get_blocks()
699 *ret_count = ocfs2_clusters_to_blocks(inode->i_sb, num_clusters); in ocfs2_extent_map_get_blocks()
713 static int ocfs2_fiemap_inline(struct inode *inode, struct buffer_head *di_bh, in ocfs2_fiemap_inline() argument
722 struct ocfs2_inode_info *oi = OCFS2_I(inode); in ocfs2_fiemap_inline()
725 if (ocfs2_inode_is_fast_symlink(inode)) in ocfs2_fiemap_inline()
726 id_count = ocfs2_fast_symlink_chars(inode->i_sb); in ocfs2_fiemap_inline()
731 phys = oi->ip_blkno << inode->i_sb->s_blocksize_bits; in ocfs2_fiemap_inline()
732 if (ocfs2_inode_is_fast_symlink(inode)) in ocfs2_fiemap_inline()
749 int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, in ocfs2_fiemap() argument
755 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_fiemap()
764 ret = ocfs2_inode_lock(inode, &di_bh, 0); in ocfs2_fiemap()
770 down_read(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_fiemap()
775 if ((OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) || in ocfs2_fiemap()
776 ocfs2_inode_is_fast_symlink(inode)) { in ocfs2_fiemap()
777 ret = ocfs2_fiemap_inline(inode, di_bh, fieinfo, map_start); in ocfs2_fiemap()
782 mapping_end = ocfs2_clusters_for_bytes(inode->i_sb, in ocfs2_fiemap()
788 ret = ocfs2_get_clusters_nocache(inode, di_bh, cpos, in ocfs2_fiemap()
825 up_read(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_fiemap()
827 ocfs2_inode_unlock(inode, 0); in ocfs2_fiemap()
835 struct inode *inode = file->f_mapping->host; in ocfs2_seek_data_hole_offset() local
838 u16 cs_bits = OCFS2_SB(inode->i_sb)->s_clustersize_bits; in ocfs2_seek_data_hole_offset()
846 ret = ocfs2_inode_lock(inode, &di_bh, 0); in ocfs2_seek_data_hole_offset()
852 down_read(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_seek_data_hole_offset()
854 if (*offset >= i_size_read(inode)) { in ocfs2_seek_data_hole_offset()
859 if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) { in ocfs2_seek_data_hole_offset()
861 *offset = i_size_read(inode); in ocfs2_seek_data_hole_offset()
867 cend = ocfs2_clusters_for_bytes(inode->i_sb, i_size_read(inode)); in ocfs2_seek_data_hole_offset()
870 ret = ocfs2_get_clusters_nocache(inode, di_bh, cpos, &hole_size, in ocfs2_seek_data_hole_offset()
906 if ((extoff + extlen) > i_size_read(inode)) in ocfs2_seek_data_hole_offset()
907 extlen = i_size_read(inode) - extoff; in ocfs2_seek_data_hole_offset()
920 up_read(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_seek_data_hole_offset()
922 ocfs2_inode_unlock(inode, 0); in ocfs2_seek_data_hole_offset()
927 int ocfs2_read_virt_blocks(struct inode *inode, u64 v_block, int nr, in ocfs2_read_virt_blocks() argument
937 inode, (unsigned long long)v_block, nr, bhs, flags, in ocfs2_read_virt_blocks()
940 if (((v_block + nr - 1) << inode->i_sb->s_blocksize_bits) >= in ocfs2_read_virt_blocks()
941 i_size_read(inode)) { in ocfs2_read_virt_blocks()
947 down_read(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_read_virt_blocks()
948 rc = ocfs2_extent_map_get_blocks(inode, v_block + done, in ocfs2_read_virt_blocks()
950 up_read(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_read_virt_blocks()
960 (unsigned long long)OCFS2_I(inode)->ip_blkno, in ocfs2_read_virt_blocks()
962 inode->i_sb->s_blocksize_bits); in ocfs2_read_virt_blocks()
981 rc = ocfs2_read_blocks(INODE_CACHE(inode), p_block, count, in ocfs2_read_virt_blocks()