]> git.sur5r.net Git - u-boot/commit
FAT: fix some issues in FAT write support code
authorAnatolij Gustschin <agust@denx.de>
Thu, 15 Dec 2011 03:12:14 +0000 (03:12 +0000)
committerWolfgang Denk <wd@denx.de>
Tue, 20 Dec 2011 22:18:43 +0000 (23:18 +0100)
commit8506eb8d6abefa6d91468a8c350b60ce3321a53e
tree22df26ec9b13be6a746c3a26d53db59f1c7b8f00
parente27334212c919c1e9467408da36f2cd34a8a65be
FAT: fix some issues in FAT write support code

Writing a file to the FAT partition didn't work while a
test using a CF card. The test was done on mpc5200 based
board (powerpc). There is a number of problems in FAT
write code:

Compiler warning:
fat_write.c: In function 'file_fat_write':
fat_write.c:326: warning: 'counter' may be used uninitialized
in this function
fat_write.c:326: note: 'counter' was declared here

'l_filename' string is not terminated, so a file name
with garbage at the end is used as a file name as shown
by debug code.

Return value of set_contents() is not checked properly
so actually a file won't be written at all (as checked
using 'fatls' after a write attempt with 'fatwrite'
command).

do_fat_write() doesn't return the number of written bytes
if no error happened. However the return value of this
function is used to show the number of written bytes
in do_fat_fswrite().

The patch adds some debug code and fixes above mentioned
problems and also fixes a typo in error output.

NOTE: after a successful write to the FAT partition (under
U-Boot) the partition was checked under Linux using fsck.
The partition needed fixing FATs:
-bash-3.2# fsck -a /dev/sda1
fsck 1.39 (29-May-2006)
dosfsck 2.11, 12 Mar 2005, FAT32, LFN
FATs differ but appear to be intact. Using first FAT.
Performing changes.

Signed-off-by: Anatolij Gustschin <agust@denx.de>
Cc: Donggeun Kim <dg77.kim@samsung.com>
Cc: Aaron Williams <Aaron.Williams@cavium.com>
Acked-by: Donggeun Kim <dg77.kim@samsung.com>
fs/fat/fat_write.c