From 281c4fd0febbab8cd8d035ada18de52e87b15907 Mon Sep 17 00:00:00 2001 From: patiencew Date: Wed, 31 Oct 2007 16:14:49 +0000 Subject: [PATCH] git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@2005 29311d96-e01e-0410-9327-a35deaab8ce9 --- trunk/ceph/kernel/bufferlist.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/trunk/ceph/kernel/bufferlist.c b/trunk/ceph/kernel/bufferlist.c index 5b8dda45a689b..fbe2c7915bede 100644 --- a/trunk/ceph/kernel/bufferlist.c +++ b/trunk/ceph/kernel/bufferlist.c @@ -28,7 +28,19 @@ void ceph_bl_clear(struct ceph_bufferlist *bl) bl->b_append.iov_base = 0; } } - +void * ceph_buffer_create(u32 size) +{ + void *buf; + unsigned order = get_order(size); + size_t numpages = (size + PAGE_SIZE -1) >> PAGE_SHIFT; + + if (PAGE_SIZE && numpages) { + buf = (void *)__get_free_pages(GFP_KERNEL, order); + } else { + buf = kmalloc(size, GFP_KERNEL); + } + return(buf); +} /* * add referenced memory to the bufferlist. -- 2.39.5