From: Matthew Wilcox (Oracle) Date: Wed, 5 Mar 2025 20:47:25 +0000 (+0000) Subject: orangefs: Do not truncate file size X-Git-Tag: v5.10.238~109 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=341e3a5984cf5761f3dab16029d7e9fb1641d5ff;p=thirdparty%2Fkernel%2Fstable.git orangefs: Do not truncate file size [ Upstream commit 062e8093592fb866b8e016641a8b27feb6ac509d ] 'len' is used to store the result of i_size_read(), so making 'len' a size_t results in truncation to 4GiB on 32-bit systems. Signed-off-by: "Matthew Wilcox (Oracle)" Link: https://lore.kernel.org/r/20250305204734.1475264-2-willy@infradead.org Tested-by: Mike Marshall Signed-off-by: Christian Brauner Signed-off-by: Sasha Levin --- diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c index 48f0547d4850e..cd70ded309e47 100644 --- a/fs/orangefs/inode.c +++ b/fs/orangefs/inode.c @@ -22,9 +22,9 @@ static int orangefs_writepage_locked(struct page *page, struct orangefs_write_range *wr = NULL; struct iov_iter iter; struct bio_vec bv; - size_t len, wlen; + size_t wlen; ssize_t ret; - loff_t off; + loff_t len, off; set_page_writeback(page); @@ -93,8 +93,7 @@ static int orangefs_writepages_work(struct orangefs_writepages *ow, struct orangefs_write_range *wrp, wr; struct iov_iter iter; ssize_t ret; - size_t len; - loff_t off; + loff_t len, off; int i; len = i_size_read(inode);