summaryrefslogtreecommitdiff
path: root/include/linux/timerqueue.h
diff options
context:
space:
mode:
authorZi Yan <ziy@nvidia.com>2026-09-20 22:28:04 -0400
committerAndrew Morton <akpm@linux-foundation.org>2026-10-08 22:55:15 -0700
commitffbdf157ec6a9b43a1b776e0f8481517dec65c9c (patch)
treee435d4dde693cca4e34c5722471be61f2340394e /include/linux/timerqueue.h
parent7e907079f9a9220448d1c29f8da69dac139b26a1 (diff)
downloadlinux-ffbdf157ec6a9b43a1b776e0f8481517dec65c9c.tar.gz
linux-ffbdf157ec6a9b43a1b776e0f8481517dec65c9c.zip
erofs: mm/pagemap: add readahead_folio_last() to avoid folio->private
erofs needs to traverse readahead folios in reverse order to achieve maximum performance by 1. reading all folios from readahead_folio(); 2. storing the prior folio pointer in folio->private; 3. traverse from the last folio to the first one. Add readahead_folio_last() to achieve the same function without using folio->private. __readahead_advance() helper shares readahead_control adjustment code among __readahead_folio(), readahead_folio_last(), and __readahead_batch() by checking new private member, _forward, of readahead_control. It prepares for a future commit that replaces PG_private checks with !folio->private checks. After switching the checks, erofs's use of folio->private without bumping folio refcount can cause unexpected outcomes, e.g., in filemap_release_folio(), try_to_free_buffers() becomes reachable. No functional change intended. Link: https://lore.kernel.org/20260920-remove-pg_private-v5-8-bb68b6a21869@nvidia.com Signed-off-by: Zi Yan <ziy@nvidia.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: David Hildenbrand (Arm) <david@kernel.org> Reviewed-by: Lance Yang <lance.yang@linux.dev> Assisted-by: LLM Cc: Yue Hu <zbestahu@gmail.com> Cc: Jeffle Xu <jefflexu@linux.alibaba.com> Cc: Sandeep Dhavale <dhavale@google.com> Cc: Hongbo Li <hongbohbli@tencent.com> Cc: Chunhai Guo <guochunhai@vivo.com> Cc: Gao Xiang <xiang@kernel.org> Cc: Chao Yu <chao@kernel.org> Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org> Cc: Jan Kara <jack@suse.cz>
Diffstat (limited to 'include/linux/timerqueue.h')
0 files changed, 0 insertions, 0 deletions