aboutsummaryrefslogtreecommitdiff
path: root/tools/virtiofsd
diff options
context:
space:
mode:
authorVivek Goyal <vgoyal@redhat.com>2021-05-18 17:35:32 -0400
committerDr. David Alan Gilbert <dgilbert@redhat.com>2021-05-26 18:39:32 +0100
commit04c9f7e04ae102edf384613df98268d59ff8fb9b (patch)
treea4538d271310e19c912403b1188a85ef35a607d4 /tools/virtiofsd
parentc53cd04e70641fdf9410aac40c617d074047b3e1 (diff)
downloadqemu-04c9f7e04ae102edf384613df98268d59ff8fb9b.zip
qemu-04c9f7e04ae102edf384613df98268d59ff8fb9b.tar.gz
qemu-04c9f7e04ae102edf384613df98268d59ff8fb9b.tar.bz2
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 <dgilbert@redhat.com> Reviewed-by: Connor Kuehl <ckuehl@redhat.com> Signed-off-by: Vivek Goyal <vgoyal@redhat.com> Message-Id: <20210518213538.693422-2-vgoyal@redhat.com> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Diffstat (limited to 'tools/virtiofsd')
-rw-r--r--tools/virtiofsd/fuse_virtio.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/virtiofsd/fuse_virtio.c b/tools/virtiofsd/fuse_virtio.c
index 9efdbd8..755d7fb 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;