Currently we're passing -1 to shmem_truncate_range which can then call
truncate_inode_pages_range() which is actually really confusing since the
argument is signed so we do not get "huge" number as one would expect,
but rather just -1. To make things clearer and easier for
truncate_inode_pages_range() just pass LLONG_MAX since it is actually what
was intended anyway.
It also makes thing easier for allowing truncate_inode_pages_range() to
handle non page aligned regions. Moreover letting the lend argument to
be negative might actually hide some bugs.
Signed-off-by: Lukas Czerner <redacted>
Cc: Hugh Dickins <hughd@google.com>
---
mm/shmem.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/mm/shmem.c b/mm/shmem.c
index a15a466..470ee75 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2960,7 +2960,8 @@ void shmem_unlock_mapping(struct address_space *mapping)
void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
{
- truncate_inode_pages_range(inode->i_mapping, lstart, lend);
+ truncate_inode_pages_range(inode->i_mapping, lstart,
+ lend == -1 ? LLONG_MAX : last);
}
EXPORT_SYMBOL_GPL(shmem_truncate_range);
--
1.7.7.6