]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
Revert "fanotify: disable readahead if we have pre-content watches"
authorAmir Goldstein <amir73il@gmail.com>
Wed, 12 Mar 2025 07:38:52 +0000 (08:38 +0100)
committerJan Kara <jack@suse.cz>
Thu, 13 Mar 2025 15:31:12 +0000 (16:31 +0100)
This reverts commit fac84846a28c0950d4433118b3dffd44306df62d.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Link: https://patch.msgid.link/20250312073852.2123409-7-amir73il@gmail.com
mm/filemap.c
mm/readahead.c

index ff5fcdd961364a29eb52538fd11916e226cfb452..6d616bb9001eb0b4ade963469ede37a9d8183e61 100644 (file)
@@ -3197,14 +3197,6 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf)
        unsigned long vm_flags = vmf->vma->vm_flags;
        unsigned int mmap_miss;
 
-       /*
-        * If we have pre-content watches we need to disable readahead to make
-        * sure that we don't populate our mapping with 0 filled pages that we
-        * never emitted an event for.
-        */
-       if (unlikely(FMODE_FSNOTIFY_HSM(file->f_mode)))
-               return fpin;
-
 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
        /* Use the readahead code, even if readahead is disabled */
        if ((vm_flags & VM_HUGEPAGE) && HPAGE_PMD_ORDER <= MAX_PAGECACHE_ORDER) {
@@ -3273,10 +3265,6 @@ static struct file *do_async_mmap_readahead(struct vm_fault *vmf,
        struct file *fpin = NULL;
        unsigned int mmap_miss;
 
-       /* See comment in do_sync_mmap_readahead. */
-       if (unlikely(FMODE_FSNOTIFY_HSM(file->f_mode)))
-               return fpin;
-
        /* If we don't want any read-ahead, don't bother */
        if (vmf->vma->vm_flags & VM_RAND_READ || !ra->ra_pages)
                return fpin;
index 220155a5c96463873ee0304f79f1eaee4afbf2c4..6a4e96b69702b3eca0d984b7e909f2cc3ed33fa9 100644 (file)
 #include <linux/blk-cgroup.h>
 #include <linux/fadvise.h>
 #include <linux/sched/mm.h>
-#include <linux/fsnotify.h>
 
 #include "internal.h"
 
@@ -558,15 +557,6 @@ void page_cache_sync_ra(struct readahead_control *ractl,
        unsigned long max_pages, contig_count;
        pgoff_t prev_index, miss;
 
-       /*
-        * If we have pre-content watches we need to disable readahead to make
-        * sure that we don't find 0 filled pages in cache that we never emitted
-        * events for. Filesystems supporting HSM must make sure to not call
-        * this function with ractl->file unset for files handled by HSM.
-        */
-       if (ractl->file && unlikely(FMODE_FSNOTIFY_HSM(ractl->file->f_mode)))
-               return;
-
        /*
         * Even if readahead is disabled, issue this request as readahead
         * as we'll need it to satisfy the requested range. The forced
@@ -645,10 +635,6 @@ void page_cache_async_ra(struct readahead_control *ractl,
        if (!ra->ra_pages)
                return;
 
-       /* See the comment in page_cache_sync_ra. */
-       if (ractl->file && unlikely(FMODE_FSNOTIFY_HSM(ractl->file->f_mode)))
-               return;
-
        /*
         * Same bit is used for PG_readahead and PG_reclaim.
         */