Message ID | 1324442067-6448-1-git-send-email-dg77.kim@samsung.com |
---|---|
State | Accepted |
Commit | 627182ea9d0f157f7280aa650dd4c06461b20c3e |
Headers | show |
Dear Donggeun Kim, In message <1324442067-6448-1-git-send-email-dg77.kim@samsung.com> you wrote: > 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: Donggeun Kim <dg77.kim@samsung.com> > Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> > --- > fs/fat/fat_write.c | 11 +++++++++++ > 1 files changed, 11 insertions(+), 0 deletions(-) Applied, thanks. Best regards, Wolfgang Denk
diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c index 4f1772f..9e34def 100644 --- a/fs/fat/fat_write.c +++ b/fs/fat/fat_write.c @@ -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; } @@ -949,6 +959,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;