summaryrefslogtreecommitdiff
path: root/fs/btrfs/raid-stripe-tree.c
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2025-10-19 11:15:28 +1030
committerDavid Sterba <dsterba@suse.com>2025-11-24 22:34:32 +0100
commit937f99c736135e530895eff028503cb057eb75f6 (patch)
tree24e2d0722cdfee4e75051c7a60f853385e2f8567 /fs/btrfs/raid-stripe-tree.c
parentc7b478504b2e5a8e428eac4c16925d52c8deb6bd (diff)
btrfs: scrub: cancel the run if there is a pending signal
Unlike relocation, scrub never checks pending signals, and even for relocation is only explicitly checking for fatal signal (SIGKILL), not for regular ones. Thankfully relocation can still be interrupted by regular signals by the usage of wait_on_bit(), which is called with TASK_INTERRUPTIBLE. Do the same for scrub/dev-replace, so that regular signals can also cancel the scrub/replace run, and more importantly handle v2 cgroup freezing which is based on signal handling code inside the kernel, and freezing() function will not return true for v2 cgroup freezing. This will address the problem that systemd slice freezing will timeout on long running scrub/dev-replace. Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/raid-stripe-tree.c')
0 files changed, 0 insertions, 0 deletions