From 244b2c5ca8b14627e4a17755e5922221e121c771 Mon Sep 17 00:00:00 2001
From: hc <hc@nodka.com>
Date: Wed, 09 Oct 2024 06:15:07 +0000
Subject: [PATCH] change system file
---
kernel/mm/filemap.c | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/kernel/mm/filemap.c b/kernel/mm/filemap.c
index aeb45f3..580c1b9 100644
--- a/kernel/mm/filemap.c
+++ b/kernel/mm/filemap.c
@@ -2211,6 +2211,9 @@
if (unlikely(*ppos >= inode->i_sb->s_maxbytes))
return 0;
+ if (unlikely(!iov_iter_count(iter)))
+ return 0;
+
iov_iter_truncate(iter, inode->i_sb->s_maxbytes);
index = *ppos >> PAGE_SHIFT;
@@ -2661,6 +2664,8 @@
ra->start = max_t(long, 0, vmf->pgoff - ra->ra_pages / 2);
ra->size = ra->ra_pages;
ra->async_size = ra->ra_pages / 4;
+ trace_android_vh_tune_mmap_readaround(ra->ra_pages, vmf->pgoff,
+ &ra->start, &ra->size, &ra->async_size);
ractl._index = ra->start;
do_page_cache_ra(&ractl, ra->size, ra->async_size);
return fpin;
@@ -2736,11 +2741,14 @@
if (vmf->flags & FAULT_FLAG_SPECULATIVE) {
page = find_get_page(mapping, offset);
- if (unlikely(!page) || unlikely(PageReadahead(page)))
+ if (unlikely(!page))
return VM_FAULT_RETRY;
+ if (unlikely(PageReadahead(page)))
+ goto page_put;
+
if (!trylock_page(page))
- return VM_FAULT_RETRY;
+ goto page_put;
if (unlikely(compound_head(page)->mapping != mapping))
goto page_unlock;
@@ -2772,6 +2780,8 @@
return VM_FAULT_LOCKED;
page_unlock:
unlock_page(page);
+page_put:
+ put_page(page);
return VM_FAULT_RETRY;
}
--
Gitblit v1.6.2