]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
orangefs: Do not truncate file size
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 5 Mar 2025 20:47:25 +0000 (20:47 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jun 2025 12:37:01 +0000 (14:37 +0200)
[ 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)" <willy@infradead.org>
Link: https://lore.kernel.org/r/20250305204734.1475264-2-willy@infradead.org
Tested-by: Mike Marshall <hubcap@omnibond.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/orangefs/inode.c

index 48f0547d4850e985411e477dcc61b08721b3f516..cd70ded309e4788310dc5852458265d225600fa6 100644 (file)
@@ -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);