Repository navigation
Commit a51ee32
committed
fusedev: stop an async worker on a read error it can't retry
The async server logged a read error it didn't know and read again.
Now that a tokio task waits for the device to become readable, a device
that stays readable but fails every read made the task spin at full CPU
and log on every pass. EINVAL for a buffer smaller than the kernel's
requests does that.
Retry ENOENT, which the kernel returns when a request was interrupted
before the read, and stop the task on any other error. The synchronous
server does the same.
Signed-off-by: Ilan Joselevich <personal@ilanjoselevich.com>1 parent 92dc2e7 commit a51ee32
2 files changed
Lines changed: 11 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
| 62 | + | |
| 63 | + | |
62 | 64 | | |
63 | 65 | | |
64 | 66 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1334 | 1334 | | |
1335 | 1335 | | |
1336 | 1336 | | |
1337 | | - | |
1338 | | - | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
1339 | 1341 | | |
1340 | 1342 | | |
1341 | 1343 | | |
| |||
1353 | 1355 | | |
1354 | 1356 | | |
1355 | 1357 | | |
1356 | | - | |
| 1358 | + | |
1357 | 1359 | | |
1358 | | - | |
1359 | | - | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
1360 | 1364 | | |
1361 | 1365 | | |
1362 | 1366 | | |
1363 | | - | |
1364 | | - | |
1365 | | - | |
1366 | | - | |
1367 | 1367 | | |
1368 | 1368 | | |
1369 | 1369 | | |
| |||
0 commit comments