[haiku-development] FAT fix, step 1 questions

  • From: Romain <romain.haiku@xxxxxxxxxxx>
  • To: Haiku development <haiku-development@xxxxxxxxxxxxx>
  • Date: Sun, 17 Jan 2010 18:10:12 +0100

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.


Other related posts: