[lvm-devel] master - device: Add flag to indicate that a code path can support AIO

Alasdair Kergon agk at sourceware.org
Fri Feb 9 01:32:04 UTC 2018


Gitweb:        https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=7a9af3cd0e609e10840202ae1754ab76b6add511
Commit:        7a9af3cd0e609e10840202ae1754ab76b6add511
Parent:        e869a52cc4e0a65f00c8d3f40cf94b6989e60871
Author:        Alasdair G Kergon <agk at redhat.com>
AuthorDate:    Mon Jan 22 16:56:25 2018 +0000
Committer:     Alasdair G Kergon <agk at redhat.com>
CommitterDate: Tue Feb 6 01:11:00 2018 +0000

device: Add flag to indicate that a code path can support AIO

Until the whole source supports AIO, library code can check for
AIO_SUPPORTED_CODE_PATH to determine whether or not it is OK
to use AIO.
---
 WHATS_NEW            |    1 +
 lib/cache/lvmcache.c |    2 +-
 lib/device/device.h  |    5 +++++
 3 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/WHATS_NEW b/WHATS_NEW
index 911a6e3..87d7de8 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
 Version 2.02.178 - 
 =====================================
+  Add AIO_SUPPORTED_CODE_PATH to indicate whether AIO may be used.
   Configure ensures /usr/bin dir is checked for dmpd tools.
   Restore pvmove support for wide-clustered active volumes (2.02.177).
   Avoid non-exclusive activation of exclusive segment types.
diff --git a/lib/cache/lvmcache.c b/lib/cache/lvmcache.c
index 65728fd..2eaf479 100644
--- a/lib/cache/lvmcache.c
+++ b/lib/cache/lvmcache.c
@@ -1156,7 +1156,7 @@ int lvmcache_label_scan(struct cmd_context *cmd)
 
 	while ((dev = dev_iter_get(iter))) {
 		nr_labels_outstanding++;
-		if (!label_read_callback(dev, UINT64_C(0), 0, _process_label_data, &nr_labels_outstanding))
+		if (!label_read_callback(dev, UINT64_C(0), AIO_SUPPORTED_CODE_PATH, _process_label_data, &nr_labels_outstanding))
 			nr_labels_outstanding--;
 		dev_count++;
 	}
diff --git a/lib/device/device.h b/lib/device/device.h
index d5b076f..2dea689 100644
--- a/lib/device/device.h
+++ b/lib/device/device.h
@@ -32,6 +32,11 @@
 #define DEV_ASSUMED_FOR_LV	0x00000200	/* Is device assumed for an LV */
 #define DEV_NOT_O_NOATIME	0x00000400	/* Don't use O_NOATIME */
 
+/* ioflags */
+#define AIO_SUPPORTED_CODE_PATH	0x00000001	/* Set if the code path supports AIO */
+
+#define aio_supported_code_path(ioflags)       (((ioflags) & AIO_SUPPORTED_CODE_PATH) ? 1 : 0)
+
 /*
  * Standard format for callback functions.
  * When provided, callback functions are called exactly once.




More information about the lvm-devel mailing list