On Tue, Dec 06, 2011 at 11:01:37AM +0100, Robert Jarzmik wrote: > Franck JULLIEN <franck.jullien@xxxxxxxxx> writes: > > > 2011/12/5 Robert Jarzmik <robert.jarzmik@xxxxxxx>: > >> Franck JULLIEN <franck.jullien@xxxxxxxxx> writes: > >> > >>> Do you have this patch applied to your working branch ? : > >>> > >>> fs/fat: Initialize local variable finfo > >> Hi Franck, > >> > >> I cross-checked, and indeed I do not have this fix in my branch, while it sits > >> in next branch. I'll rebase and make another try. > Good guess, with that patch no bug :) > > >> Do you by any chance tried the "write" part of FAT ? > > Yes I did try it and as far as I can tell it works. I wrote some test > > files to the SD then read it back on the PC and file were there.... > > I don't think I tried to create folders. > Ah that's the node of the story. > I made 2 tries : > (1) mount the SD card, create a folder "toto", umount > => when checked in my laptop, no new folder is created > (2) mount the SD card, create a folder "toto", and copy in it a file "foo.txt", > umount > => when checked in my laptop, both the directory and the file *are* there > > So I suppose that creating a directory without any file within doesn't trigger > the write on the device. I had a look at it and the problem seems to be the fat caching layer I introduced. It brings the fat on disk and in memory out of sync. This layer has been necessary since without it the performance of the fat driver is really poor. You could try the following branch. It reverts the fat cache layer support and instead reimplements the block caching layer so that it can handle the access patterns of the fat driver better. It would be great if you could give it some testing as obviously my test patterns didn't reveal the 'create folder' bug you described. Sascha The following changes since commit 3bb6ee8dd530d01724ceb7c3d5bb68bd1898726a: mci: add the probe parameter if any error happened during the probe (2011-12-05 22:05:09 +0100) are available in the git repository at: git://git.pengutronix.de/git/barebox.git pu/block Sascha Hauer (3): list: add list_last_entry function fat: revert fat caching mechanism block: reimplement caching common/block.c | 274 ++++++++++++++++++++++++++++++++++++------------- fs/fat/ff.c | 93 ++++------------- include/block.h | 16 ++-- include/linux/list.h | 11 ++ 4 files changed, 241 insertions(+), 153 deletions(-) -- Pengutronix e.K. | | Industrial Linux Solutions | http://www.pengutronix.de/ | Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox