]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
exfat: fix potential wrong error return from get_block
authorSungjong Seo <sj1557.seo@samsung.com>
Wed, 26 Mar 2025 14:48:48 +0000 (23:48 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Apr 2025 12:39:39 +0000 (14:39 +0200)
commit 59c30e31425833385e6644ad33151420e37eabe1 upstream.

If there is no error, get_block() should return 0. However, when bh_read()
returns 1, get_block() also returns 1 in the same manner.

Let's set err to 0, if there is no error from bh_read()

Fixes: 11a347fb6cef ("exfat: change to get file size from DataLength")
Cc: stable@vger.kernel.org
Signed-off-by: Sungjong Seo <sj1557.seo@samsung.com>
Reviewed-by: Yuezhang Mo <Yuezhang.Mo@sony.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/exfat/inode.c

index 6e13c597e984fd38608abf5531057be786a0382d..3801516ac50716b4df0c60a276b30ab62596c0c2 100644 (file)
@@ -391,6 +391,8 @@ static int exfat_get_block(struct inode *inode, sector_t iblock,
                        /* Zero unwritten part of a block */
                        memset(bh_result->b_data + size, 0,
                               bh_result->b_size - size);
+
+                       err = 0;
                } else {
                        /*
                         * The range has not been written, clear the mapped flag