aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/tree-mod-log.h
diff options
context:
space:
mode:
authorDavid Howells <[email protected]>2024-12-16 20:40:55 +0000
committerChristian Brauner <[email protected]>2024-12-20 21:34:02 +0000
commit06fa229ceb36898e68022b5654c017d2c6582d7d (patch)
treedb540d16164012b660f6096819f5288356749f39 /fs/btrfs/tree-mod-log.h
parentnetfs: Add a tracepoint to log the lifespan of folio_queue structs (diff)
downloadkernel-06fa229ceb36898e68022b5654c017d2c6582d7d.tar.gz
kernel-06fa229ceb36898e68022b5654c017d2c6582d7d.zip
netfs: Abstract out a rolling folio buffer implementation
A rolling buffer is a series of folios held in a list of folio_queues. New folios and folio_queue structs may be inserted at the head simultaneously with spent ones being removed from the tail without the need for locking. The rolling buffer includes an iov_iter and it has to be careful managing this as the list of folio_queues is extended such that an oops doesn't incurred because the iterator was pointing to the end of a folio_queue segment that got appended to and then removed. We need to use the mechanism twice, once for read and once for write, and, in future patches, we will use a second rolling buffer to handle bounce buffering for content encryption. Signed-off-by: David Howells <[email protected]> Link: https://lore.kernel.org/r/[email protected] cc: Jeff Layton <[email protected]> cc: [email protected] cc: [email protected] Signed-off-by: Christian Brauner <[email protected]>
Diffstat (limited to 'fs/btrfs/tree-mod-log.h')
0 files changed, 0 insertions, 0 deletions