summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2011-06-16 20:20:22 +0200
committerBrian Behlendorf <[email protected]>2011-06-17 14:37:26 -0700
commit96801d290652812780cf6c070729154d4af8e1ce (patch)
tree14156076eb6975748d4037e66a6717dad776a993 /include/linux
parentdb97f88646b0d59e8e3db9144006491fb2192854 (diff)
Linux 2.6.37 compat, WRITE_FLUSH_FUA
The WRITE_FLUSH, WRITE_FUA, and WRITE_FLUSH_FUA flags have been introduced as a replacement for WRITE_BARRIER. This was done to allow richer semantics to be expressed to the block layer. It is the block layers responsibility to choose the correct way to implement these semantics. This change simply updates the bio's to use the new kernel API which should be absolutely safe. However, since ZFS depends entirely on this working as designed for correctness we do want to be careful. Closes #281
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/blkdev_compat.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/include/linux/blkdev_compat.h b/include/linux/blkdev_compat.h
index 3bf1f4574..0a7c985d8 100644
--- a/include/linux/blkdev_compat.h
+++ b/include/linux/blkdev_compat.h
@@ -339,6 +339,20 @@ bio_set_flags_failfast(struct block_device *bdev, int *flags)
#endif
/*
+ * 2.6.37 API change
+ * The WRITE_FLUSH, WRITE_FUA, and WRITE_FLUSH_FUA flags have been
+ * introduced as a replacement for WRITE_BARRIER. This was done to
+ * allow richer semantics to be expressed to the block layer. It is
+ * the block layers responsibility to choose the correct way to
+ * implement these semantics.
+ */
+#ifdef WRITE_FLUSH_FUA
+# define VDEV_WRITE_FLUSH_FUA WRITE_FLUSH_FUA
+#else
+# define VDEV_WRITE_FLUSH_FUA WRITE_BARRIER
+#endif
+
+/*
* Default Linux IO Scheduler,
* Setting the scheduler to noop will allow the Linux IO scheduler to
* still perform front and back merging, while leaving the request