Lines Matching refs:inode
43 struct inode *inode; member
64 struct inode *inode = context->inode; in __ocfs2_move_extent() local
65 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in __ocfs2_move_extent()
70 u64 old_blkno = ocfs2_clusters_to_blocks(inode->i_sb, p_cpos); in __ocfs2_move_extent()
72 ret = ocfs2_duplicate_clusters_by_page(handle, inode, cpos, in __ocfs2_move_extent()
82 replace_rec.e_blkno = cpu_to_le64(ocfs2_clusters_to_blocks(inode->i_sb, in __ocfs2_move_extent()
92 ret = ocfs2_find_path(INODE_CACHE(inode), path, cpos); in __ocfs2_move_extent()
102 ocfs2_error(inode->i_sb, in __ocfs2_move_extent()
119 ret = ocfs2_journal_access_di(handle, INODE_CACHE(inode), in __ocfs2_move_extent()
144 ret = ocfs2_decrease_refcount(inode, handle, in __ocfs2_move_extent()
154 ocfs2_update_inode_fsync_trans(handle, inode, 0); in __ocfs2_move_extent()
167 static int ocfs2_lock_allocators_move_extents(struct inode *inode, in ocfs2_lock_allocators_move_extents() argument
178 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_lock_allocators_move_extents()
232 struct inode *inode = context->inode; in ocfs2_defrag_extent() local
233 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_defrag_extent()
234 struct inode *tl_inode = osb->osb_tl_inode; in ocfs2_defrag_extent()
237 u64 phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, phys_cpos); in ocfs2_defrag_extent()
241 BUG_ON(!(OCFS2_I(inode)->ip_dyn_features & in ocfs2_defrag_extent()
253 ret = ocfs2_prepare_refcount_change_for_del(inode, in ocfs2_defrag_extent()
265 ret = ocfs2_lock_allocators_move_extents(inode, &context->et, *len, 1, in ocfs2_defrag_extent()
335 ret = ocfs2_cow_sync_writeback(inode->i_sb, context->inode, cpos, *len); in ocfs2_defrag_extent()
365 static int ocfs2_find_victim_alloc_group(struct inode *inode, in ocfs2_find_victim_alloc_group() argument
375 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_find_victim_alloc_group()
402 inode->i_sb->s_blocksize_bits; in ocfs2_find_victim_alloc_group()
469 static int ocfs2_validate_and_adjust_move_goal(struct inode *inode, in ocfs2_validate_and_adjust_move_goal() argument
476 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_validate_and_adjust_move_goal()
478 inode->i_sb->s_blocksize_bits); in ocfs2_validate_and_adjust_move_goal()
483 range->me_goal = ocfs2_block_to_cluster_start(inode->i_sb, in ocfs2_validate_and_adjust_move_goal()
489 ret = ocfs2_find_victim_alloc_group(inode, range->me_goal, in ocfs2_validate_and_adjust_move_goal()
526 static void ocfs2_probe_alloc_group(struct inode *inode, struct buffer_head *bh, in ocfs2_probe_alloc_group() argument
532 u32 base_cpos = ocfs2_blocks_to_clusters(inode->i_sb, in ocfs2_probe_alloc_group()
571 struct inode *inode = context->inode; in ocfs2_move_extent() local
572 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_move_extent()
573 struct inode *tl_inode = osb->osb_tl_inode; in ocfs2_move_extent()
574 struct inode *gb_inode = NULL; in ocfs2_move_extent()
579 u32 move_max_hop = ocfs2_blocks_to_clusters(inode->i_sb, in ocfs2_move_extent()
583 phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, phys_cpos); in ocfs2_move_extent()
587 BUG_ON(!(OCFS2_I(inode)->ip_dyn_features & in ocfs2_move_extent()
599 ret = ocfs2_prepare_refcount_change_for_del(inode, in ocfs2_move_extent()
611 ret = ocfs2_lock_allocators_move_extents(inode, &context->et, len, 1, in ocfs2_move_extent()
654 new_phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, *new_phys_cpos); in ocfs2_move_extent()
655 ret = ocfs2_find_victim_alloc_group(inode, new_phys_blkno, in ocfs2_move_extent()
670 ocfs2_probe_alloc_group(inode, gd_bh, &goal_bit, len, move_max_hop, in ocfs2_move_extent()
704 ret = ocfs2_cow_sync_writeback(inode->i_sb, context->inode, cpos, len); in ocfs2_move_extent()
770 struct inode *inode = context->inode; in __ocfs2_move_extents_range() local
773 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in __ocfs2_move_extents_range()
775 if ((i_size_read(inode) == 0) || (range->me_len == 0)) in __ocfs2_move_extents_range()
778 if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) in __ocfs2_move_extents_range()
783 ocfs2_init_dinode_extent_tree(&context->et, INODE_CACHE(inode), di_bh); in __ocfs2_move_extents_range()
812 new_phys_cpos = ocfs2_blocks_to_clusters(inode->i_sb, in __ocfs2_move_extents_range()
817 (unsigned long long)OCFS2_I(inode)->ip_blkno, in __ocfs2_move_extents_range()
824 ret = ocfs2_get_clusters(inode, cpos, &phys_cpos, &alloc_size, in __ocfs2_move_extents_range()
902 struct inode *inode = context->inode; in ocfs2_move_extents() local
905 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_move_extents()
910 mutex_lock(&inode->i_mutex); in ocfs2_move_extents()
915 status = ocfs2_rw_lock(inode, 1); in ocfs2_move_extents()
921 status = ocfs2_inode_lock(inode, &di_bh, 1); in ocfs2_move_extents()
930 down_write(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_move_extents()
934 up_write(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_move_extents()
950 status = ocfs2_journal_access_di(handle, INODE_CACHE(inode), di_bh, in ocfs2_move_extents()
958 inode->i_ctime = CURRENT_TIME; in ocfs2_move_extents()
959 di->i_ctime = cpu_to_le64(inode->i_ctime.tv_sec); in ocfs2_move_extents()
960 di->i_ctime_nsec = cpu_to_le32(inode->i_ctime.tv_nsec); in ocfs2_move_extents()
961 ocfs2_update_inode_fsync_trans(handle, inode, 0); in ocfs2_move_extents()
970 ocfs2_inode_unlock(inode, 1); in ocfs2_move_extents()
972 ocfs2_rw_unlock(inode, 1); in ocfs2_move_extents()
974 mutex_unlock(&inode->i_mutex); in ocfs2_move_extents()
983 struct inode *inode = file_inode(filp); in ocfs2_ioctl_move_extents() local
994 if ((!S_ISREG(inode->i_mode)) || !(filp->f_mode & FMODE_WRITE)) { in ocfs2_ioctl_move_extents()
999 if (inode->i_flags & (S_IMMUTABLE|S_APPEND)) { in ocfs2_ioctl_move_extents()
1011 context->inode = inode; in ocfs2_ioctl_move_extents()
1019 if (range.me_start > i_size_read(inode)) { in ocfs2_ioctl_move_extents()
1024 if (range.me_start + range.me_len > i_size_read(inode)) in ocfs2_ioctl_move_extents()
1025 range.me_len = i_size_read(inode) - range.me_start; in ocfs2_ioctl_move_extents()
1039 if (range.me_threshold > i_size_read(inode)) in ocfs2_ioctl_move_extents()
1040 range.me_threshold = i_size_read(inode); in ocfs2_ioctl_move_extents()
1052 status = ocfs2_validate_and_adjust_move_goal(inode, &range); in ocfs2_ioctl_move_extents()