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>
stable-6.1
Vivek Goyal 2021-05-18 17:35:32 -04:00 committed by Dr. David Alan Gilbert
parent c53cd04e70
commit 04c9f7e04a
1 changed files with 3 additions and 0 deletions

View File

@ -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;