diff options
author | Filipe Manana <[email protected]> | 2024-12-09 16:31:41 +0000 |
---|---|---|
committer | David Sterba <[email protected]> | 2024-12-23 22:04:38 +0100 |
commit | 9a45022a0efadd99bcc58f7f1cc2b6fb3b808c40 (patch) | |
tree | dc7bfc94b966ba8a75e1571b7e62a644dec1629b /io_uring/uring_cmd.c | |
parent | 03018e5d8508254534511d40fb57bc150e6a87f2 (diff) |
btrfs: allow swap activation to be interruptible
During swap activation we iterate over the extents of a file, then do
several checks for each extent, some of which may take some significant
time such as checking if an extent is shared. Since a file can have
many thousands of extents, this can be a very slow operation and it's
currently not interruptible. I had a bug during development of a previous
patch that resulted in an infinite loop when iterating the extents, so
a core was busy looping and I couldn't cancel the operation, which is very
annoying and requires a reboot. So make the loop interruptible by checking
for fatal signals at the end of each iteration and stopping immediately if
there is one.
CC: [email protected] # 5.4+
Reviewed-by: Qu Wenruo <[email protected]>
Signed-off-by: Filipe Manana <[email protected]>
Signed-off-by: David Sterba <[email protected]>
Diffstat (limited to 'io_uring/uring_cmd.c')
0 files changed, 0 insertions, 0 deletions