From f2d52d3f1c4cbeb297b4ba1ffb4c5769a644c3df Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 31 Jan 2008 16:08:02 -0800 Subject: [PATCH] fix bug in silly_write, calc_pages_for --- src/kernel/osd_client.c | 15 ++------------- src/kernel/super.h | 7 +------ 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/src/kernel/osd_client.c b/src/kernel/osd_client.c index 4a17cdd2d49e0..084bf3bfd92c6 100644 --- a/src/kernel/osd_client.c +++ b/src/kernel/osd_client.c @@ -437,16 +437,6 @@ int ceph_osdc_readpages(struct ceph_osd_client *osdc, ceph_ino_t ino, /* * silly hack. */ -static int calc_bits_of(unsigned t) -{ - int b = 0; - while (t) { - t = t >> 1; - b++; - } - return b; -} - int ceph_osdc_silly_write(struct ceph_osd_client *osdc, ceph_ino_t ino, struct ceph_file_layout *layout, __u64 len, __u64 off, const char __user *data) @@ -491,9 +481,8 @@ int ceph_osdc_silly_write(struct ceph_osd_client *osdc, ceph_ino_t ino, } /* data into a set of pages */ - req->r_pages[0] = alloc_pages(GFP_KERNEL, calc_bits_of(nrp)); - for (i=1; ir_pages[i] = req->r_pages[i-1]+1; + for (i=0; ir_pages[i] = alloc_page(GFP_KERNEL); left = len; po = off & ~PAGE_MASK; for (i=0; i> PAGE_SHIFT; if (len & ~PAGE_MASK) nr++; -- 2.39.5