--- mm/filemap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/filemap.c b/mm/filemap.c index 7dfd7024d361..a2150a6c15e4 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -2706,7 +2706,8 @@ loff_t mapping_seek_hole_data(struct address_space *mapping, loff_t start, seek_data); if (start < pos) goto unlock; - put_page(page); + if (!xa_is_value(page)) + put_page(page); } rcu_read_unlock(); -- 2.29.2