]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm/readahead: add readahead_control->dropbehind member
authorJens Axboe <axboe@kernel.dk>
Fri, 20 Dec 2024 15:47:43 +0000 (08:47 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 26 Jan 2025 04:22:43 +0000 (20:22 -0800)
If ractl->dropbehind is set to true, then folios created are marked as
dropbehind as well.

Link: https://lkml.kernel.org/r/20241220154831.1086649-6-axboe@kernel.dk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Brian Foster <bfoster@redhat.com>
Cc: Chris Mason <clm@meta.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/pagemap.h
mm/readahead.c

index fc2e1319c7bb5e9a7912aed7112512a1fdbe551b..d53c49abead6086a5f1fcb6d9406f9232d78a2e6 100644 (file)
@@ -1358,6 +1358,7 @@ struct readahead_control {
        pgoff_t _index;
        unsigned int _nr_pages;
        unsigned int _batch_count;
+       bool dropbehind;
        bool _workingset;
        unsigned long _pflags;
 };
index 722b541c7137f3f0ccf0a35f8be915dc7991e8fa..6a4e96b69702b3eca0d984b7e909f2cc3ed33fa9 100644 (file)
@@ -181,7 +181,13 @@ static void read_pages(struct readahead_control *rac)
 static struct folio *ractl_alloc_folio(struct readahead_control *ractl,
                                       gfp_t gfp_mask, unsigned int order)
 {
-       return filemap_alloc_folio(gfp_mask, order);
+       struct folio *folio;
+
+       folio = filemap_alloc_folio(gfp_mask, order);
+       if (folio && ractl->dropbehind)
+               __folio_set_dropbehind(folio);
+
+       return folio;
 }
 
 /**