Re: [U-Boot] [PATCH] FAT: update the second FAT when writing a file

2012-01-05 Thread Wolfgang Denk
Dear Donggeun Kim,

In message 1324442067-6448-1-git-send-email-dg77@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@samsung.com
 Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
 ---
  fs/fat/fat_write.c |   11 +++
  1 files changed, 11 insertions(+), 0 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

-- 
DENX Software Engineering GmbH, MD: Wolfgang Denk  Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de
You can't evaluate a man by logic alone.
-- McCoy, I, Mudd, stardate 4513.3
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH] FAT: update the second FAT when writing a file

2011-12-20 Thread Donggeun Kim
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@samsung.com
Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com
---
 fs/fat/fat_write.c |   11 +++
 1 files changed, 11 insertions(+), 0 deletions(-)

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;
-- 
1.7.4.1

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot