Hello, As suggested by Stephan I started to look at the ext2 filesystem struture. I also look at the opened tickets on FAT filesystem. I will first work on ticket 4602 ("no name" as mount label). This should allow me to get easily in the FAT code. As said by Stephan, the ext2 code seems to be well designed so I will probably make something similar. I read the different documentations on the filesystem APIs and have some questions: File cache: - The file cache allows to cache the data of each file. The read/write API of the file cache takes buffer/offset/size as parameter. When the cache manager want to read/write data from/to the device, there should be a filesystem hook that is called so that we can access the correct device positions for the file data. The haiku book says that fs_vnode_ops::io() is called in such a case, but this command is NULL on the FAT filesystem. So I wonder how this is done. - Where is used the cookie that is a parameter of each function ? The ext2 filesystem sets it to NULL, and the FAT filesystem assigns it. The answer to the previous question may also answer this one. Block cache: - what is the purpose/differences between get/get_writable/get_empty ? - I do not see any function to write a block in the cache, only to read from it. Is this intended or did I miss something ? Work on the FAT filesystem: - Do we want to support FAT12 and FAT16 ? - I reproduce tickets 3690 and 4602 so I will first work on them (did not try 5103 yet ). How can I assign them to me on trac ? - From the previous mails it was suggested to rewrite the current code. I will try to do modifications step by step so that patches are easy to integrate, and we get fixes faster. This way would avoid me to break everything and having to wait for a long time before there is something working. Is that process ok ? Typically I expect that while fixing 4602 I will write a Volume class. Romain.