2
1

nbd-server-fix-read-eagain.patch 390 B

123456789101112131415161718192021
  1. --- nbd-2.9.11.orig/nbd-server.c
  2. +++ nbd-2.9.11/nbd-server.c
  3. @@ -304,10 +304,14 @@
  4. ssize_t res;
  5. while (len > 0) {
  6. DEBUG("*");
  7. - if ((res = read(f, buf, len)) <= 0)
  8. - err("Read failed: %m");
  9. - len -= res;
  10. - buf += res;
  11. + if ((res = read(f, buf, len)) <= 0) {
  12. + if(errno != EAGAIN) {
  13. + err("Read failed: %m");
  14. + }
  15. + } else {
  16. + len -= res;
  17. + buf += res;
  18. + }
  19. }
  20. }