Searched refs:lio (Results 1 - 8 of 8) sorted by relevance

/linux-4.1.27/drivers/staging/lustre/lustre/lov/
H A Dlov_io.c59 static void lov_io_sub_fini(const struct lu_env *env, struct lov_io *lio, lov_io_sub_fini() argument
68 lio->lis_active_subios--; lov_io_sub_fini()
70 if (sub->sub_stripe == lio->lis_single_subio_index) lov_io_sub_fini()
71 lio->lis_single_subio_index = -1; lov_io_sub_fini()
83 static void lov_io_sub_inherit(struct cl_io *io, struct lov_io *lio, lov_io_sub_inherit() argument
86 struct lov_stripe_md *lsm = lio->lis_object->lo_lsm; lov_io_sub_inherit()
87 struct cl_io *parent = lio->lis_cl.cis_io; lov_io_sub_inherit()
135 static int lov_io_sub_init(const struct lu_env *env, struct lov_io *lio, lov_io_sub_init() argument
138 struct lov_object *lov = lio->lis_object; lov_io_sub_init()
142 struct cl_io *io = lio->lis_cl.cis_io; lov_io_sub_init()
149 LASSERT(sub->sub_stripe < lio->lis_stripe_count); lov_io_sub_init()
158 if (lio->lis_mem_frozen) { lov_io_sub_init()
178 if (lio->lis_active_subios == 0) { lov_io_sub_init()
179 sub->sub_io = &lio->lis_single_subio; lov_io_sub_init()
180 lio->lis_single_subio_index = stripe; lov_io_sub_init()
207 lio->lis_active_subios++; lov_io_sub_init()
213 lov_io_sub_fini(env, lio, sub); lov_io_sub_init()
218 struct lov_io *lio, int stripe) lov_sub_get()
221 struct lov_io_sub *sub = &lio->lis_subs[stripe]; lov_sub_get()
223 LASSERT(stripe < lio->lis_stripe_count); lov_sub_get()
227 rc = lov_io_sub_init(env, lio, sub); lov_sub_get()
259 struct lov_io_sub *lov_page_subio(const struct lu_env *env, struct lov_io *lio, lov_page_subio() argument
262 struct lov_stripe_md *lsm = lio->lis_object->lo_lsm; lov_page_subio()
266 LASSERT(lio->lis_cl.cis_io != NULL); lov_page_subio()
267 LASSERT(cl2lov(slice->cpl_obj) == lio->lis_object); lov_page_subio()
269 LASSERT(lio->lis_nr_subios > 0); lov_page_subio()
272 return lov_sub_get(env, lio, stripe); lov_page_subio()
276 static int lov_io_subio_init(const struct lu_env *env, struct lov_io *lio, lov_io_subio_init() argument
279 struct lov_stripe_md *lsm = lio->lis_object->lo_lsm; lov_io_subio_init()
282 LASSERT(lio->lis_object != NULL); lov_io_subio_init()
288 OBD_ALLOC_LARGE(lio->lis_subs, lov_io_subio_init()
289 lsm->lsm_stripe_count * sizeof(lio->lis_subs[0])); lov_io_subio_init()
290 if (lio->lis_subs != NULL) { lov_io_subio_init()
291 lio->lis_nr_subios = lio->lis_stripe_count; lov_io_subio_init()
292 lio->lis_single_subio_index = -1; lov_io_subio_init()
293 lio->lis_active_subios = 0; lov_io_subio_init()
300 static void lov_io_slice_init(struct lov_io *lio, lov_io_slice_init() argument
304 lio->lis_object = obj; lov_io_slice_init()
307 lio->lis_stripe_count = obj->lo_lsm->lsm_stripe_count; lov_io_slice_init()
312 lio->lis_pos = io->u.ci_rw.crw_pos; lov_io_slice_init()
313 lio->lis_endpos = io->u.ci_rw.crw_pos + io->u.ci_rw.crw_count; lov_io_slice_init()
314 lio->lis_io_endpos = lio->lis_endpos; lov_io_slice_init()
317 lio->lis_pos = 0; lov_io_slice_init()
318 lio->lis_endpos = OBD_OBJECT_EOF; lov_io_slice_init()
324 lio->lis_pos = io->u.ci_setattr.sa_attr.lvb_size; lov_io_slice_init()
326 lio->lis_pos = 0; lov_io_slice_init()
327 lio->lis_endpos = OBD_OBJECT_EOF; lov_io_slice_init()
332 lio->lis_pos = cl_offset(io->ci_obj, index); lov_io_slice_init()
333 lio->lis_endpos = cl_offset(io->ci_obj, index + 1); lov_io_slice_init()
338 lio->lis_pos = io->u.ci_fsync.fi_start; lov_io_slice_init()
339 lio->lis_endpos = io->u.ci_fsync.fi_end; lov_io_slice_init()
344 lio->lis_pos = 0; lov_io_slice_init()
345 lio->lis_endpos = OBD_OBJECT_EOF; lov_io_slice_init()
355 struct lov_io *lio = cl2lov_io(env, ios); lov_io_fini() local
359 if (lio->lis_subs != NULL) { lov_io_fini()
360 for (i = 0; i < lio->lis_nr_subios; i++) lov_io_fini()
361 lov_io_sub_fini(env, lio, &lio->lis_subs[i]); lov_io_fini()
362 OBD_FREE_LARGE(lio->lis_subs, lov_io_fini()
363 lio->lis_nr_subios * sizeof(lio->lis_subs[0])); lov_io_fini()
364 lio->lis_nr_subios = 0; lov_io_fini()
382 struct lov_io *lio = cl2lov_io(env, ios); lov_io_iter_init() local
383 struct lov_stripe_md *lsm = lio->lis_object->lo_lsm; lov_io_iter_init()
391 endpos = lov_offset_mod(lio->lis_endpos, -1); lov_io_iter_init()
392 for (stripe = 0; stripe < lio->lis_stripe_count; stripe++) { lov_io_iter_init()
393 if (!lov_stripe_intersects(lsm, stripe, lio->lis_pos, lov_io_iter_init()
397 if (unlikely(lov_r0(lio->lis_object)->lo_sub[stripe] == NULL)) { lov_io_iter_init()
407 sub = lov_sub_get(env, lio, stripe); lov_io_iter_init()
409 lov_io_sub_inherit(sub->sub_io, lio, stripe, lov_io_iter_init()
419 list_add_tail(&sub->sub_linkage, &lio->lis_active); lov_io_iter_init()
429 struct lov_io *lio = cl2lov_io(env, ios); lov_io_rw_iter_init() local
431 struct lov_stripe_md *lsm = lio->lis_object->lo_lsm; lov_io_rw_iter_init()
439 if (lio->lis_nr_subios != 1 && !cl_io_is_append(io)) { lov_io_rw_iter_init()
446 io->ci_continue = next < lio->lis_io_endpos; lov_io_rw_iter_init()
447 io->u.ci_rw.crw_count = min_t(loff_t, lio->lis_io_endpos, lov_io_rw_iter_init()
449 lio->lis_pos = io->u.ci_rw.crw_pos; lov_io_rw_iter_init()
450 lio->lis_endpos = io->u.ci_rw.crw_pos + io->u.ci_rw.crw_count; lov_io_rw_iter_init()
452 (__u64)start, lio->lis_pos, lio->lis_endpos, lov_io_rw_iter_init()
453 (__u64)lio->lis_io_endpos); lov_io_rw_iter_init()
457 * [lio->lis_pos, lio->lis_endpos) intersects with exactly one stripe. lov_io_rw_iter_init()
462 static int lov_io_call(const struct lu_env *env, struct lov_io *lio, lov_io_call() argument
465 struct cl_io *parent = lio->lis_cl.cis_io; lov_io_call()
469 list_for_each_entry(sub, &lio->lis_active, sub_linkage) { lov_io_call()
529 struct lov_io *lio = cl2lov_io(env, ios); lov_io_iter_fini() local
532 rc = lov_io_call(env, lio, lov_io_iter_fini_wrapper); lov_io_iter_fini()
534 while (!list_empty(&lio->lis_active)) lov_io_iter_fini()
535 list_del_init(lio->lis_active.next); lov_io_iter_fini()
574 struct lov_io *lio = cl2lov_io(env, ios); lov_io_submit() local
575 struct lov_object *obj = lio->lis_object; lov_io_submit()
590 if (lio->lis_active_subios == 1) { lov_io_submit()
591 int idx = lio->lis_single_subio_index; lov_io_submit()
594 LASSERT(idx < lio->lis_nr_subios); lov_io_submit()
595 sub = lov_sub_get(env, lio, idx); lov_io_submit()
597 LASSERT(sub->sub_io == &lio->lis_single_subio); lov_io_submit()
604 LASSERT(lio->lis_subs != NULL); lov_io_submit()
607 sizeof(*stripes_qin) * lio->lis_nr_subios); lov_io_submit()
611 for (stripe = 0; stripe < lio->lis_nr_subios; stripe++) lov_io_submit()
620 lio->lis_mem_frozen = 1; lov_io_submit()
629 for (stripe = 0; stripe < lio->lis_nr_subios; stripe++) {
637 sub = lov_sub_get(env, lio, stripe);
650 for (stripe = 0; stripe < lio->lis_nr_subios; stripe++) {
661 sizeof(*stripes_qin) * lio->lis_nr_subios);
665 for (i = 0; i < lio->lis_nr_subios; i++) {
666 struct cl_io *cio = lio->lis_subs[i].sub_io;
669 lov_io_sub_fini(env, lio, &lio->lis_subs[i]);
671 lio->lis_mem_frozen = 0;
684 struct lov_io *lio = cl2lov_io(env, ios); lov_io_prepare_write() local
689 sub = lov_page_subio(env, lio, slice); lov_io_prepare_write()
704 struct lov_io *lio = cl2lov_io(env, ios); lov_io_commit_write() local
709 sub = lov_page_subio(env, lio, slice); lov_io_commit_write()
723 struct lov_io *lio; lov_io_fault_start() local
727 lio = cl2lov_io(env, ios); lov_io_fault_start()
728 sub = lov_sub_get(env, lio, lov_page_stripe(fio->ft_page)); lov_io_fault_start()
737 struct lov_io *lio = cl2lov_io(env, ios); lov_io_fsync_end() local
742 list_for_each_entry(sub, &lio->lis_active, sub_linkage) { lov_io_fsync_end()
896 struct lov_io *lio = lov_env_io(env); lov_io_init_raid0() local
899 INIT_LIST_HEAD(&lio->lis_active); lov_io_init_raid0()
900 lov_io_slice_init(lio, lov, io); lov_io_init_raid0()
902 io->ci_result = lov_io_subio_init(env, lio, io); lov_io_init_raid0()
904 cl_io_slice_add(io, &lio->lis_cl, obj, &lov_io_ops); lov_io_init_raid0()
915 struct lov_io *lio = lov_env_io(env); lov_io_init_empty() local
918 lio->lis_object = lov; lov_io_init_empty()
940 cl_io_slice_add(io, &lio->lis_cl, obj, &lov_empty_io_ops); lov_io_init_empty()
952 struct lov_io *lio = lov_env_io(env); lov_io_init_released() local
956 lio->lis_object = lov; lov_io_init_released()
983 cl_io_slice_add(io, &lio->lis_cl, obj, &lov_empty_io_ops); lov_io_init_released()
217 lov_sub_get(const struct lu_env *env, struct lov_io *lio, int stripe) lov_sub_get() argument
H A Dlov_page.c86 struct lov_io *lio = lov_env_io(env); lov_page_own() local
92 sub = lov_page_subio(env, lio, slice); lov_page_own()
111 struct lov_io *lio = lov_env_io(env); lov_page_cache_add() local
118 sub = lov_page_subio(env, lio, slice); lov_page_cache_add()
162 struct lov_io *lio = lov_env_io(env); lov_page_init_raid0() local
182 sub = lov_sub_get(env, lio, stripe); lov_page_init_raid0()
H A Dlov_cl_internal.h607 struct lov_io_sub *lov_sub_get(const struct lu_env *env, struct lov_io *lio,
637 struct lov_io *lio,
808 struct lov_io *lio; cl2lov_io() local
810 lio = container_of(ios, struct lov_io, lis_cl); cl2lov_io()
811 LASSERT(lio == lov_env_io(env)); cl2lov_io()
812 return lio; cl2lov_io()
H A Dlov_lock.c65 struct lov_io *lio = lov_env_io(env); lov_sublock_env_get() local
66 struct cl_io *io = lio->lis_cl.cis_io; lov_sublock_env_get()
85 sub = lov_sub_get(env, lio, lls->sub_stripe); lov_sublock_env_get()
/linux-4.1.27/drivers/scsi/qla2xxx/
H A Dqla_init.c110 struct srb_iocb *lio = &sp->u.iocb_cmd; qla2x00_async_iocb_timeout() local
113 lio->u.logio.data[0] = MBS_COMMAND_ERROR; qla2x00_async_iocb_timeout()
114 lio->u.logio.data[1] = lio->u.logio.flags & SRB_LOGIN_RETRIED ? qla2x00_async_iocb_timeout()
117 lio->u.logio.data); qla2x00_async_iocb_timeout()
127 struct srb_iocb *lio = &sp->u.iocb_cmd; qla2x00_async_login_sp_done() local
132 lio->u.logio.data); qla2x00_async_login_sp_done()
141 struct srb_iocb *lio; qla2x00_async_login() local
153 lio = &sp->u.iocb_cmd; qla2x00_async_login()
154 lio->timeout = qla2x00_async_iocb_timeout; qla2x00_async_login()
156 lio->u.logio.flags |= SRB_LOGIN_COND_PLOGI; qla2x00_async_login()
158 lio->u.logio.flags |= SRB_LOGIN_RETRIED; qla2x00_async_login()
180 struct srb_iocb *lio = &sp->u.iocb_cmd; qla2x00_async_logout_sp_done() local
185 lio->u.logio.data); qla2x00_async_logout_sp_done()
193 struct srb_iocb *lio; qla2x00_async_logout() local
205 lio = &sp->u.iocb_cmd; qla2x00_async_logout()
206 lio->timeout = qla2x00_async_iocb_timeout; qla2x00_async_logout()
228 struct srb_iocb *lio = &sp->u.iocb_cmd; qla2x00_async_adisc_sp_done() local
233 lio->u.logio.data); qla2x00_async_adisc_sp_done()
242 struct srb_iocb *lio; qla2x00_async_adisc() local
254 lio = &sp->u.iocb_cmd; qla2x00_async_adisc()
255 lio->timeout = qla2x00_async_iocb_timeout; qla2x00_async_adisc()
258 lio->u.logio.flags |= SRB_LOGIN_RETRIED; qla2x00_async_adisc()
H A Dqla_isr.c1231 struct srb_iocb *lio; qla2x00_mbx_iocb_entry() local
1239 lio = &sp->u.iocb_cmd; qla2x00_mbx_iocb_entry()
1242 data = lio->u.logio.data; qla2x00_mbx_iocb_entry()
1245 data[1] = lio->u.logio.flags & SRB_LOGIN_RETRIED ? qla2x00_mbx_iocb_entry()
1458 struct srb_iocb *lio; qla24xx_logio_entry() local
1466 lio = &sp->u.iocb_cmd; qla24xx_logio_entry()
1469 data = lio->u.logio.data; qla24xx_logio_entry()
1472 data[1] = lio->u.logio.flags & SRB_LOGIN_RETRIED ? qla24xx_logio_entry()
H A Dqla_iocb.c1901 struct srb_iocb *lio = &sp->u.iocb_cmd; qla24xx_login_iocb() local
1905 if (lio->u.logio.flags & SRB_LOGIN_COND_PLOGI) qla24xx_login_iocb()
1907 if (lio->u.logio.flags & SRB_LOGIN_SKIP_PRLI) qla24xx_login_iocb()
1920 struct srb_iocb *lio = &sp->u.iocb_cmd; qla2x00_login_iocb() local
1926 opts = lio->u.logio.flags & SRB_LOGIN_COND_PLOGI ? BIT_0 : 0; qla2x00_login_iocb()
1927 opts |= lio->u.logio.flags & SRB_LOGIN_SKIP_PRLI ? BIT_1 : 0; qla2x00_login_iocb()
H A Dqla_mr.c1791 struct srb_iocb *lio = &sp->u.iocb_cmd; qla2x00_fxdisc_iocb_timeout() local
1793 complete(&lio->u.fxiocb.fxiocb_comp); qla2x00_fxdisc_iocb_timeout()
1800 struct srb_iocb *lio = &sp->u.iocb_cmd; qla2x00_fxdisc_sp_done() local
1802 complete(&lio->u.fxiocb.fxiocb_comp); qla2x00_fxdisc_sp_done()

Completed in 260 milliseconds