debian-forge/osbuild
Lars Karlitski 7bb06d2334 loop: handle set_status returning EBUSY
This happens rarely when the same loop device is used in rapid
succession. The kernel flushes the page cache asynchronously, which
means that it might not be cleared yet when a new file is bound.
`set_status` checks if the cache is clear (`set_fd` doesn't).

Handle this by trying a different device when `set_status` returns
`EBUSY`.

Fixes #177
2020-01-19 22:19:25 +01:00
..
__init__.py pipeline: return logs in --json mode 2019-12-14 13:49:24 +01:00
__main__.py osbuild: introduce secrets 2020-01-09 23:55:43 +01:00
api.py osbuild: create API sockets in the thread they're used in 2019-12-25 17:48:26 +01:00
buildroot.py buildroot: allow creating device nodes on s390x 2020-01-13 20:05:10 +01:00
loop.py loop: explicitly close fds to loop devices 2020-01-19 22:19:25 +01:00
objectstore.py objectstore: refer to objects, not trees 2019-09-25 23:50:50 +02:00
pipeline.py osbuild: introduce secrets 2020-01-09 23:55:43 +01:00
remoteloop.py loop: handle set_status returning EBUSY 2020-01-19 22:19:25 +01:00
sources.py sources: bump maximum message size to 64k 2020-01-09 23:55:43 +01:00
tmpfs.py osbuild: split package into separate files 2019-08-21 09:56:50 +04:00
treesum.py treesum: don't use dir_fd parameter in os.scandir() 2019-11-29 00:45:14 +01:00