summaryrefslogtreecommitdiff
path: root/tools/lib/python
diff options
context:
space:
mode:
authorFilipe Manana <fdmanana@suse.com>2026-10-16 17:14:49 +0100
committerDavid Sterba <dsterba@suse.com>2026-10-30 23:15:01 +0100
commitbda65e5115fe66ee0d8cf4ade11807f9fca4f0e1 (patch)
treebfed4073633f6f4ff627ad295e11820d3e8eecbb /tools/lib/python
parent387d5be169e6644a41dd5865e6a01c9489e996e2 (diff)
btrfs: scrub: fix lost wakeup and hang when cancelling a scrub that is finishing
When scrub finishes, it does a wakeup on the fs_info->scrub_pause_wait wait queue and then sets dev->scrub_sctx to NULL. On the other hand the scrub cancel code (btrfs_scrub_cancel_dev()) waits on that wait queue for dev->scrub_sctx to be NULL. So this means if btrfs_scrub_cancel_dev() is called right when scrub is finishing and sees the wakeup before the NULL is assigned to dev->scrub_sctx by btrfs_scrub_dev(), it hangs. Fix this by doing the wakeup in btrfs_scrub_dev() after setting dev->scrub_sctx to NULL. Fixes: a2de733c78fa ("btrfs: scrub") Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/lib/python')
0 files changed, 0 insertions, 0 deletions