> For some months now, I have been working on a read-only implementation
> of the BeOS's native filesystem (BeFS). I just released version 0.6, and
> I think it works pretty darn well. <http://befs-driver.sourceforge.net/>
> I've had some reports of it working well on other peoples' machines as
> well. So what I'd really like now is for more people to try and break
> it. If you have a Be filesystem partition, please try it out. If you
> don't (but still feel like testing anyway), the download page has a
> filesystem image you can try it out on.
> I'd also appreciate anyone who wants to critique the code itself. Thanks!
Umm... Obvious comments:
a) typedef struct super_block vfs_sb; Please don't.
b) in inode.c:
inode->i_mode = (umode_t) raw_inode->mode;
is wrong. It's guaranteed bug either on big- or little-endian boxen.
Same for mtime, uid and gid. befs_count_blocks() also needs cleanup.
c) befs_read_block()... Erm. Why bother with extra layer of abstraction?
d) befs_readdir(). You _are_ guaranteed that inode is non-NULL, you put
pointer to befs_dir_operations only is S_ISDIR is true and S_ISDIR is
mutually exclusive with S_ISLNK.
e) are there sparse files on BeFS? If yes - you want to make BH_Mapped
conditional in get_block() (set it if block is present, don't if it's a
hole in file).
f) befs_arch(). You probably want to make that an option...
g) endianness problems in read_super()...
h) TODO: use line breaks ;-)
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to email@example.com
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/