]> sourceware.org Git - lvm2.git/commitdiff
dmeventd: code mode _get_device_status
authorZdenek Kabelac <zkabelac@redhat.com>
Thu, 22 Oct 2015 10:36:25 +0000 (12:36 +0200)
committerZdenek Kabelac <zkabelac@redhat.com>
Thu, 22 Oct 2015 20:35:25 +0000 (22:35 +0200)
Move _get_device_status() in code.
Use dm_task_no_flush() function when reading status.
(e.g. none blocking for thins pool)

WHATS_NEW_DM
daemons/dmeventd/dmeventd.c

index 000bddd675cab840bc0e25f97e5c1bd45e70fd8b..5f92657da584c0401363e6d5128abb770b53056a 100644 (file)
@@ -1,5 +1,6 @@
 Version 1.02.110 - 
 ======================================
+  Dmeventd read device status with 'noflush'.
   Dmeventd closes control device when no device is monitored.
   Thin plugin for dmeventd improved percentage usage.
   Snapshot plugin for dmeventd improved percentage usage.
index 26e611d19e362085ec90867275b224b7db35fda8..cde4f934191c17ae1d863b1c4f71c56ab80aaab8 100644 (file)
@@ -570,6 +570,30 @@ fail:
        return ret;
 }
 
+static struct dm_task *_get_device_status(struct thread_status *ts)
+{
+       struct dm_task *dmt = dm_task_create(DM_DEVICE_STATUS);
+
+       if (!dmt)
+               return_NULL;
+
+       if (!dm_task_set_uuid(dmt, ts->device.uuid)) {
+               dm_task_destroy(dmt);
+               return_NULL;
+       }
+
+       /* Non-blocking status read */
+       if (!dm_task_no_flush(dmt))
+               log_warn("WARNING: Can't set no_flush for dm status.");
+
+       if (!dm_task_run(dmt)) {
+               dm_task_destroy(dmt);
+               return_NULL;
+       }
+
+       return dmt;
+}
+
 /*
  * Find an existing thread for a device.
  *
@@ -886,26 +910,6 @@ static void _monitor_unregister(void *arg)
        _unlock_mutex();
 }
 
-static struct dm_task *_get_device_status(struct thread_status *ts)
-{
-       struct dm_task *dmt = dm_task_create(DM_DEVICE_STATUS);
-
-       if (!dmt)
-               return NULL;
-
-       if (!dm_task_set_uuid(dmt, ts->device.uuid)) {
-               dm_task_destroy(dmt);
-               return NULL;
-       }
-
-       if (!dm_task_run(dmt)) {
-               dm_task_destroy(dmt);
-               return NULL;
-       }
-
-       return dmt;
-}
-
 /* Device monitoring thread. */
 static void *_monitor_thread(void *arg)
 {
This page took 0.078996 seconds and 5 git commands to generate.