struct cl_site *site = cl_object_site(obj);
ENTRY;
- OBD_SLAB_ALLOC_PTR(lock, cl_lock_kmem);
+ OBD_SLAB_ALLOC_PTR_GFP(lock, cl_lock_kmem, CFS_ALLOC_IO);
if (lock != NULL) {
atomic_set(&lock->cll_ref, 1);
lock->cll_descr = *descr;
if (queue->c2_qin.pl_nr > 0) {
result = cl_page_list_unmap(env, io, &queue->c2_qin);
if (!discard) {
- rc0 = cl_io_submit_rw(env, io,
- CRT_WRITE, queue);
+ rc0 = cl_io_submit_rw(env, io, CRT_WRITE,
+ queue, CRP_CANCEL);
rc1 = cl_page_list_own(env, io,
&queue->c2_qout);
result = result ?: rc0 ?: rc1;