]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Linux 4.8 compat: REQ_PREFLUSH
authorBrian Behlendorf <behlendorf1@llnl.gov>
Wed, 27 Jul 2016 18:06:17 +0000 (18:06 +0000)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 29 Jul 2016 21:48:09 +0000 (14:48 -0700)
The REQ_FLUSH flag was renamed REQ_PREFLUSH to avoid confusion with
REQ_OP_FLUSH.  See https://github.com/torvalds/linux/commit/28a8f0d3
for complete details.

Signed-off-by: Tim Chase <tim@chase2k.com>
Signed-off-by: Chunwei Chen <david.chen@osnexus.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #4892
Issue #4899

include/linux/blkdev_compat.h

index 42b474b15f02b2aa51a3711cc82f0e1c16331842..e263dc8360811b875bb4de61e531013ee37168ab 100644 (file)
@@ -305,12 +305,23 @@ bio_set_flags_failfast(struct block_device *bdev, int *flags)
  * The existence of these flags implies that REQ_FLUSH an REQ_FUA are
  * defined.  Thus we can safely define VDEV_REQ_FLUSH and VDEV_REQ_FUA
  * compatibility macros.
+ *
+ * Linux 4.8 renamed the REQ_FLUSH to REQ_PREFLUSH but there was no
+ * functional change in behavior.
  */
 #ifdef WRITE_FLUSH_FUA
+
 #define        VDEV_WRITE_FLUSH_FUA            WRITE_FLUSH_FUA
+#ifdef REQ_PREFLUSH
+#define        VDEV_REQ_FLUSH                  REQ_PREFLUSH
+#define        VDEV_REQ_FUA                    REQ_FUA
+#else
 #define        VDEV_REQ_FLUSH                  REQ_FLUSH
 #define        VDEV_REQ_FUA                    REQ_FUA
+#endif
+
 #else
+
 #define        VDEV_WRITE_FLUSH_FUA            WRITE_BARRIER
 #ifdef HAVE_BIO_RW_BARRIER
 #define        VDEV_REQ_FLUSH                  (1 << BIO_RW_BARRIER)
@@ -319,6 +330,7 @@ bio_set_flags_failfast(struct block_device *bdev, int *flags)
 #define        VDEV_REQ_FLUSH                  REQ_HARDBARRIER
 #define        VDEV_REQ_FUA                    REQ_FUA
 #endif
+
 #endif
 
 /*