summaryrefslogtreecommitdiffstats
path: root/lib/label/label.c
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2002-01-16 13:09:26 +0000
committerAlasdair Kergon <agk@redhat.com>2002-01-16 13:09:26 +0000
commit3c06874035fd335d6e8b324dfa7e5f62e3bc2af0 (patch)
tree0bfae3908a10523d2219ee346987148a4cfe8486 /lib/label/label.c
parentd738054256bf056a0dba47b635afab33ea88fb7a (diff)
downloadlvm2-3c06874035fd335d6e8b324dfa7e5f62e3bc2af0.tar.gz
lvm2-3c06874035fd335d6e8b324dfa7e5f62e3bc2af0.tar.xz
lvm2-3c06874035fd335d6e8b324dfa7e5f62e3bc2af0.zip
Remove a duplicate disk read (can_handle).
Diffstat (limited to 'lib/label/label.c')
-rw-r--r--lib/label/label.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/lib/label/label.c b/lib/label/label.c
index ba280d9f..be2bcefa 100644
--- a/lib/label/label.c
+++ b/lib/label/label.c
@@ -120,18 +120,20 @@ int label_remove(struct device *dev)
int label_read(struct device *dev, struct label **result)
{
- struct labeller *l;
int r;
+ struct list *lih;
+ struct labeller_i *li;
- if (!(l = _find_labeller(dev))) {
- stack;
- return 0;
+ list_iterate (lih, &_labellers) {
+ li = list_item(lih, struct labeller_i);
+ if ((r = li->l->ops->read(li->l, dev, result))) {
+ (*result)->labeller = li->l;
+ return r;
+ }
}
- if ((r = l->ops->read(l, dev, result)))
- (*result)->labeller = l;
-
- return r;
+ log_debug("No label on device '%s'.", dev_name(dev));
+ return 0;
}
int label_verify(struct device *dev)