I also have some problems with g_file_storage.
I use the command
modprobe g_file_storage file=/dev/hda
for both my 256 MB compact flash card and my IBM 340 MB microdrive, which both have a fat partition.
I tried 3.5.4 and 3.5.4.1.
I tried to mount them under Linux (2.6.16-ck1) and under win2k.
The compact flash card works, after some time (about 1 minute). The card is recognized as Linux File Storage, the fat formatted drive is recognizd and usable under win2k just like a normal usb stick.
The microdrive does not work like the flash drive. Neither Linux, nor win2k detect the partition, only the drive is recognized, either als Linux File Storage or as sdb. So with g_file_storage the microdrive is not usable. Of course it can be mounted under OZ 3.5.4 and 3.5.4.1, and i can install ipkgs from it.
I even tried to make a ext2 partition on the microdrive, then make a file on that partition, and make a partition inside that file, formatted it and then used this file as the parameter for g_file_storage. It also did not work.
The listing for the latter:
mkfs.ext2 -m 0 /dev/hda
mount /dev/hda /mnt
dd if=/dev/zero of=/mnt/store bs=1M count=340
fdisk /mnt/store
modprobe g_file_storage file=/mnt/store
Maybe some devs may take a look at it. Probably a newer kernel (2.6.16) is a solution for problems like these. I have read somewhere (lkml or so), that in 2.6.16-mm1 there are some bugfixes for the gadget devices. Unfortunately there is not much information on this topic out there, the file storage gadget howto is a good source of information, but there are no solutions for problems like these.