[PATCH v3 11/11] exfat: make exfat_truncate() return error code

From: Namjae Jeon

Date: Wed May 13 2026 - 07:30:18 EST


Convert exfat_truncate() to return int, and make it return the error
code on failure. Update exfat_setattr() to handle the returned error
appropriately.

Signed-off-by: Namjae Jeon <linkinjeon@xxxxxxxxxx>
---
fs/exfat/file.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/fs/exfat/file.c b/fs/exfat/file.c
index 6ae2f72621ab..2b650a73c5c8 100644
--- a/fs/exfat/file.c
+++ b/fs/exfat/file.c
@@ -292,7 +292,7 @@ int __exfat_truncate(struct inode *inode)
return 0;
}

-static void exfat_truncate(struct inode *inode)
+static int exfat_truncate(struct inode *inode)
{
struct super_block *sb = inode->i_sb;
struct exfat_sb_info *sbi = EXFAT_SB(sb);
@@ -315,6 +315,8 @@ static void exfat_truncate(struct inode *inode)
inode->i_blocks = round_up(i_size_read(inode), sbi->cluster_size) >> 9;
write_size:
mutex_unlock(&sbi->s_lock);
+
+ return err;
}

int exfat_getattr(struct mnt_idmap *idmap, const struct path *path,
@@ -400,7 +402,7 @@ int exfat_setattr(struct mnt_idmap *idmap, struct dentry *dentry,
* __exfat_write_inode() is called from exfat_truncate(), inode
* is already written by it, so mark_inode_dirty() is unneeded.
*/
- exfat_truncate(inode);
+ error = exfat_truncate(inode);
up_write(&EXFAT_I(inode)->truncate_lock);
} else
mark_inode_dirty(inode);
--
2.25.1