[Oracleasm-commits] jlbec commits r398 - in trunk: . kapi-compat/include kernel
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Wed Dec 3 16:33:16 PST 2008
Author: jlbec
Date: 2008-12-03 16:33:16 -0800 (Wed, 03 Dec 2008)
New Revision: 398
Added:
trunk/kapi-compat/include/bio_map_user.h
Modified:
trunk/configure.in
trunk/kernel/oracleasm.c
Log:
oracleasm: Handle gfp argument to bio_map_user().
The kernel has updated bio_map_user() to take a gfp argument. It will do
all underlying operations with that GFP. We wrap that for compatibility.
oracleasm will use GFP_KERNEL like bio_map_user() used to use. The map
happens at I/O submit time, and shouldn't conflict with anything.
Modified: trunk/configure.in
===================================================================
--- trunk/configure.in 2008-12-04 00:08:33 UTC (rev 397)
+++ trunk/configure.in 2008-12-04 00:33:16 UTC (rev 398)
@@ -213,6 +213,12 @@
[void bio_endio(struct bio \*, unsigned int, int)])
KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS $bio_end_io_compat_header"
+ bio_map_user_compat_header=
+ OCFS2_CHECK_KERNEL_INCLUDES([for gfp argument to bio_map_user], linux/bio.h,
+ $kernelincludes, , bio_map_user_compat_header="bio_map_user.h",
+ [^.*unsigned long, unsigned int, int, gfp_t)])
+ KAPI_COMPAT_HEADERS="$KAPI_COMPAT_HEADERS $bio_map_user_compat_header"
+
kmem_cache_create_header=
OCFS2_CHECK_KERNEL_INCLUDES([kmem_cache_create() with dtor arg in slab.h],
linux/slab.h, $kernelincludes, kmem_cache_create_header="kmem_cache_create.h", ,
Added: trunk/kapi-compat/include/bio_map_user.h
===================================================================
--- trunk/kapi-compat/include/bio_map_user.h (rev 0)
+++ trunk/kapi-compat/include/bio_map_user.h 2008-12-04 00:33:16 UTC (rev 398)
@@ -0,0 +1,14 @@
+#ifndef KAPI_BIO_MAP_USER_H
+#define KAPI_BIO_MAP_USER_H
+
+#include <linux/bio.h>
+
+static struct bio *old_bio_map_user(struct request_queue *q, struct block_device *bdev,
+ unsigned long uaddr, unsigned int len, int write_to_vm,
+ gfp_t gfp_mask)
+{
+ return bio_map_user(q, bdev, uaddr, len, write_to_vm);
+}
+#define kapi_asm_bio_map_user old_bio_map_user
+
+#endif
Modified: trunk/kernel/oracleasm.c
===================================================================
--- trunk/kernel/oracleasm.c 2008-12-04 00:08:33 UTC (rev 397)
+++ trunk/kernel/oracleasm.c 2008-12-04 00:33:16 UTC (rev 398)
@@ -1258,6 +1258,9 @@
# define kapi_asm_end_bio_io asm_end_bio_io
#endif
+#ifndef kapi_asm_bio_map_user
+# define kapi_asm_bio_map_user bio_map_user
+#endif
static int asm_submit_io(struct file *file,
asm_ioc __user *user_iocp,
@@ -1409,9 +1412,9 @@
goto out_error;
ret = -ENOMEM;
- r->r_bio = bio_map_user(bdev_get_queue(bdev), bdev,
- (unsigned long)ioc->buffer_asm_ioc,
- r->r_count, rw == READ);
+ r->r_bio = kapi_asm_bio_map_user(bdev_get_queue(bdev), bdev,
+ (unsigned long)ioc->buffer_asm_ioc,
+ r->r_count, rw == READ, GFP_KERNEL);
if (IS_ERR(r->r_bio)) {
ret = PTR_ERR(r->r_bio);
r->r_bio = NULL;
More information about the Oracleasm-commits
mailing list