Commit bb582dd
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 2a521a9 commit bb582dd
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 | | |
| |||
10929 | 10923 | | |
10930 | 10924 | | |
10931 | 10925 | | |
| 10926 | + | |
| 10927 | + | |
| 10928 | + | |
| 10929 | + | |
10932 | 10930 | | |
10933 | 10931 | | |
10934 | 10932 | | |
| |||
| 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