]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
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)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 12 Sep 2012 02:36:49 +0000 (03:36 +0100)
commit e5265a0c587423bbd21a6b39a572cecff16b9346 upstream.

Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/nfs/nfs4filelayoutdev.c
fs/nfs/pnfs.c

index ed388aae96893628dfcecb25743acac320b8a1b4..bd5d9cf47e257d9c254da6fab2ff618de58329e1 100644 (file)
@@ -721,7 +721,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 4dfc3f17a0536b1cb6b5362fd3876d80044ef48d..72380f34e67fa09655b1be3c0df4368b9580a251 100644 (file)
@@ -588,7 +588,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)