]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
fix page number calculation bug for block layout decode buffer
authorJim Rees <rees@umich.edu>
Tue, 10 Apr 2012 02:33:39 +0000 (22:33 -0400)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 12 Sep 2012 02:36:49 +0000 (03:36 +0100)
commit 10bd295a0b6488ebe634b72a11d8986bd3af3819 upstream.

Signed-off-by: Jim Rees <rees@umich.edu>
Suggested-by: Andy Adamson <andros@netapp.com>
Suggested-by: Fred Isaman <iisaman@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/nfs/blocklayout/blocklayout.c

index 3db6b82e397b099bbfc48bc528ca95cd8c9d0900..d7743095e2d68c46f7714c283134468a4a2542d5 100644 (file)
@@ -38,6 +38,8 @@
 #include <linux/buffer_head.h> /* various write calls */
 #include <linux/prefetch.h>
 
+#include "../pnfs.h"
+#include "../internal.h"
 #include "blocklayout.h"
 
 #define NFSDBG_FACILITY        NFSDBG_PNFS_LD
@@ -814,7 +816,7 @@ nfs4_blk_get_deviceinfo(struct nfs_server *server, const struct nfs_fh *fh,
         * 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 max_resp_sz %u max_pages %d\n",
                __func__, max_resp_sz, max_pages);