pNFS: Cleanup - do layout segment initialisation in one place
authorTrond Myklebust <trond.myklebust@primarydata.com>
Sun, 24 Jul 2016 19:10:12 +0000 (15:10 -0400)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Sun, 24 Jul 2016 20:16:42 +0000 (16:16 -0400)
...instead of splitting the initialisation over init_lseg() and
pnfs_layout_process().

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/pnfs.c

index c9a684c128b8296e54fac76054eef2ce068358d1..09b77a68422ff13cbc2a12655da363d79ebda093 100644 (file)
@@ -334,7 +334,9 @@ pnfs_layout_io_test_failed(struct pnfs_layout_hdr *lo, u32 iomode)
 }
 
 static void
-init_lseg(struct pnfs_layout_hdr *lo, struct pnfs_layout_segment *lseg)
+pnfs_init_lseg(struct pnfs_layout_hdr *lo, struct pnfs_layout_segment *lseg,
+               const struct pnfs_layout_range *range,
+               const nfs4_stateid *stateid)
 {
        INIT_LIST_HEAD(&lseg->pls_list);
        INIT_LIST_HEAD(&lseg->pls_lc_list);
@@ -342,6 +344,8 @@ init_lseg(struct pnfs_layout_hdr *lo, struct pnfs_layout_segment *lseg)
        smp_mb();
        set_bit(NFS_LSEG_VALID, &lseg->pls_flags);
        lseg->pls_layout = lo;
+       lseg->pls_range = *range;
+       lseg->pls_seq = be32_to_cpu(stateid->seqid);
 }
 
 static void pnfs_free_lseg(struct pnfs_layout_segment *lseg)
@@ -1760,9 +1764,7 @@ pnfs_layout_process(struct nfs4_layoutget *lgp)
                return lseg;
        }
 
-       init_lseg(lo, lseg);
-       lseg->pls_range = res->range;
-       lseg->pls_seq = be32_to_cpu(res->stateid.seqid);
+       pnfs_init_lseg(lo, lseg, &res->range, &res->stateid);
 
        spin_lock(&ino->i_lock);
        if (pnfs_layoutgets_blocked(lo)) {