diff options
| author | Qu Wenruo <wqu@suse.com> | 2025-10-23 18:32:34 +1030 |
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2025-11-24 22:42:19 +0100 |
| commit | 4bbdce84175db7ff0dfaa82e960c7488c6cb0bcf (patch) | |
| tree | 5657fb2db4710aca786e56f54b9090b787c4f5a2 /fs/btrfs/compression.h | |
| parent | 4591c3ef751d861d7dd95ff4d2aadb1b5e95854e (diff) | |
btrfs: remove btrfs_fs_info::compressed_write_workers
The reason why end_bbio_compressed_write() queues a work into
compressed_write_workers wq is for end_compressed_writeback() call, as
it will grab all the involved folios and clear the writeback flags,
which may sleep.
However now we always run btrfs_bio::end_io() in task context, there is
no need to queue the work anymore.
Just remove btrfs_fs_info::compressed_write_workers and
compressed_bio::write_end_work.
There is a comment about the works queued into
compressed_write_workers, now change to flush endio wq instead, which is
responsible to handle all data endio functions.
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/compression.h')
| -rw-r--r-- | fs/btrfs/compression.h | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/fs/btrfs/compression.h b/fs/btrfs/compression.h index 062ebd9c2d32..40aa49fed18c 100644 --- a/fs/btrfs/compression.h +++ b/fs/btrfs/compression.h @@ -63,11 +63,8 @@ struct compressed_bio { /* Whether this is a write for writeback. */ bool writeback; - union { - /* For reads, this is the bio we are copying the data into */ - struct btrfs_bio *orig_bbio; - struct work_struct write_end_work; - }; + /* For reads, this is the bio we are copying the data into. */ + struct btrfs_bio *orig_bbio; /* Must be last. */ struct btrfs_bio bbio; |