diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 2a571fb4803b8e296f10ad2e21eaf3124769b742..e53f24b15b12dc0c1be74a90b84bedf26c65440d 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -314,7 +314,7 @@ static int start_read(struct inode *inode, struct list_head *page_list, int max) return PTR_ERR(req); /* build page vector */ - nr_pages = len >> PAGE_CACHE_SHIFT; + nr_pages = calc_pages_for(0, len); pages = kmalloc(sizeof(*pages) * nr_pages, GFP_NOFS); ret = -ENOMEM; if (!pages)