Commit 749da527 authored by Trond Myklebust's avatar Trond Myklebust

NFS/flexfiles: Simplify nfs4_ff_layout_select_ds_fh()

Pass in a pointer to the mirror rather than having to retrieve it from
the array and then verify the resulting pointer.
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 76c66905
...@@ -1795,7 +1795,7 @@ ff_layout_read_pagelist(struct nfs_pgio_header *hdr) ...@@ -1795,7 +1795,7 @@ ff_layout_read_pagelist(struct nfs_pgio_header *hdr)
hdr->pgio_done_cb = ff_layout_read_done_cb; hdr->pgio_done_cb = ff_layout_read_done_cb;
refcount_inc(&ds->ds_clp->cl_count); refcount_inc(&ds->ds_clp->cl_count);
hdr->ds_clp = ds->ds_clp; hdr->ds_clp = ds->ds_clp;
fh = nfs4_ff_layout_select_ds_fh(lseg, idx); fh = nfs4_ff_layout_select_ds_fh(mirror);
if (fh) if (fh)
hdr->args.fh = fh; hdr->args.fh = fh;
...@@ -1863,7 +1863,7 @@ ff_layout_write_pagelist(struct nfs_pgio_header *hdr, int sync) ...@@ -1863,7 +1863,7 @@ ff_layout_write_pagelist(struct nfs_pgio_header *hdr, int sync)
refcount_inc(&ds->ds_clp->cl_count); refcount_inc(&ds->ds_clp->cl_count);
hdr->ds_clp = ds->ds_clp; hdr->ds_clp = ds->ds_clp;
hdr->ds_commit_idx = idx; hdr->ds_commit_idx = idx;
fh = nfs4_ff_layout_select_ds_fh(lseg, idx); fh = nfs4_ff_layout_select_ds_fh(mirror);
if (fh) if (fh)
hdr->args.fh = fh; hdr->args.fh = fh;
......
...@@ -203,7 +203,7 @@ unsigned int ff_layout_fetch_ds_ioerr(struct pnfs_layout_hdr *lo, ...@@ -203,7 +203,7 @@ unsigned int ff_layout_fetch_ds_ioerr(struct pnfs_layout_hdr *lo,
struct list_head *head, struct list_head *head,
unsigned int maxnum); unsigned int maxnum);
struct nfs_fh * struct nfs_fh *
nfs4_ff_layout_select_ds_fh(struct pnfs_layout_segment *lseg, u32 mirror_idx); nfs4_ff_layout_select_ds_fh(struct nfs4_ff_layout_mirror *mirror);
int int
nfs4_ff_layout_select_ds_stateid(struct pnfs_layout_segment *lseg, nfs4_ff_layout_select_ds_stateid(struct pnfs_layout_segment *lseg,
u32 mirror_idx, u32 mirror_idx,
......
...@@ -351,21 +351,10 @@ ff_layout_get_mirror_cred(struct nfs4_ff_layout_mirror *mirror, u32 iomode) ...@@ -351,21 +351,10 @@ ff_layout_get_mirror_cred(struct nfs4_ff_layout_mirror *mirror, u32 iomode)
} }
struct nfs_fh * struct nfs_fh *
nfs4_ff_layout_select_ds_fh(struct pnfs_layout_segment *lseg, u32 mirror_idx) nfs4_ff_layout_select_ds_fh(struct nfs4_ff_layout_mirror *mirror)
{ {
struct nfs4_ff_layout_mirror *mirror = FF_LAYOUT_COMP(lseg, mirror_idx);
struct nfs_fh *fh = NULL;
if (!ff_layout_mirror_valid(lseg, mirror, false)) {
pr_err_ratelimited("NFS: %s: No data server for mirror offset index %d\n",
__func__, mirror_idx);
goto out;
}
/* FIXME: For now assume there is only 1 version available for the DS */ /* FIXME: For now assume there is only 1 version available for the DS */
fh = &mirror->fh_versions[0]; return &mirror->fh_versions[0];
out:
return fh;
} }
int int
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment