NFSv4.1 fix page number calculation bug for filelayout decode buffers
authorAndy Adamson <andros@netapp.com>
Sat, 14 Apr 2012 07:56:35 +0000 (03:56 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 26 Apr 2012 16:23:23 +0000 (12:23 -0400)
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/nfs4filelayoutdev.c
fs/nfs/pnfs.c

index a866bbd2890a056b530ebe3ae91cd74b0862f4a1..c9cff9adb2d3f7c832f3e3bc7e6d76ec45a6e692 100644 (file)
@@ -699,7 +699,7 @@ get_device_info(struct inode *inode, struct nfs4_deviceid *dev_id, gfp_t gfp_fla
         * GETDEVICEINFO's maxcount
         */
        max_resp_sz = server->nfs_client->cl_session->fc_attrs.max_resp_sz;
-       max_pages = max_resp_sz >> PAGE_SHIFT;
+       max_pages = nfs_page_array_len(0, max_resp_sz);
        dprintk("%s inode %p max_resp_sz %u max_pages %d\n",
                __func__, inode, max_resp_sz, max_pages);
 
index b5d4515869436dc6bd16a483590a433ac04c665c..38512bcd2e98b4c82e3b03e2592061c06897abe5 100644 (file)
@@ -587,7 +587,7 @@ send_layoutget(struct pnfs_layout_hdr *lo,
 
        /* allocate pages for xdr post processing */
        max_resp_sz = server->nfs_client->cl_session->fc_attrs.max_resp_sz;
-       max_pages = max_resp_sz >> PAGE_SHIFT;
+       max_pages = nfs_page_array_len(0, max_resp_sz);
 
        pages = kcalloc(max_pages, sizeof(struct page *), gfp_flags);
        if (!pages)