Lines Matching refs:mirror

252 			     struct nfs4_ff_layout_mirror *mirror,  in ff_layout_track_ds_error()  argument
261 if (IS_ERR_OR_NULL(mirror->dss[dss_id].mirror_ds)) in ff_layout_track_ds_error()
273 nfs4_stateid_copy(&dserr->stateid, &mirror->dss[dss_id].stateid); in ff_layout_track_ds_error()
274 memcpy(&dserr->deviceid, &mirror->dss[dss_id].mirror_ds->id_node.deviceid, in ff_layout_track_ds_error()
284 ff_layout_get_mirror_cred(struct nfs4_ff_layout_mirror *mirror, u32 iomode, u32 dss_id) in ff_layout_get_mirror_cred() argument
289 pcred = &mirror->dss[dss_id].ro_cred; in ff_layout_get_mirror_cred()
291 pcred = &mirror->dss[dss_id].rw_cred; in ff_layout_get_mirror_cred()
306 nfs4_ff_layout_select_ds_fh(struct nfs4_ff_layout_mirror *mirror, u32 dss_id) in nfs4_ff_layout_select_ds_fh() argument
309 return &mirror->dss[dss_id].fh_versions[0]; in nfs4_ff_layout_select_ds_fh()
313 nfs4_ff_layout_select_ds_stateid(const struct nfs4_ff_layout_mirror *mirror, in nfs4_ff_layout_select_ds_stateid() argument
317 if (nfs4_ff_layout_ds_version(mirror, dss_id) == 4) in nfs4_ff_layout_select_ds_stateid()
318 nfs4_stateid_copy(stateid, &mirror->dss[dss_id].stateid); in nfs4_ff_layout_select_ds_stateid()
323 struct nfs4_ff_layout_mirror *mirror, in ff_layout_init_mirror_ds() argument
326 if (mirror == NULL) in ff_layout_init_mirror_ds()
328 if (mirror->dss[dss_id].mirror_ds == NULL) { in ff_layout_init_mirror_ds()
333 &mirror->dss[dss_id].devid, lo->plh_lc_cred, in ff_layout_init_mirror_ds()
339 if (cmpxchg(&mirror->dss[dss_id].mirror_ds, NULL, mirror_ds) && in ff_layout_init_mirror_ds()
344 if (IS_ERR(mirror->dss[dss_id].mirror_ds)) in ff_layout_init_mirror_ds()
372 struct nfs4_ff_layout_mirror *mirror, in nfs4_ff_layout_prepare_ds() argument
382 if (!ff_layout_init_mirror_ds(lseg->pls_layout, mirror, dss_id)) in nfs4_ff_layout_prepare_ds()
385 ds = mirror->dss[dss_id].mirror_ds->ds; in nfs4_ff_layout_prepare_ds()
394 status = nfs4_pnfs_ds_connect(s, ds, &mirror->dss[dss_id].mirror_ds->id_node, in nfs4_ff_layout_prepare_ds()
396 mirror->dss[dss_id].mirror_ds->ds_versions[0].version, in nfs4_ff_layout_prepare_ds()
397 mirror->dss[dss_id].mirror_ds->ds_versions[0].minor_version); in nfs4_ff_layout_prepare_ds()
410 if (mirror->dss[dss_id].mirror_ds->ds_versions[0].rsize > max_payload) in nfs4_ff_layout_prepare_ds()
411 mirror->dss[dss_id].mirror_ds->ds_versions[0].rsize = max_payload; in nfs4_ff_layout_prepare_ds()
412 if (mirror->dss[dss_id].mirror_ds->ds_versions[0].wsize > max_payload) in nfs4_ff_layout_prepare_ds()
413 mirror->dss[dss_id].mirror_ds->ds_versions[0].wsize = max_payload; in nfs4_ff_layout_prepare_ds()
418 mirror, dss_id, lseg->pls_range.offset, in nfs4_ff_layout_prepare_ds()
430 ff_layout_get_ds_cred(struct nfs4_ff_layout_mirror *mirror, in ff_layout_get_ds_cred() argument
437 if (mirror && !mirror->dss[dss_id].mirror_ds->ds_versions[0].tightly_coupled) { in ff_layout_get_ds_cred()
438 cred = ff_layout_get_mirror_cred(mirror, range->iomode, dss_id); in ff_layout_get_ds_cred()
458 nfs4_ff_find_or_create_ds_client(struct nfs4_ff_layout_mirror *mirror, in nfs4_ff_find_or_create_ds_client() argument
462 switch (mirror->dss[dss_id].mirror_ds->ds_versions[0].version) { in nfs4_ff_find_or_create_ds_client()
566 struct nfs4_ff_layout_mirror *mirror; in ff_read_layout_has_available_ds() local
571 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_read_layout_has_available_ds()
572 if (!mirror) in ff_read_layout_has_available_ds()
574 for (dss_id = 0; dss_id < mirror->dss_count; dss_id++) { in ff_read_layout_has_available_ds()
575 if (!mirror->dss[dss_id].mirror_ds) in ff_read_layout_has_available_ds()
577 if (IS_ERR(mirror->dss[dss_id].mirror_ds)) in ff_read_layout_has_available_ds()
579 devid = &mirror->dss[dss_id].mirror_ds->id_node; in ff_read_layout_has_available_ds()
590 struct nfs4_ff_layout_mirror *mirror; in ff_rw_layout_has_available_ds() local
595 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_rw_layout_has_available_ds()
596 if (!mirror) in ff_rw_layout_has_available_ds()
598 for (dss_id = 0; dss_id < mirror->dss_count; dss_id++) { in ff_rw_layout_has_available_ds()
599 if (IS_ERR(mirror->dss[dss_id].mirror_ds)) in ff_rw_layout_has_available_ds()
601 if (!mirror->dss[dss_id].mirror_ds) in ff_rw_layout_has_available_ds()
603 devid = &mirror->dss[dss_id].mirror_ds->id_node; in ff_rw_layout_has_available_ds()