Lines Matching defs:context

50 			       struct ocfs2_move_extents_context *context,
55 struct inode *inode = context->inode;
60 u64 ino = ocfs2_metadata_cache_owner(context->et.et_ci);
76 path = ocfs2_new_path_from_et(&context->et);
108 ret = ocfs2_split_extent(handle, &context->et, path, index,
109 &replace_rec, context->meta_ac,
110 &context->dealloc);
116 context->new_phys_cpos = new_p_cpos;
126 len, context->meta_ac,
127 &context->dealloc, 1);
195 static int ocfs2_defrag_extent(struct ocfs2_move_extents_context *context,
198 int ret, credits = 0, extra_blocks = 0, partial = context->partial;
200 struct inode *inode = context->inode;
210 BUG_ON(!context->refcount_loc);
212 ret = ocfs2_lock_refcount_tree(osb, context->refcount_loc, 1,
220 context->refcount_loc,
231 ret = ocfs2_lock_meta_allocator_move_extents(inode, &context->et,
233 &context->meta_ac,
243 * if (context->data_ac)
244 * context->data_ac->ac_resv = &OCFS2_I(inode)->ip_la_data_resv;
266 ret = ocfs2_reserve_clusters(osb, *len, &context->data_ac);
279 ret = __ocfs2_claim_clusters(handle, context->data_ac, 1, *len,
295 context->range->me_flags &= ~OCFS2_MOVE_EXT_FL_COMPLETE;
305 ret = __ocfs2_move_extent(handle, context, cpos, new_len, phys_cpos,
317 ret = ocfs2_cow_sync_writeback(inode->i_sb, context->inode, cpos, *len);
322 if (need_free && context->data_ac) {
323 struct ocfs2_alloc_context *data_ac = context->data_ac;
325 if (context->data_ac->ac_which == OCFS2_AC_USE_LOCAL)
341 if (context->data_ac) {
342 ocfs2_free_alloc_context(context->data_ac);
343 context->data_ac = NULL;
346 if (context->meta_ac) {
347 ocfs2_free_alloc_context(context->meta_ac);
348 context->meta_ac = NULL;
562 static int ocfs2_move_extent(struct ocfs2_move_extents_context *context,
568 struct inode *inode = context->inode;
577 context->range->me_threshold);
584 BUG_ON(!context->refcount_loc);
586 ret = ocfs2_lock_refcount_tree(osb, context->refcount_loc, 1,
594 context->refcount_loc,
605 ret = ocfs2_lock_meta_allocator_move_extents(inode, &context->et,
607 &context->meta_ac,
672 ret = __ocfs2_move_extent(handle, context, cpos, len, phys_cpos,
699 ret = ocfs2_cow_sync_writeback(inode->i_sb, context->inode, cpos, len);
717 if (context->meta_ac) {
718 ocfs2_free_alloc_context(context->meta_ac);
719 context->meta_ac = NULL;
759 struct ocfs2_move_extents_context *context)
765 struct inode *inode = context->inode;
767 struct ocfs2_move_extents *range = context->range;
776 context->refcount_loc = le64_to_cpu(di->i_refcount_loc);
778 ocfs2_init_dinode_extent_tree(&context->et, INODE_CACHE(inode), di_bh);
779 ocfs2_init_dealloc_ctxt(&context->dealloc);
787 do_defrag = context->auto_defrag;
857 ret = ocfs2_defrag_extent(context, cpos, phys_cpos,
860 ret = ocfs2_move_extent(context, cpos, phys_cpos,
872 context->clusters_moved += alloc_size;
883 context->clusters_moved);
885 context->new_phys_cpos);
888 ocfs2_run_deallocs(osb, &context->dealloc);
893 static int ocfs2_move_extents(struct ocfs2_move_extents_context *context)
897 struct inode *inode = context->inode;
927 status = __ocfs2_move_extents_range(di_bh, context);
980 struct ocfs2_move_extents_context *context;
999 context = kzalloc(sizeof(struct ocfs2_move_extents_context), GFP_NOFS);
1000 if (!context) {
1006 context->inode = inode;
1007 context->file = filp;
1022 context->range = ⦥
1036 context->auto_defrag = 1;
1039 context->partial = 1;
1053 status = ocfs2_move_extents(context);
1066 kfree(context);