Commit 627182ea authored by Donggeun Kim's avatar Donggeun Kim Committed by Wolfgang Denk
Browse files

FAT: update the second FAT when writing a file



After susccessful write to the FAT partition,
fsck program may print warning message due to different FAT,
provided that the filesystem supports two FATs.

This patch makes the second FAT to be same with the first one
when writing a file.
Signed-off-by: default avatarDonggeun Kim <dg77.kim@samsung.com>
Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
parent 5dd95cf9
......@@ -112,6 +112,7 @@ static void set_name(dir_entry *dirent, const char *filename)
debug("ext : %s\n", dirent->ext);
}
static __u8 num_of_fats;
/*
* Write fat buffer into block device
*/
......@@ -134,6 +135,15 @@ static int flush_fat_buffer(fsdata *mydata)
return -1;
}
if (num_of_fats == 2) {
/* Update corresponding second FAT blocks */
startblock += mydata->fatlength;
if (disk_write(startblock, getsize, bufptr) < 0) {
debug("error: writing second FAT blocks\n");
return -1;
}
}
return 0;
}
......@@ -950,6 +960,7 @@ static int do_fat_write(const char *filename, void *buffer,
cursect = mydata->rootdir_sect
= mydata->fat_sect + mydata->fatlength * bs.fats;
num_of_fats = bs.fats;
mydata->sect_size = (bs.sector_size[1] << 8) + bs.sector_size[0];
mydata->clust_size = bs.cluster_size;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment