Commit a7a2c54
committed
nvme: retry commands on EAGAIN and EINTR
The kernel started to return EAGAIN and EINTR. It is quiet likely that
this was possible before but it happened not so often. Thus for users
of nvme-cli it is a behavior change.
The first attempt was to handle this in libnvme itself. But it turns out
we can't just blindly retry. It is necessary to check if the user has
pressed Ctrl-C to terminate the program. Adding a signal handler inside
the library is a no go. Thus add the retry logic to nvme-cli itself.
Signed-off-by: Daniel Wagner <[email protected]>1 parent c70f633 commit a7a2c54
3 files changed
Lines changed: 55 additions & 17 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
50 | 51 | | |
51 | 52 | | |
52 | 53 | | |
| |||
170 | 171 | | |
171 | 172 | | |
172 | 173 | | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
173 | 190 | | |
174 | 191 | | |
175 | 192 | | |
| |||
189 | 206 | | |
190 | 207 | | |
191 | 208 | | |
192 | | - | |
| 209 | + | |
193 | 210 | | |
194 | 211 | | |
195 | 212 | | |
| |||
1103 | 1120 | | |
1104 | 1121 | | |
1105 | 1122 | | |
1106 | | - | |
| 1123 | + | |
1107 | 1124 | | |
1108 | 1125 | | |
1109 | 1126 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
| |||
4437 | 4438 | | |
4438 | 4439 | | |
4439 | 4440 | | |
4440 | | - | |
4441 | | - | |
4442 | | - | |
4443 | | - | |
4444 | | - | |
4445 | | - | |
4446 | | - | |
4447 | 4441 | | |
4448 | 4442 | | |
4449 | | - | |
| 4443 | + | |
4450 | 4444 | | |
4451 | 4445 | | |
4452 | 4446 | | |
4453 | | - | |
4454 | | - | |
| 4447 | + | |
| 4448 | + | |
| 4449 | + | |
| 4450 | + | |
4455 | 4451 | | |
4456 | 4452 | | |
4457 | 4453 | | |
| |||
4464 | 4460 | | |
4465 | 4461 | | |
4466 | 4462 | | |
4467 | | - | |
4468 | | - | |
4469 | 4463 | | |
4470 | 4464 | | |
4471 | 4465 | | |
| |||
10935 | 10929 | | |
10936 | 10930 | | |
10937 | 10931 | | |
| 10932 | + | |
| 10933 | + | |
| 10934 | + | |
| 10935 | + | |
10938 | 10936 | | |
10939 | 10937 | | |
10940 | 10938 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
| 4 | + | |
5 | 5 | | |
| 6 | + | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
11 | 13 | | |
12 | 14 | | |
13 | 15 | | |
| 16 | + | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
| |||
92 | 95 | | |
93 | 96 | | |
94 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
95 | 106 | | |
96 | 107 | | |
97 | 108 | | |
| |||
102 | 113 | | |
103 | 114 | | |
104 | 115 | | |
105 | | - | |
| 116 | + | |
| 117 | + | |
106 | 118 | | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
107 | 124 | | |
108 | 125 | | |
109 | 126 | | |
| |||
128 | 145 | | |
129 | 146 | | |
130 | 147 | | |
131 | | - | |
| 148 | + | |
| 149 | + | |
132 | 150 | | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
133 | 156 | | |
134 | 157 | | |
135 | 158 | | |
| |||
0 commit comments