Package: blktap-dkms
Version: 2.0.93-0.7
Severity: important
Tags: patch
User: [email protected]
Usertags: origin-ubuntu yakkety ubuntu-patch
Dear Maintainer,
starting with kernel 4.7 there have been some modifications to the block
layer which break the build of the DKMS module with those kernels.
The attached patch adds some compat code to allow the module to again
compile with the newer kernels.
In Ubuntu, the attached patch was applied to achieve the following:
* Fix build problems with kernels 4.7 onwards. Various changes in the
block device request queue interface (LP: #1625032).
Thanks for considering the patch.
-- System Information:
Debian Release: jessie/sid
APT prefers trusty-updates
APT policy: (500, 'trusty-updates'), (500, 'trusty-security'), (500,
'trusty-proposed'), (500, 'trusty'), (100, 'trusty-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.13.0-96-generic (SMP w/8 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru blktap-dkms-2.0.93/debian/changelog blktap-dkms-2.0.93/debian/changelog
diff -Nru blktap-dkms-2.0.93/debian/control blktap-dkms-2.0.93/debian/control
--- blktap-dkms-2.0.93/debian/control 2016-08-12 19:15:04.000000000 +0200
+++ blktap-dkms-2.0.93/debian/control 2016-09-21 13:11:53.000000000 +0200
@@ -1,8 +1,7 @@
Source: blktap-dkms
Section: kernel
Priority: optional
-Maintainer: Ubuntu Developers <[email protected]>
-XSBC-Original-Maintainer: Debian Xen Team <[email protected]>
+Maintainer: Debian Xen Team <[email protected]>
Uploaders: Jon Ludlam <[email protected]>, Thomas Goirand <[email protected]>
Standards-Version: 3.9.2
Build-Depends: debhelper (>= 7.0.50~), dkms
diff -Nru blktap-dkms-2.0.93/debian/patches/follow-4.8-blkdev-changes.patch blktap-dkms-2.0.93/debian/patches/follow-4.8-blkdev-changes.patch
--- blktap-dkms-2.0.93/debian/patches/follow-4.8-blkdev-changes.patch 1970-01-01 01:00:00.000000000 +0100
+++ blktap-dkms-2.0.93/debian/patches/follow-4.8-blkdev-changes.patch 2016-09-21 12:56:32.000000000 +0200
@@ -0,0 +1,57 @@
+Description: Follow 4.8(and 4.7) changes for block device requests
+ Various changes:
+ - REQ_FLUSH renamed to REQ_PREFLUSH [4.8+]
+ - REQ_DISCARD dropped, leaving REQ_OP_DISCARD [4.8+]
+ - blk_queue_flush() replaced with blk_queue_write_cache() [4.7+]
+ - flush_flags dropped, merged into queue_flags [4.7+]
+Author: Stefan Bader <[email protected]>
+Index: blktap-dkms-2.0.93/device.c
+===================================================================
+--- blktap-dkms-2.0.93.orig/device.c 2016-09-20 19:14:39.000000000 +0200
++++ blktap-dkms-2.0.93/device.c 2016-09-20 20:00:10.013723426 +0200
+@@ -216,13 +216,21 @@ blktap_device_make_request(struct blktap
+ goto fail;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,8,0)
+ if (rq->cmd_flags & REQ_FLUSH) {
++#else
++ if (rq->cmd_flags & REQ_PREFLUSH) {
++#endif
+ request->operation = BLKTAP_OP_FLUSH;
+ request->nr_pages = 0;
+ goto submit;
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,8,0)
+ if (rq->cmd_flags & REQ_DISCARD) {
++#else
++ if (rq->cmd_flags & REQ_OP_DISCARD) {
++#endif
+ request->operation = BLKTAP_OP_TRIM;
+ request->nr_pages = 0;
+ goto submit;
+@@ -349,7 +357,11 @@ blktap_device_configure(struct blktap *t
+
+ /* Enable cache control */
+ if (info->flags & BLKTAP_DEVICE_FLAG_FLUSH)
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)
+ blk_queue_flush(rq, REQ_FLUSH);
++#else
++ blk_queue_write_cache(rq, true, false);
++#endif
+
+ /* Block discards */
+ if (info->flags & BLKTAP_DEVICE_FLAG_TRIM) {
+@@ -575,7 +587,11 @@ blktap_device_create(struct blktap *tap,
+ (unsigned long long)get_capacity(gd),
+ rq->limits.discard_granularity,
+ queue_discard_alignment(rq),
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,7,0)
+ rq->flush_flags);
++#else
++ test_bit(QUEUE_FLAG_WC, rq->queue_flags));
++#endif
+
+ return 0;
+
diff -Nru blktap-dkms-2.0.93/debian/patches/series blktap-dkms-2.0.93/debian/patches/series
--- blktap-dkms-2.0.93/debian/patches/series 2016-08-12 19:15:04.000000000 +0200
+++ blktap-dkms-2.0.93/debian/patches/series 2016-09-20 19:59:55.000000000 +0200
@@ -5,3 +5,4 @@
disallow_mempools_with_ctor.patch
use-gfpflags_allow_blocking-when-available.patch
follow-block_device_operations-release-return-void.patch
+follow-4.8-blkdev-changes.patch