|
Luís Henriques |
d2355e |
From: Xie Yongji <xieyongji@bytedance.com>
|
|
Luís Henriques |
d2355e |
Date: Mon, 22 Nov 2021 17:05:31 +0800
|
|
Luís Henriques |
d2355e |
Subject: fuse: Pass correct lend value to filemap_write_and_wait_range()
|
|
Luís Henriques |
d2355e |
Git-commit: e388164ea385f04666c4633f5dc4f951fca71890
|
|
Luís Henriques |
d2355e |
Patch-mainline: v5.16 or v5.16-rc9 (next release)
|
|
Luís Henriques |
d2355e |
References: bsc#1194953
|
|
Luís Henriques |
d2355e |
|
|
Luís Henriques |
d2355e |
The acceptable maximum value of lend parameter in
|
|
Luís Henriques |
d2355e |
filemap_write_and_wait_range() is LLONG_MAX rather than -1. And there is
|
|
Luís Henriques |
d2355e |
also some logic depending on LLONG_MAX check in write_cache_pages(). So
|
|
Luís Henriques |
d2355e |
let's pass LLONG_MAX to filemap_write_and_wait_range() in
|
|
Luís Henriques |
d2355e |
fuse_writeback_range() instead.
|
|
Luís Henriques |
d2355e |
|
|
Luís Henriques |
d2355e |
Fixes: 59bda8ecee2f ("fuse: flush extending writes")
|
|
Luís Henriques |
d2355e |
Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
|
|
Luís Henriques |
d2355e |
Cc: <stable@vger.kernel.org> # v5.15
|
|
Luís Henriques |
d2355e |
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
|
|
Luís Henriques |
d2355e |
Acked-by: Luis Henriques <lhenriques@suse.com>
|
|
Luís Henriques |
d2355e |
|
|
Luís Henriques |
d2355e |
---
|
|
Luís Henriques |
d2355e |
fs/fuse/file.c | 2 +-
|
|
Luís Henriques |
d2355e |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Luís Henriques |
d2355e |
|
|
Luís Henriques |
d2355e |
diff --git a/fs/fuse/file.c b/fs/fuse/file.c
|
|
Luís Henriques |
d2355e |
index 9d6c5f6361f7..df81768c81a7 100644
|
|
Luís Henriques |
d2355e |
--- a/fs/fuse/file.c
|
|
Luís Henriques |
d2355e |
+++ b/fs/fuse/file.c
|
|
Luís Henriques |
d2355e |
@@ -2910,7 +2910,7 @@ fuse_direct_IO(struct kiocb *iocb, struct iov_iter *iter)
|
|
Luís Henriques |
d2355e |
|
|
Luís Henriques |
d2355e |
static int fuse_writeback_range(struct inode *inode, loff_t start, loff_t end)
|
|
Luís Henriques |
d2355e |
{
|
|
Luís Henriques |
d2355e |
- int err = filemap_write_and_wait_range(inode->i_mapping, start, -1);
|
|
Luís Henriques |
d2355e |
+ int err = filemap_write_and_wait_range(inode->i_mapping, start, LLONG_MAX);
|
|
Luís Henriques |
d2355e |
|
|
Luís Henriques |
d2355e |
if (!err)
|
|
Luís Henriques |
d2355e |
fuse_sync_writes(inode);
|
|
Luís Henriques |
d2355e |
|