RDMA/core: Properly increment and decrement QP usecnts
[linux-2.6-microblaze.git] / fs / nfs / pagelist.c
index cf9cc62..cc232d1 100644 (file)
@@ -954,6 +954,7 @@ static int nfs_generic_pg_pgios(struct nfs_pageio_descriptor *desc)
 {
        struct nfs_pgio_header *hdr;
        int ret;
+       unsigned short task_flags = 0;
 
        hdr = nfs_pgio_header_alloc(desc->pg_rw_ops);
        if (!hdr) {
@@ -962,14 +963,17 @@ static int nfs_generic_pg_pgios(struct nfs_pageio_descriptor *desc)
        }
        nfs_pgheader_init(desc, hdr, nfs_pgio_header_free);
        ret = nfs_generic_pgio(desc, hdr);
-       if (ret == 0)
+       if (ret == 0) {
+               if (NFS_SERVER(hdr->inode)->nfs_client->cl_minorversion)
+                       task_flags = RPC_TASK_MOVEABLE;
                ret = nfs_initiate_pgio(NFS_CLIENT(hdr->inode),
                                        hdr,
                                        hdr->cred,
                                        NFS_PROTO(hdr->inode),
                                        desc->pg_rpc_callops,
                                        desc->pg_ioflags,
-                                       RPC_TASK_CRED_NOREF);
+                                       RPC_TASK_CRED_NOREF | task_flags);
+       }
        return ret;
 }