Commit 11d763f
Andreas Gruenbacher
gfs2: Retries missing in gfs2_{rename,exchange}
Fix a bug in gfs2's asynchronous glock handling for rename and exchange
operations. The original async implementation from commit ad26967
("gfs2: Use async glocks for rename") mentioned that retries were needed
but never implemented them, causing operations to fail with -ESTALE
instead of retrying on timeout.
Also makes the waiting interruptible.
In addition, the timeouts used were too high for situations in which
timing out is a rare but expected scenario. Switch to shorter timeouts
with randomization and exponentional backoff.
Fixes: ad26967 ("gfs2: Use async glocks for rename")
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>1 parent f8f0424 commit 11d763f
3 files changed
Lines changed: 43 additions & 14 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1284 | 1284 | | |
1285 | 1285 | | |
1286 | 1286 | | |
| 1287 | + | |
1287 | 1288 | | |
1288 | 1289 | | |
1289 | 1290 | | |
1290 | 1291 | | |
1291 | 1292 | | |
1292 | 1293 | | |
1293 | | - | |
| 1294 | + | |
| 1295 | + | |
1294 | 1296 | | |
1295 | 1297 | | |
1296 | | - | |
1297 | 1298 | | |
| 1299 | + | |
| 1300 | + | |
1298 | 1301 | | |
1299 | 1302 | | |
1300 | | - | |
1301 | | - | |
1302 | | - | |
1303 | | - | |
1304 | | - | |
1305 | | - | |
1306 | 1303 | | |
1307 | | - | |
| 1304 | + | |
| 1305 | + | |
| 1306 | + | |
| 1307 | + | |
| 1308 | + | |
| 1309 | + | |
| 1310 | + | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
1308 | 1320 | | |
1309 | 1321 | | |
1310 | 1322 | | |
1311 | 1323 | | |
| 1324 | + | |
| 1325 | + | |
1312 | 1326 | | |
1313 | 1327 | | |
1314 | 1328 | | |
| |||
1332 | 1346 | | |
1333 | 1347 | | |
1334 | 1348 | | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
1335 | 1353 | | |
1336 | 1354 | | |
1337 | 1355 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
204 | 204 | | |
205 | 205 | | |
206 | 206 | | |
207 | | - | |
| 207 | + | |
| 208 | + | |
208 | 209 | | |
209 | 210 | | |
210 | 211 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1495 | 1495 | | |
1496 | 1496 | | |
1497 | 1497 | | |
1498 | | - | |
| 1498 | + | |
1499 | 1499 | | |
1500 | 1500 | | |
1501 | 1501 | | |
| |||
1545 | 1545 | | |
1546 | 1546 | | |
1547 | 1547 | | |
| 1548 | + | |
1548 | 1549 | | |
1549 | 1550 | | |
1550 | 1551 | | |
1551 | 1552 | | |
1552 | 1553 | | |
1553 | | - | |
| 1554 | + | |
| 1555 | + | |
| 1556 | + | |
| 1557 | + | |
| 1558 | + | |
1554 | 1559 | | |
1555 | 1560 | | |
1556 | 1561 | | |
| |||
1739 | 1744 | | |
1740 | 1745 | | |
1741 | 1746 | | |
1742 | | - | |
| 1747 | + | |
1743 | 1748 | | |
1744 | 1749 | | |
1745 | 1750 | | |
| |||
1783 | 1788 | | |
1784 | 1789 | | |
1785 | 1790 | | |
| 1791 | + | |
1786 | 1792 | | |
1787 | 1793 | | |
1788 | 1794 | | |
1789 | 1795 | | |
1790 | 1796 | | |
1791 | 1797 | | |
1792 | | - | |
| 1798 | + | |
| 1799 | + | |
| 1800 | + | |
| 1801 | + | |
| 1802 | + | |
1793 | 1803 | | |
1794 | 1804 | | |
1795 | 1805 | | |
| |||
0 commit comments