qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [PATCH 01/14] Introduce qemu_write_full()


From: Anthony Liguori
Subject: [Qemu-devel] Re: [PATCH 01/14] Introduce qemu_write_full()
Date: Tue, 19 Jan 2010 19:04:04 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Lightning/1.0pre Thunderbird/3.0

On 01/19/2010 06:04 PM, Juan Quintela wrote:
Anthony Liguori<address@hidden>  wrote:
On 01/19/2010 06:17 AM, Kirill A. Shutemov wrote:
On Tue, Jan 19, 2010 at 2:11 PM, Juan Quintela<address@hidden>   wrote:

"Kirill A. Shutemov"<address@hidden>   wrote:

A variant of write(2) which handles partial write.

Signed-off-by: Kirill A. Shutemov<address@hidden>

Hi

Have you updated this series?  Is there any reason that you know when
they haven't been picked?

I don't  know any reason, but I'm going to review it once again.

I also have plan to get rid of -fno-strict-aliasing where it's possible.

I haven't reviewed the series in detail, but generally speaking I
don't feel that good about these sort of series.

You're essentially adding dummy error handling to quiet the compiler.
That's worse than just disabling -Werror because at least you aren't
losing the information in the code.

If you're going to update error handling, it should be part of an
effort to make code paths resilient to error.  IOW, actually audit the
full error path of the function and make it deal with errors
gracefully.
I reviewed his series, and I reviewed callers.  Please take a look at my
improved series.  Appart for the comments added there, I don't know what
to do here:

@@ -501,8 +501,11 @@ static void aio_signal_handler(int signum)
  {
      if (posix_aio_state) {
          char byte = 0;
+        ssize_t ret;

-        write(posix_aio_state->wfd,&byte, sizeof(byte));
+        ret = write(posix_aio_state->wfd,&byte, sizeof(byte));
+        if (ret<  0&&  errno != EAGAIN)
+            die("write()");
      }

if write() fails in a pipe in the signal handler, I am at a lost about
what to do here.

That's nothing we can do.  I guess exiting is reasonable.

Regards,

Anthony Liguori




reply via email to

[Prev in Thread] Current Thread [Next in Thread]