summaryrefslogtreecommitdiffstats
path: root/kernel/core.c
diff options
context:
space:
mode:
authorDirk von Suchodoletz2009-03-26 15:45:38 +0100
committerDirk von Suchodoletz2009-03-26 15:45:38 +0100
commit9b308b4215dda5de3536e8cf0fd7e9842c814bf7 (patch)
tree9308cd7d71f093841b1f07dcb57d91eacc46322d /kernel/core.c
parent * added kernel version check to module source (diff)
downloaddnbd2-9b308b4215dda5de3536e8cf0fd7e9842c814bf7.tar.gz
dnbd2-9b308b4215dda5de3536e8cf0fd7e9842c814bf7.tar.xz
dnbd2-9b308b4215dda5de3536e8cf0fd7e9842c814bf7.zip
It compiles - but if it works :)
git-svn-id: http://svn.openslx.org/svn/openslx/contrib/dnbd2/trunk@2759 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'kernel/core.c')
-rw-r--r--kernel/core.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/core.c b/kernel/core.c
index 6bee380..01ff4b1 100644
--- a/kernel/core.c
+++ b/kernel/core.c
@@ -15,8 +15,11 @@
int dnbd2_major;
static dnbd2_device_t dev[DNBD2_DEVICES];
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
+void dnbd2_request(struct request_queue *q)
+#else
void dnbd2_request(request_queue_t *q)
+#endif
{
int i;
struct request *req;
@@ -311,8 +314,12 @@ void dnbd2_end_request(struct request *req, int success)
dev = req->rq_disk->private_data;
spin_lock_irqsave(&dev->blk_lock, flags);
list_del_init(&req->queuelist);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
+ if(!__blk_end_request(req, success, req->nr_sectors)) {
+#else
if (!end_that_request_first(req, success, req->nr_sectors)) {
end_that_request_last(req, success);
+#endif
}
dev->pending_reqs--;
spin_unlock_irqrestore(&dev->blk_lock, flags);