Re: [CFT] BeFS filesystem 0.6

Alexander Viro (viro@math.psu.edu)
Mon, 24 Dec 2001 16:59:51 -0500 (EST)


On Mon, 24 Dec 2001, Will Dyson wrote:

> Hi,
>
> 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 majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/