NFSv4.1/pNFS: Use nfs4_stateid_copy for copying stateids
authorTrond Myklebust <trond.myklebust@primarydata.com>
Mon, 4 Jan 2016 17:22:46 +0000 (12:22 -0500)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Mon, 4 Jan 2016 17:36:10 +0000 (12:36 -0500)
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/pnfs.c

index 7a452895169fba097b19f780b47b442703abc501..7e0f2b9a9b10e1a07c2a1791d49c1e7013aea30c 100644 (file)
@@ -385,7 +385,7 @@ static void pnfs_layoutreturn_before_put_lseg(struct pnfs_layout_segment *lseg,
                enum pnfs_iomode iomode;
                bool send;
 
-               stateid = lo->plh_stateid;
+               nfs4_stateid_copy(&stateid, &lo->plh_stateid);
                iomode = lo->plh_return_iomode;
                send = pnfs_prepare_layoutreturn(lo);
                spin_unlock(&inode->i_lock);
@@ -1007,7 +1007,7 @@ _pnfs_return_layout(struct inode *ino)
                dprintk("NFS: %s no layout to return\n", __func__);
                goto out;
        }
-       stateid = nfsi->layout->plh_stateid;
+       nfs4_stateid_copy(&stateid, &nfsi->layout->plh_stateid);
        /* Reference matched in nfs4_layoutreturn_release */
        pnfs_get_layout_hdr(lo);
        empty = list_empty(&lo->plh_segs);
@@ -1098,7 +1098,7 @@ bool pnfs_roc(struct inode *ino)
                        goto out_noroc;
        }
 
-       stateid = lo->plh_stateid;
+       nfs4_stateid_copy(&stateid, &lo->plh_stateid);
        /* always send layoutreturn if being marked so */
        if (test_and_clear_bit(NFS_LAYOUT_RETURN_BEFORE_CLOSE,
                                   &lo->plh_flags))