
于 2011年09月21日 14:41, Daniel Veillard 写道:
On Wed, Sep 21, 2011 at 01:39:22PM +0800, Osier Yang wrote:
* src/storage/storage_backend_logical.c:
If a logical vol is created with multiple stripes. (e.g. --stripes 3), the "device" field of lvs output will have multiple fileds which are seperated by comma. It means the RE we write in the codes will not work well anymore. E.g. (lvs output for a stripped vol, uses "#" as seperator here):
test_stripes##fSLSZH-zAS2-yAIb-n4mV-Al9u-HA3V-oo9K1B#\ /dev/sdc1(10240),/dev/sdd1(0)#42949672960#4194304
The RE we uses:
const char *regexes[] = { "^\\s*(\\S+),(\\S*),(\\S+),(\\S+)\\((\\S+)\\),(\\S+),([0-9]+),?\\s*$" };
This patch changes the seperator into "#" to fix the problem.
Related RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=727474 --- src/storage/storage_backend_logical.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c index 4f42047..6c13a6b 100644 --- a/src/storage/storage_backend_logical.c +++ b/src/storage/storage_backend_logical.c @@ -199,7 +199,7 @@ virStorageBackendLogicalFindLVs(virStoragePoolObjPtr pool, 7 }; const char *prog[] = { - LVS, "--separator", ",", "--noheadings", "--units", "b", + LVS, "--separator", "#", "--noheadings", "--units", "b", "--unbuffered", "--nosuffix", "--options", "lv_name,origin,uuid,devices,seg_size,vg_extent_size", pool->def->source.name, NULL Err, it seems the regexp should be changed too ... as you wrote it seems to expect ',' as the separator.
Oops, updated patch is following. Osier