diff --git a/components/drivers/block/blk_dfs.c b/components/drivers/block/blk_dfs.c index 96800e15643..adc6a81e466 100644 --- a/components/drivers/block/blk_dfs.c +++ b/components/drivers/block/blk_dfs.c @@ -175,14 +175,18 @@ static ssize_t blk_fops_write(struct dfs_file *file, const void *buf, size_t cou if ((count - wsize) / bytes_per_sector != 0) { res = rt_device_write(dev, blk_pos, buf + wsize, (count - wsize) / bytes_per_sector); - wsize += res * bytes_per_sector; - blk_pos += res; if (res != (count - wsize) / bytes_per_sector) { + wsize += res * bytes_per_sector; *pos += wsize; return wsize; } + else + { + wsize += res * bytes_per_sector; + blk_pos += res; + } } /*