From: Sungjong Seo Date: Wed, 26 Mar 2025 14:48:48 +0000 (+0900) Subject: exfat: fix potential wrong error return from get_block X-Git-Tag: v6.12.23~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=37c9875c178f1503af1864aadc29c42e7cb4374a;p=thirdparty%2Fkernel%2Fstable.git exfat: fix potential wrong error return from get_block 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 Reviewed-by: Yuezhang Mo Signed-off-by: Namjae Jeon Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/exfat/inode.c b/fs/exfat/inode.c index 6e13c597e984f..3801516ac5071 100644 --- a/fs/exfat/inode.c +++ b/fs/exfat/inode.c @@ -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