From: Vivek Goyal Date: Tue, 18 May 2021 21:35:32 +0000 (-0400) Subject: virtiofsd: Check for EINTR in preadv() and retry X-Git-Tag: v6.1.0-rc0~99^2~13 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=04c9f7e04ae102edf384613df98268d59ff8fb9b;p=thirdparty%2Fqemu.git virtiofsd: Check for EINTR in preadv() and retry We don't seem to check for EINTR and retry. There are other places in code where we check for EINTR. So lets add a check. Reviewed-by: Dr. David Alan Gilbert Reviewed-by: Connor Kuehl Signed-off-by: Vivek Goyal Message-Id: <20210518213538.693422-2-vgoyal@redhat.com> Signed-off-by: Dr. David Alan Gilbert --- diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c index 9efdbd8ffd0..755d7fb25c0 100644 --- a/tools/virtiofsd/fuse_virtio.c +++ b/tools/virtiofsd/fuse_virtio.c @@ -421,6 +421,9 @@ int virtio_send_data_iov(struct fuse_session *se, struct fuse_chan *ch, if (ret == -1) { ret = errno; + if (ret == EINTR) { + continue; + } fuse_log(FUSE_LOG_DEBUG, "%s: preadv failed (%m) len=%zd\n", __func__, len); goto err;