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 ret = ocfs2_error(inode->i_sb, in __ocfs2_move_extent()
117 ret = ocfs2_journal_access_di(handle, INODE_CACHE(inode), in __ocfs2_move_extent()
142 ret = ocfs2_decrease_refcount(inode, handle, in __ocfs2_move_extent()
152 ocfs2_update_inode_fsync_trans(handle, inode, 0); in __ocfs2_move_extent()
165 static int ocfs2_lock_allocators_move_extents(struct inode *inode, in ocfs2_lock_allocators_move_extents() argument
176 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_lock_allocators_move_extents()
230 struct inode *inode = context->inode; in ocfs2_defrag_extent() local
231 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_defrag_extent()
232 struct inode *tl_inode = osb->osb_tl_inode; in ocfs2_defrag_extent()
235 u64 phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, phys_cpos); in ocfs2_defrag_extent()
239 BUG_ON(!(OCFS2_I(inode)->ip_dyn_features & in ocfs2_defrag_extent()
251 ret = ocfs2_prepare_refcount_change_for_del(inode, in ocfs2_defrag_extent()
263 ret = ocfs2_lock_allocators_move_extents(inode, &context->et, *len, 1, in ocfs2_defrag_extent()
333 ret = ocfs2_cow_sync_writeback(inode->i_sb, context->inode, cpos, *len); in ocfs2_defrag_extent()
363 static int ocfs2_find_victim_alloc_group(struct inode *inode, in ocfs2_find_victim_alloc_group() argument
373 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_find_victim_alloc_group()
400 inode->i_sb->s_blocksize_bits; in ocfs2_find_victim_alloc_group()
467 static int ocfs2_validate_and_adjust_move_goal(struct inode *inode, in ocfs2_validate_and_adjust_move_goal() argument
474 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_validate_and_adjust_move_goal()
476 inode->i_sb->s_blocksize_bits); in ocfs2_validate_and_adjust_move_goal()
481 range->me_goal = ocfs2_block_to_cluster_start(inode->i_sb, in ocfs2_validate_and_adjust_move_goal()
487 ret = ocfs2_find_victim_alloc_group(inode, range->me_goal, in ocfs2_validate_and_adjust_move_goal()
524 static void ocfs2_probe_alloc_group(struct inode *inode, struct buffer_head *bh, in ocfs2_probe_alloc_group() argument
530 u32 base_cpos = ocfs2_blocks_to_clusters(inode->i_sb, in ocfs2_probe_alloc_group()
569 struct inode *inode = context->inode; in ocfs2_move_extent() local
570 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_move_extent()
571 struct inode *tl_inode = osb->osb_tl_inode; in ocfs2_move_extent()
572 struct inode *gb_inode = NULL; in ocfs2_move_extent()
577 u32 move_max_hop = ocfs2_blocks_to_clusters(inode->i_sb, in ocfs2_move_extent()
581 phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, phys_cpos); in ocfs2_move_extent()
585 BUG_ON(!(OCFS2_I(inode)->ip_dyn_features & in ocfs2_move_extent()
597 ret = ocfs2_prepare_refcount_change_for_del(inode, in ocfs2_move_extent()
609 ret = ocfs2_lock_allocators_move_extents(inode, &context->et, len, 1, in ocfs2_move_extent()
652 new_phys_blkno = ocfs2_clusters_to_blocks(inode->i_sb, *new_phys_cpos); in ocfs2_move_extent()
653 ret = ocfs2_find_victim_alloc_group(inode, new_phys_blkno, in ocfs2_move_extent()
668 ocfs2_probe_alloc_group(inode, gd_bh, &goal_bit, len, move_max_hop, in ocfs2_move_extent()
702 ret = ocfs2_cow_sync_writeback(inode->i_sb, context->inode, cpos, len); in ocfs2_move_extent()
768 struct inode *inode = context->inode; in __ocfs2_move_extents_range() local
771 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in __ocfs2_move_extents_range()
773 if ((i_size_read(inode) == 0) || (range->me_len == 0)) in __ocfs2_move_extents_range()
776 if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) in __ocfs2_move_extents_range()
781 ocfs2_init_dinode_extent_tree(&context->et, INODE_CACHE(inode), di_bh); in __ocfs2_move_extents_range()
810 new_phys_cpos = ocfs2_blocks_to_clusters(inode->i_sb, in __ocfs2_move_extents_range()
815 (unsigned long long)OCFS2_I(inode)->ip_blkno, in __ocfs2_move_extents_range()
822 ret = ocfs2_get_clusters(inode, cpos, &phys_cpos, &alloc_size, in __ocfs2_move_extents_range()
900 struct inode *inode = context->inode; in ocfs2_move_extents() local
903 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); in ocfs2_move_extents()
908 mutex_lock(&inode->i_mutex); in ocfs2_move_extents()
913 status = ocfs2_rw_lock(inode, 1); in ocfs2_move_extents()
919 status = ocfs2_inode_lock(inode, &di_bh, 1); in ocfs2_move_extents()
928 down_write(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_move_extents()
932 up_write(&OCFS2_I(inode)->ip_alloc_sem); in ocfs2_move_extents()
948 status = ocfs2_journal_access_di(handle, INODE_CACHE(inode), di_bh, in ocfs2_move_extents()
956 inode->i_ctime = CURRENT_TIME; in ocfs2_move_extents()
957 di->i_ctime = cpu_to_le64(inode->i_ctime.tv_sec); in ocfs2_move_extents()
958 di->i_ctime_nsec = cpu_to_le32(inode->i_ctime.tv_nsec); in ocfs2_move_extents()
959 ocfs2_update_inode_fsync_trans(handle, inode, 0); in ocfs2_move_extents()
968 ocfs2_inode_unlock(inode, 1); in ocfs2_move_extents()
970 ocfs2_rw_unlock(inode, 1); in ocfs2_move_extents()
972 mutex_unlock(&inode->i_mutex); in ocfs2_move_extents()
981 struct inode *inode = file_inode(filp); in ocfs2_ioctl_move_extents() local
992 if ((!S_ISREG(inode->i_mode)) || !(filp->f_mode & FMODE_WRITE)) { in ocfs2_ioctl_move_extents()
997 if (inode->i_flags & (S_IMMUTABLE|S_APPEND)) { in ocfs2_ioctl_move_extents()
1009 context->inode = inode; in ocfs2_ioctl_move_extents()
1017 if (range.me_start > i_size_read(inode)) { in ocfs2_ioctl_move_extents()
1022 if (range.me_start + range.me_len > i_size_read(inode)) in ocfs2_ioctl_move_extents()
1023 range.me_len = i_size_read(inode) - range.me_start; in ocfs2_ioctl_move_extents()
1037 if (range.me_threshold > i_size_read(inode)) in ocfs2_ioctl_move_extents()
1038 range.me_threshold = i_size_read(inode); in ocfs2_ioctl_move_extents()
1050 status = ocfs2_validate_and_adjust_move_goal(inode, &range); in ocfs2_ioctl_move_extents()