X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Flov%2Flov_io.c;h=f3d88930a22be681530a0b6e477c0c2e6b3f7178;hb=c86706db4d0c81bd406411d1e97e3f190e04fbad;hp=346a99241e5220ab3fe4ef16f1b034d44a1e0ef1;hpb=fbf5870b9848929d352460f1f005b79c0b5ccc5a;p=fs%2Flustre-release.git diff --git a/lustre/lov/lov_io.c b/lustre/lov/lov_io.c index 346a992..f3d8893 100644 --- a/lustre/lov/lov_io.c +++ b/lustre/lov/lov_io.c @@ -185,6 +185,7 @@ static int lov_io_sub_init(const struct lu_env *env, struct lov_io *lio, sub_io->ci_parent = io; sub_io->ci_lockreq = io->ci_lockreq; sub_io->ci_type = io->ci_type; + sub_io->ci_no_srvlock = io->ci_no_srvlock; lov_sub_enter(sub); result = cl_io_sub_init(sub->sub_env, sub_io, @@ -201,8 +202,8 @@ static int lov_io_sub_init(const struct lu_env *env, struct lov_io *lio, RETURN(result); } -static struct lov_io_sub *lov_sub_get(const struct lu_env *env, - struct lov_io *lio, int stripe) +struct lov_io_sub *lov_sub_get(const struct lu_env *env, + struct lov_io *lio, int stripe) { int rc; struct lov_io_sub *sub = &lio->lis_subs[stripe]; @@ -391,6 +392,7 @@ static int lov_io_iter_init(const struct lu_env *env, stripe, start, end); } else rc = PTR_ERR(sub); + if (!rc) list_add_tail(&sub->sub_linkage, &lio->lis_active); else @@ -550,7 +552,8 @@ static struct cl_page_list *lov_io_submit_qin(struct lov_device *ld, */ static int lov_io_submit(const struct lu_env *env, const struct cl_io_slice *ios, - enum cl_req_type crt, struct cl_2queue *queue) + enum cl_req_type crt, struct cl_2queue *queue, + enum cl_req_priority priority) { struct lov_io *lio = cl2lov_io(env, ios); struct lov_object *obj = lio->lis_object; @@ -580,7 +583,8 @@ static int lov_io_submit(const struct lu_env *env, sub = lov_sub_get(env, lio, idx); LASSERT(!IS_ERR(sub)); LASSERT(sub->sub_io == &lio->lis_single_subio); - rc = cl_io_submit_rw(sub->sub_env, sub->sub_io, crt, queue); + rc = cl_io_submit_rw(sub->sub_env, sub->sub_io, + crt, queue, priority); lov_sub_put(sub); RETURN(rc); } @@ -621,7 +625,7 @@ static int lov_io_submit(const struct lu_env *env, sub = lov_sub_get(env, lio, stripe); if (!IS_ERR(sub)) { rc = cl_io_submit_rw(sub->sub_env, sub->sub_io, - crt, cl2q); + crt, cl2q, priority); lov_sub_put(sub); } else rc = PTR_ERR(sub);