1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-03 05:18:29 +03:00

lvinfo: allow to use lv_info with NULL info

When NULL info struct is passed in - function is usable
as a quick query for  lv_is_active_locally() - with a bonus
we may query for layered device.

So it could be seen as a more efficient lv_is_active_locally().
This commit is contained in:
Zdenek Kabelac 2013-09-19 14:05:55 +02:00
parent b29adbbc4d
commit 3b604e5c8e
2 changed files with 9 additions and 1 deletions

View File

@ -1,3 +1,7 @@
Version 2.02.102
======================================
Extend lv_info() for more efficient lv_is_active_locally() check.
Version 2.02.101 - 20th September 2013 Version 2.02.101 - 20th September 2013
====================================== ======================================
Fix 3-thread clvmd deadlock triggered by cleanup on EOF from client. Fix 3-thread clvmd deadlock triggered by cleanup on EOF from client.

View File

@ -616,6 +616,7 @@ int target_present(struct cmd_context *cmd, const char *target_name,
/* /*
* Returns 1 if info structure populated, else 0 on failure. * Returns 1 if info structure populated, else 0 on failure.
* When lvinfo* is NULL, it returns 1 if the device is locally active, 0 otherwise.
*/ */
int lv_info(struct cmd_context *cmd, const struct logical_volume *lv, int use_layer, int lv_info(struct cmd_context *cmd, const struct logical_volume *lv, int use_layer,
struct lvinfo *info, int with_open_count, int with_read_ahead) struct lvinfo *info, int with_open_count, int with_read_ahead)
@ -640,9 +641,12 @@ int lv_info(struct cmd_context *cmd, const struct logical_volume *lv, int use_la
if (!dev_manager_info(lv->vg->cmd->mem, lv, if (!dev_manager_info(lv->vg->cmd->mem, lv,
(use_layer) ? lv_layer(lv) : NULL, (use_layer) ? lv_layer(lv) : NULL,
with_open_count, with_read_ahead, with_open_count, with_read_ahead,
&dminfo, &info->read_ahead)) &dminfo, (info) ? &info->read_ahead : NULL))
return_0; return_0;
if (!info)
return dminfo.exists;
info->exists = dminfo.exists; info->exists = dminfo.exists;
info->suspended = dminfo.suspended; info->suspended = dminfo.suspended;
info->open_count = dminfo.open_count; info->open_count = dminfo.open_count;