diff --git a/sdcard/sdcard.c b/sdcard/sdcard.c index 21986fccf6f30227403d15423044c69480f0d072..4b8e0c05e7afc3c1473dae66bdfced8792405cf5 100644 --- a/sdcard/sdcard.c +++ b/sdcard/sdcard.c @@ -1513,16 +1513,14 @@ static void handle_fuse_requests(struct fuse_handler* handler) { struct fuse* fuse = handler->fuse; for (;;) { - ssize_t len = read(fuse->fd, - handler->request_buffer, sizeof(handler->request_buffer)); + ssize_t len = TEMP_FAILURE_RETRY(read(fuse->fd, + handler->request_buffer, sizeof(handler->request_buffer))); if (len < 0) { - if (errno != EINTR) { - ERROR("[%d] handle_fuse_requests: errno=%d\n", handler->token, errno); - } if (errno == ENODEV) { ERROR("[%d] someone stole our marbles!\n", handler->token); exit(2); } + ERROR("[%d] handle_fuse_requests: errno=%d\n", handler->token, errno); continue; }