exfat_find_empty_entry() stores the return value of exfat_alloc_cluster() in an unsigned int. When exfat_alloc_cluster() returns a negative errno, it is converted to a large positive value, which corrupts error propagation to the caller. Change the type of ret to int so that negative errno values are preserved. Fixes: 5f2aa075070c ("exfat: add inode operations") Signed-off-by: Haotian Zhang --- fs/exfat/namei.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/exfat/namei.c b/fs/exfat/namei.c index f5f1c4e8a29f..f2a87ecd79f9 100644 --- a/fs/exfat/namei.c +++ b/fs/exfat/namei.c @@ -304,8 +304,8 @@ static int exfat_find_empty_entry(struct inode *inode, struct exfat_chain *p_dir, int num_entries, struct exfat_entry_set_cache *es) { - int dentry; - unsigned int ret, last_clu; + int dentry, ret; + unsigned int last_clu; loff_t size = 0; struct exfat_chain clu; struct super_block *sb = inode->i_sb; -- 2.50.1.windows.1