On Tue, Jul 10, 2012 at 8:53 PM, Anthony Liguori <anth...@codemonkey.ws> wrote: > On 07/08/2012 06:51 AM, blauwir...@gmail.com wrote: >> >> From: Blue Swirl<blauwir...@gmail.com> >> >> Replace %m format with explicit call to standard strerror(). >> >> Signed-off-by: Blue Swirl<blauwir...@gmail.com> > > > I would expect '%m' to be thread safe whereas strerror() isn't. I don't > think this change is actually good. > > You'd need to do something more clever with strerror_r() to be equivalent.
There's also g_strerror() which has a simpler interface. > > Regards, > > Anthony Liguori > > >> --- >> kvm-all.c | 3 ++- >> main-loop.c | 2 +- >> net/tap-linux.c | 8 +++++--- >> qemu-nbd.c | 3 +-- >> 4 files changed, 9 insertions(+), 7 deletions(-) >> >> diff --git a/kvm-all.c b/kvm-all.c >> index f8e4328..d6f4819 100644 >> --- a/kvm-all.c >> +++ b/kvm-all.c >> @@ -1219,7 +1219,8 @@ int kvm_init(void) >> s->vmfd = -1; >> s->fd = qemu_open("/dev/kvm", O_RDWR); >> if (s->fd == -1) { >> - fprintf(stderr, "Could not access KVM kernel module: %m\n"); >> + fprintf(stderr, "Could not access KVM kernel module: %s\n", >> + strerror(errno)); >> ret = -errno; >> goto err; >> } >> diff --git a/main-loop.c b/main-loop.c >> index eb3b6e6..472c55e 100644 >> --- a/main-loop.c >> +++ b/main-loop.c >> @@ -116,7 +116,7 @@ static void sigfd_handler(void *opaque) >> } >> >> if (len != sizeof(info)) { >> - printf("read from sigfd returned %zd: %m\n", len); >> + printf("read from sigfd returned %zd: %s\n", len, >> strerror(errno)); >> return; >> } >> >> diff --git a/net/tap-linux.c b/net/tap-linux.c >> index 41d581b..94e5b1e 100644 >> --- a/net/tap-linux.c >> +++ b/net/tap-linux.c >> @@ -42,7 +42,7 @@ int tap_open(char *ifname, int ifname_size, int >> *vnet_hdr, int vnet_hdr_required >> >> TFR(fd = open(PATH_NET_TUN, O_RDWR)); >> if (fd< 0) { >> - error_report("could not open %s: %m", PATH_NET_TUN); >> + error_report("could not open %s: %s", PATH_NET_TUN, >> strerror(errno)); >> return -1; >> } >> memset(&ifr, 0, sizeof(ifr)); >> @@ -74,9 +74,11 @@ int tap_open(char *ifname, int ifname_size, int >> *vnet_hdr, int vnet_hdr_required >> ret = ioctl(fd, TUNSETIFF, (void *)&ifr); >> if (ret != 0) { >> if (ifname[0] != '\0') { >> - error_report("could not configure %s (%s): %m", PATH_NET_TUN, >> ifr.ifr_name); >> + error_report("could not configure %s (%s): %s", PATH_NET_TUN, >> + ifr.ifr_name, strerror(errno)); >> } else { >> - error_report("could not configure %s: %m", PATH_NET_TUN); >> + error_report("could not configure %s: %s", PATH_NET_TUN, >> + strerror(errno)); >> } >> close(fd); >> return -1; >> diff --git a/qemu-nbd.c b/qemu-nbd.c >> index 5a0300e..099b5ed 100644 >> --- a/qemu-nbd.c >> +++ b/qemu-nbd.c >> @@ -213,8 +213,7 @@ static void *nbd_client_thread(void *arg) >> >> fd = open(device, O_RDWR); >> if (fd< 0) { >> - /* Linux-only, we can use %m in printf. */ >> - fprintf(stderr, "Failed to open %s: %m", device); >> + fprintf(stderr, "Failed to open %s: %s", device, >> strerror(errno)); >> goto out; >> } >> >