On Fri, Oct 11, 2013 at 09:41:23PM +0800, Chen Hanxiao wrote:
From: Chen Hanxiao <chenhanxiao(a)cn.fujitsu.com>
When EINVAL caught, tell user that what values
are invalid for what field.
Signed-off-by: Chen Hanxiao <chenhanxiao(a)cn.fujitsu.com>
---
src/util/vircgroup.c | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c
index e99caf5..a98bd63 100644
--- a/src/util/vircgroup.c
+++ b/src/util/vircgroup.c
@@ -664,12 +664,21 @@ virCgroupSetValueStr(virCgroupPtr group,
{
int ret = -1;
char *keypath = NULL;
+ char *tmp = NULL;
if (virCgroupPathOfController(group, controller, key, &keypath) < 0)
return -1;
VIR_DEBUG("Set value '%s' to '%s'", keypath, value);
if (virFileWriteStr(keypath, value, 0) < 0) {
+ if (errno == EINVAL) {
+ tmp = strrchr(keypath, '/');
+ if (!tmp)
+ goto cleanup;
This would fail to raise an error if '!tmp', so I re-arranged
the code todo
if (errno == EINVAL &&
(tmp = strrchr(keypath, '/'))) {
...
so it falls back to the existing error report
+ virReportSystemError(errno,
+ _("Invalid value '%s' for
'%s'"), value, ++tmp);
+ goto cleanup;
+ }
virReportSystemError(errno,
_("Unable to write to '%s'"), keypath);
goto cleanup;
ACK & pushed with the above change
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|