Lines Matching refs:mirror
185 struct nfs4_ff_layout_mirror *mirror) in ff_layout_mirror_valid() argument
187 if (mirror == NULL || mirror->mirror_ds == NULL) { in ff_layout_mirror_valid()
192 if (mirror->mirror_ds->ds == NULL) { in ff_layout_mirror_valid()
194 devid = &mirror->mirror_ds->id_node; in ff_layout_mirror_valid()
281 struct nfs4_ff_layout_mirror *mirror, u64 offset, in ff_layout_track_ds_error() argument
291 if (mirror->mirror_ds == NULL) in ff_layout_track_ds_error()
296 &mirror->stateid, in ff_layout_track_ds_error()
297 &mirror->mirror_ds->id_node.deviceid)) { in ff_layout_track_ds_error()
311 nfs4_stateid_copy(&dserr->stateid, &mirror->stateid); in ff_layout_track_ds_error()
312 memcpy(&dserr->deviceid, &mirror->mirror_ds->id_node.deviceid, in ff_layout_track_ds_error()
326 nfs4_ff_layout_choose_authflavor(struct nfs4_ff_layout_mirror *mirror) in nfs4_ff_layout_choose_authflavor() argument
328 if (mirror->uid == (u32)-1) in nfs4_ff_layout_choose_authflavor()
334 static int ff_layout_update_mirror_cred(struct nfs4_ff_layout_mirror *mirror, in ff_layout_update_mirror_cred() argument
337 if (ds->ds_clp && !mirror->cred && in ff_layout_update_mirror_cred()
338 mirror->mirror_ds->ds_versions[0].version == 3) { in ff_layout_update_mirror_cred()
342 .uid = make_kuid(&init_user_ns, mirror->uid), in ff_layout_update_mirror_cred()
343 .gid = make_kgid(&init_user_ns, mirror->gid), in ff_layout_update_mirror_cred()
353 if (cmpxchg(&mirror->cred, NULL, cred)) in ff_layout_update_mirror_cred()
363 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, mirror_idx); in nfs4_ff_layout_select_ds_fh() local
366 if (!ff_layout_mirror_valid(lseg, mirror)) { in nfs4_ff_layout_select_ds_fh()
373 fh = &mirror->fh_versions[0]; in nfs4_ff_layout_select_ds_fh()
383 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in nfs4_ff_layout_prepare_ds() local
391 if (!ff_layout_mirror_valid(lseg, mirror)) { in nfs4_ff_layout_prepare_ds()
397 devid = &mirror->mirror_ds->id_node; in nfs4_ff_layout_prepare_ds()
401 ds = mirror->mirror_ds->ds; in nfs4_ff_layout_prepare_ds()
407 flavor = nfs4_ff_layout_choose_authflavor(mirror); in nfs4_ff_layout_prepare_ds()
414 mirror->mirror_ds->ds_versions[0].version, in nfs4_ff_layout_prepare_ds()
415 mirror->mirror_ds->ds_versions[0].minor_version, in nfs4_ff_layout_prepare_ds()
423 if (mirror->mirror_ds->ds_versions[0].rsize > max_payload) in nfs4_ff_layout_prepare_ds()
424 mirror->mirror_ds->ds_versions[0].rsize = max_payload; in nfs4_ff_layout_prepare_ds()
425 if (mirror->mirror_ds->ds_versions[0].wsize > max_payload) in nfs4_ff_layout_prepare_ds()
426 mirror->mirror_ds->ds_versions[0].wsize = max_payload; in nfs4_ff_layout_prepare_ds()
429 mirror, lseg->pls_range.offset, in nfs4_ff_layout_prepare_ds()
450 if (ff_layout_update_mirror_cred(mirror, ds)) in nfs4_ff_layout_prepare_ds()
460 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in ff_layout_get_ds_cred() local
466 if (mirror && mirror->cred) in ff_layout_get_ds_cred()
467 cred = mirror->cred; in ff_layout_get_ds_cred()
482 struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, ds_idx); in nfs4_ff_find_or_create_ds_client() local
484 switch (mirror->mirror_ds->ds_versions[0].version) { in nfs4_ff_find_or_create_ds_client()
548 struct nfs4_ff_layout_mirror *mirror; in ff_read_layout_has_available_ds() local
553 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_read_layout_has_available_ds()
554 if (mirror && mirror->mirror_ds) { in ff_read_layout_has_available_ds()
555 devid = &mirror->mirror_ds->id_node; in ff_read_layout_has_available_ds()
566 struct nfs4_ff_layout_mirror *mirror; in ff_rw_layout_has_available_ds() local
571 mirror = FF_LAYOUT_COMP(lseg, idx); in ff_rw_layout_has_available_ds()
572 if (!mirror || !mirror->mirror_ds) in ff_rw_layout_has_available_ds()
574 devid = &mirror->mirror_ds->id_node; in ff_rw_layout_has_available_ds()