Barebox Enviroment FileSystem

andreas.willig at rafi.de andreas.willig at rafi.de
Wed May 8 04:27:39 EDT 2013


Hi there

I'm just about to implement direct access to BareBox Env FileSystem from
Windows Embedded Compact 7 launched through BB and it seems to me I met a
bug in the environment code.

File: common/environment.c
Line: 89 (latest revision by 8th of May)
Function: file_save_action

The creation of the File's INODE is done strange:

  87         inode = (struct envfs_inode*)data->writep;
  88         inode->magic = ENVFS_32(ENVFS_INODE_MAGIC);
  89         inode->headerlen = ENVFS_32(PAD4(namelen + sizeof(struct
envfs_inode_end)));

Now the bug / my question is:
Why is the HeaderLen of the Inode created by padded filename + sizeof
inode_end instead of padded filename + sizeof(inode) did i get something
wrong or is this a bug?

envfs_load will not meet this problem since headerlen is not used during
expansion of FS to ram.

An additional question i got btw: Is it intentionally desired that empty
directories are dropped during creation of bin file? The inode_end seems to
support an empty directory entry, but code does not create such entries.

Thanks in advance

Andreas




More information about the barebox mailing list