Gitweb:
https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=4f4ddb806d9e27f141d...
Commit: 4f4ddb806d9e27f141d76b4b80113948da012426
Parent: e6b4b41881b6070b24353496dd32cccc270fe9ce
Author: Alasdair G Kergon <agk(a)redhat.com>
AuthorDate: Tue Jan 2 14:19:20 2018 +0000
Committer: Alasdair G Kergon <agk(a)redhat.com>
CommitterDate: Tue Jan 2 14:19:20 2018 +0000
label: Move setting result of label_read into separate fn.
---
lib/label/label.c | 22 ++++++++++++++++------
1 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/lib/label/label.c b/lib/label/label.c
index fa44f2c..04db752 100644
--- a/lib/label/label.c
+++ b/lib/label/label.c
@@ -119,6 +119,14 @@ static void _update_lvmcache_orphan(struct lvmcache_info *info)
stack;
}
+static void _set_label_read_result(struct device *dev, uint64_t sector, struct label
**result)
+{
+ if (result && *result) {
+ (*result)->dev = dev;
+ (*result)->sector = sector;
+ }
+}
+
static struct labeller *_find_labeller(struct device *dev, char *labelbuf,
uint64_t *label_sector,
uint64_t scan_sector)
@@ -277,8 +285,7 @@ int label_remove(struct device *dev)
return r;
}
-int label_read(struct device *dev, struct label **result,
- uint64_t scan_sector)
+static int _label_read(struct device *dev, struct label **result, uint64_t scan_sector)
{
char buf[LABEL_SIZE] __attribute__((aligned(8)));
struct labeller *l;
@@ -304,10 +311,8 @@ int label_read(struct device *dev, struct label **result,
}
if ((l = _find_labeller(dev, buf, §or, scan_sector)))
- if ((r = (l->ops->read)(l, dev, buf, result)) && result &&
*result) {
- (*result)->dev = dev;
- (*result)->sector = sector;
- }
+ if ((r = (l->ops->read)(l, dev, buf, result)))
+ _set_label_read_result(dev, sector, result);
if (!dev_close(dev))
stack;
@@ -315,6 +320,11 @@ int label_read(struct device *dev, struct label **result,
return r;
}
+int label_read(struct device *dev, struct label **result, uint64_t scan_sector)
+{
+ return _label_read(dev, result, scan_sector);
+}
+
/* Caller may need to use label_get_handler to create label struct! */
int label_write(struct device *dev, struct label *label)
{