summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-02-22 14:55:35 -0800
committerBrian Behlendorf <[email protected]>2011-02-23 12:29:38 -0800
commit45066d1f20a582fc8229776503b1cdd554d7fde4 (patch)
treee41b6ca3b64e58d1a882f185c59bdb159fd0172b /config
parent61e909608d15dc6900a710a0ceab6e101a68ac5a (diff)
Linux 2.6.38 compat, blkdev_get_by_path()
The open_bdev_exclusive() function has been replaced (again) by the more generic blkdev_get_by_path() function. Additionally, the counterpart function close_bdev_exclusive() has been replaced by blkdev_put(). Because these functions are more generic versions of the functions they replaced the compatibility macro must add the FMODE_EXCL mask to ensure they are exclusive. Closes #114
Diffstat (limited to 'config')
-rw-r--r--config/kernel-blkdev-get-by-path.m413
-rw-r--r--config/kernel.m41
2 files changed, 14 insertions, 0 deletions
diff --git a/config/kernel-blkdev-get-by-path.m4 b/config/kernel-blkdev-get-by-path.m4
new file mode 100644
index 000000000..0d5d2b120
--- /dev/null
+++ b/config/kernel-blkdev-get-by-path.m4
@@ -0,0 +1,13 @@
+dnl #
+dnl # 2.6.38 API change
+dnl # open_bdev_exclusive() changed to blkdev_get_by_path()
+dnl # close_bdev_exclusive() changed to blkdev_put()
+dnl #
+AC_DEFUN([ZFS_AC_KERNEL_BLKDEV_GET_BY_PATH], [
+ ZFS_CHECK_SYMBOL_EXPORT(
+ [blkdev_get_by_path],
+ [fs/block_dev.c],
+ [AC_DEFINE(HAVE_BLKDEV_GET_BY_PATH, 1,
+ [blkdev_get_by_path() is available])],
+ [])
+])
diff --git a/config/kernel.m4 b/config/kernel.m4
index c3321ed8d..492fbab14 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -8,6 +8,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS
ZFS_AC_KERNEL_TYPE_FMODE_T
ZFS_AC_KERNEL_KOBJ_NAME_LEN
+ ZFS_AC_KERNEL_BLKDEV_GET_BY_PATH
ZFS_AC_KERNEL_OPEN_BDEV_EXCLUSIVE
ZFS_AC_KERNEL_INVALIDATE_BDEV_ARGS
ZFS_AC_KERNEL_BDEV_LOGICAL_BLOCK_SIZE