])
#
+# 2.6.38 export blkdev_get_by_dev
+#
+AC_DEFUN([LC_BLKDEV_GET_BY_DEV],
+[LB_CHECK_SYMBOL_EXPORT([blkdev_get_by_dev],
+[fs/block_dev.c],[
+AC_DEFINE(HAVE_BLKDEV_GET_BY_DEV, 1,
+ [blkdev_get_by_dev is exported by the kernel])
+],[
+])
+])
+
+#
# 2.6.39 remove unplug_fn from request_queue.
#
AC_DEFUN([LC_REQUEST_QUEUE_UNPLUG_FN],
memset(rq.unplug_fn, 0, sizeof(rq.unplug_fn));
],[
AC_DEFINE(HAVE_REQUEST_QUEUE_UNPLUG_FN, 1,
- [request_queue has unplug_fn field]),
+ [request_queue has unplug_fn field]),
AC_MSG_RESULT([yes])
],[
AC_MSG_RESULT([no])
LC_BLK_QUEUE_MAX_SECTORS
LC_BLK_QUEUE_MAX_SEGMENTS
+ # 2.6.38
+ LC_BLKDEV_GET_BY_DEV
+
# 2.6.39
LC_REQUEST_QUEUE_UNPLUG_FN
#define blk_queue_max_hw_sectors(q, sect) blk_queue_max_sectors(q, sect)
#endif
+#ifndef HAVE_BLKDEV_GET_BY_DEV
+# define blkdev_get_by_dev(dev, mode, holder) open_by_devnum(dev, mode)
+#endif
+
#ifndef HAVE_REQUEST_QUEUE_LIMITS
#define queue_max_sectors(rq) ((rq)->max_sectors)
#define queue_max_hw_sectors(rq) ((rq)->max_hw_sectors)
if (put_user((long)old_encode_dev(dev), (long*)arg))
GOTO(out, err = -EFAULT);
- bdev = open_by_devnum(dev, file->f_mode);
+ bdev = blkdev_get_by_dev(dev, file->f_mode, NULL);
if (IS_ERR(bdev))
GOTO(out, err = PTR_ERR(bdev));