[PATCH] exfat: fix potential wrong error return from get_block

Sungjong Seo posted 1 patch 8 months, 3 weeks ago
fs/exfat/inode.c | 2 ++
1 file changed, 2 insertions(+)
[PATCH] exfat: fix potential wrong error return from get_block
Posted by Sungjong Seo 8 months, 3 weeks ago
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>
---
 fs/exfat/inode.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/exfat/inode.c b/fs/exfat/inode.c
index f3fdba9f4d21..a23677de4544 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
-- 
2.25.1
Re: [PATCH] exfat: fix potential wrong error return from get_block
Posted by Namjae Jeon 8 months, 3 weeks ago
On Wed, Mar 26, 2025 at 11:49 PM Sungjong Seo <sj1557.seo@samsung.com> wrote:
>
> 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>
Applied it to dev with Yuezhang's reviewed-by tag.
Thanks!