Lines Matching refs:context

64 	int (*get_clusters)(struct ocfs2_cow_context *context,
3130 struct ocfs2_cow_context *context, in ocfs2_replace_clusters() argument
3136 struct ocfs2_caching_info *ci = context->data_et.et_ci; in ocfs2_replace_clusters()
3144 ret = context->cow_duplicate_clusters(handle, context->inode, in ocfs2_replace_clusters()
3152 ret = ocfs2_clear_ext_refcount(handle, &context->data_et, in ocfs2_replace_clusters()
3154 context->meta_ac, &context->dealloc); in ocfs2_replace_clusters()
3211 static int ocfs2_di_get_clusters(struct ocfs2_cow_context *context, in ocfs2_di_get_clusters() argument
3216 return ocfs2_get_clusters(context->inode, v_cluster, p_cluster, in ocfs2_di_get_clusters()
3221 struct ocfs2_cow_context *context, in ocfs2_make_clusters_writable() argument
3231 struct ocfs2_caching_info *ref_ci = &context->ref_tree->rf_ci; in ocfs2_make_clusters_writable()
3238 &context->data_et, in ocfs2_make_clusters_writable()
3240 context->ref_root_bh, in ocfs2_make_clusters_writable()
3241 &context->meta_ac, in ocfs2_make_clusters_writable()
3242 &context->data_ac, &credits); in ocfs2_make_clusters_writable()
3248 if (context->post_refcount) in ocfs2_make_clusters_writable()
3249 credits += context->post_refcount->credits; in ocfs2_make_clusters_writable()
3251 credits += context->extra_credits; in ocfs2_make_clusters_writable()
3262 ret = ocfs2_get_refcount_rec(ref_ci, context->ref_root_bh, in ocfs2_make_clusters_writable()
3285 &context->data_et, in ocfs2_make_clusters_writable()
3288 context->meta_ac, in ocfs2_make_clusters_writable()
3289 &context->dealloc); in ocfs2_make_clusters_writable()
3298 context->data_ac, in ocfs2_make_clusters_writable()
3306 ret = ocfs2_replace_clusters(handle, context, in ocfs2_make_clusters_writable()
3317 context->ref_root_bh, in ocfs2_make_clusters_writable()
3319 context->meta_ac, in ocfs2_make_clusters_writable()
3320 &context->dealloc, delete); in ocfs2_make_clusters_writable()
3334 if (context->post_refcount && context->post_refcount->func) { in ocfs2_make_clusters_writable()
3335 ret = context->post_refcount->func(context->inode, handle, in ocfs2_make_clusters_writable()
3336 context->post_refcount->para); in ocfs2_make_clusters_writable()
3347 if (context->get_clusters == ocfs2_di_get_clusters) { in ocfs2_make_clusters_writable()
3348 ret = ocfs2_cow_sync_writeback(sb, context->inode, cpos, in ocfs2_make_clusters_writable()
3358 if (context->data_ac) { in ocfs2_make_clusters_writable()
3359 ocfs2_free_alloc_context(context->data_ac); in ocfs2_make_clusters_writable()
3360 context->data_ac = NULL; in ocfs2_make_clusters_writable()
3362 if (context->meta_ac) { in ocfs2_make_clusters_writable()
3363 ocfs2_free_alloc_context(context->meta_ac); in ocfs2_make_clusters_writable()
3364 context->meta_ac = NULL; in ocfs2_make_clusters_writable()
3371 static int ocfs2_replace_cow(struct ocfs2_cow_context *context) in ocfs2_replace_cow() argument
3374 struct inode *inode = context->inode; in ocfs2_replace_cow()
3375 u32 cow_start = context->cow_start, cow_len = context->cow_len; in ocfs2_replace_cow()
3387 ocfs2_init_dealloc_ctxt(&context->dealloc); in ocfs2_replace_cow()
3390 ret = context->get_clusters(context, cow_start, &p_cluster, in ocfs2_replace_cow()
3402 ret = ocfs2_make_clusters_writable(inode->i_sb, context, in ocfs2_replace_cow()
3414 if (ocfs2_dealloc_has_cluster(&context->dealloc)) { in ocfs2_replace_cow()
3416 ocfs2_run_deallocs(osb, &context->dealloc); in ocfs2_replace_cow()
3438 struct ocfs2_cow_context *context = NULL; in ocfs2_refcount_cow_hunk() local
3456 context = kzalloc(sizeof(struct ocfs2_cow_context), GFP_NOFS); in ocfs2_refcount_cow_hunk()
3457 if (!context) { in ocfs2_refcount_cow_hunk()
3470 context->inode = inode; in ocfs2_refcount_cow_hunk()
3471 context->cow_start = cow_start; in ocfs2_refcount_cow_hunk()
3472 context->cow_len = cow_len; in ocfs2_refcount_cow_hunk()
3473 context->ref_tree = ref_tree; in ocfs2_refcount_cow_hunk()
3474 context->ref_root_bh = ref_root_bh; in ocfs2_refcount_cow_hunk()
3475 context->cow_duplicate_clusters = ocfs2_duplicate_clusters_by_page; in ocfs2_refcount_cow_hunk()
3476 context->get_clusters = ocfs2_di_get_clusters; in ocfs2_refcount_cow_hunk()
3478 ocfs2_init_dinode_extent_tree(&context->data_et, in ocfs2_refcount_cow_hunk()
3481 ret = ocfs2_replace_cow(context); in ocfs2_refcount_cow_hunk()
3495 kfree(context); in ocfs2_refcount_cow_hunk()
3539 static int ocfs2_xattr_value_get_clusters(struct ocfs2_cow_context *context, in ocfs2_xattr_value_get_clusters() argument
3544 struct inode *inode = context->inode; in ocfs2_xattr_value_get_clusters()
3545 struct ocfs2_xattr_value_root *xv = context->cow_object; in ocfs2_xattr_value_get_clusters()
3651 struct ocfs2_cow_context *context = NULL; in ocfs2_refcount_cow_xattr() local
3666 context = kzalloc(sizeof(struct ocfs2_cow_context), GFP_NOFS); in ocfs2_refcount_cow_xattr()
3667 if (!context) { in ocfs2_refcount_cow_xattr()
3673 context->inode = inode; in ocfs2_refcount_cow_xattr()
3674 context->cow_start = cow_start; in ocfs2_refcount_cow_xattr()
3675 context->cow_len = cow_len; in ocfs2_refcount_cow_xattr()
3676 context->ref_tree = ref_tree; in ocfs2_refcount_cow_xattr()
3677 context->ref_root_bh = ref_root_bh; in ocfs2_refcount_cow_xattr()
3678 context->cow_object = xv; in ocfs2_refcount_cow_xattr()
3680 context->cow_duplicate_clusters = ocfs2_duplicate_clusters_by_jbd; in ocfs2_refcount_cow_xattr()
3682 context->extra_credits = in ocfs2_refcount_cow_xattr()
3684 context->get_clusters = ocfs2_xattr_value_get_clusters; in ocfs2_refcount_cow_xattr()
3685 context->post_refcount = post; in ocfs2_refcount_cow_xattr()
3687 ocfs2_init_xattr_value_extent_tree(&context->data_et, in ocfs2_refcount_cow_xattr()
3690 ret = ocfs2_replace_cow(context); in ocfs2_refcount_cow_xattr()
3695 kfree(context); in ocfs2_refcount_cow_xattr()