diff --git a/fs/fat/fat.c b/fs/fat/fat.c
index 9ad18f96ff072c21f623a4f66b838143c86b5863..465a6875edf509a17054adeefa6af73985543bdc 100644
--- a/fs/fat/fat.c
+++ b/fs/fat/fat.c
@@ -54,7 +54,7 @@ static int disk_read(__u32 block, __u32 nr_blocks, void *buf)
 
 	ret = blk_dread(cur_dev, cur_part_info.start + block, nr_blocks, buf);
 
-	if (nr_blocks && ret == 0)
+	if (ret != nr_blocks)
 		return -1;
 
 	return ret;