NFS/flexfiles: Simplify nfs4_ff_layout_select_ds_fh()
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Thu, 28 Feb 2019 15:34:13 +0000 (10:34 -0500)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Sat, 2 Mar 2019 03:37:38 +0000 (22:37 -0500)
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: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/flexfilelayout/flexfilelayout.c
fs/nfs/flexfilelayout/flexfilelayout.h
fs/nfs/flexfilelayout/flexfilelayoutdev.c

index 44ccfce..f57cb38 100644 (file)
@@ -1795,7 +1795,7 @@ ff_layout_read_pagelist(struct nfs_pgio_header *hdr)
        hdr->pgio_done_cb = ff_layout_read_done_cb;
        refcount_inc(&ds->ds_clp->cl_count);
        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)
                hdr->args.fh = fh;
 
@@ -1863,7 +1863,7 @@ ff_layout_write_pagelist(struct nfs_pgio_header *hdr, int sync)
        refcount_inc(&ds->ds_clp->cl_count);
        hdr->ds_clp = ds->ds_clp;
        hdr->ds_commit_idx = idx;
-       fh = nfs4_ff_layout_select_ds_fh(lseg, idx);
+       fh = nfs4_ff_layout_select_ds_fh(mirror);
        if (fh)
                hdr->args.fh = fh;
 
index 2e3c606..935cba9 100644 (file)
@@ -203,7 +203,7 @@ unsigned int ff_layout_fetch_ds_ioerr(struct pnfs_layout_hdr *lo,
                struct list_head *head,
                unsigned int maxnum);
 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
 nfs4_ff_layout_select_ds_stateid(struct pnfs_layout_segment *lseg,
                                u32 mirror_idx,
index 7fd9222..3a24193 100644 (file)
@@ -351,21 +351,10 @@ ff_layout_get_mirror_cred(struct nfs4_ff_layout_mirror *mirror, u32 iomode)
 }
 
 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 */
-       fh = &mirror->fh_versions[0];
-out:
-       return fh;
+       return &mirror->fh_versions[0];
 }
 
 int