sync() not implemented by rumpfs

Josef Söntgen josef.soentgen at ...1...
Thu Jan 29 23:40:22 CET 2015


Hello Adrian,

* a3an <a3an at ...294...> [2015-01-29 22:03:44 +0100]:
> while experimenting with rumpfs I noticed that sync() is not supported
> by rumpfs.
> 
> I added a sync() call in ../test/libc_ffat/main.cc and executed make
> run/rump_ext2. I got the following message:
> 
> [init -> test-libc_vfs] DUMMY sync(): sync called, not implemented
> 
> I guess, a filesystem not supporting sync() is of greatly reduced value.

rump_fs actually does support syncing (you may take a look at [1]).
However, sync(2) is only implemented as a dummy function call [2] in
the common libc backend, hence this message. Looking at the current
implementation, calling fsync(3) would have the desired effect [3].
(It will call the sync method on the root directory, which is a
Dir_file_system, that in return will call sync on all its registered
file systems and so.)

> Has this call been blocked on purpose ?

No, it just was not implemented. I vaguely remember talking about this
topic, when we added the sync syscall to Noux. Since we override the
common libc implementation in libc_noux [4] anyway, there was probably
no immediate need to also provide a more complete implementation there.

Cheers
Josef

[1] repos/dde_rump/src/server/rump_fs/main.cc:325
[2] repos/libports/src/lib/libc/dummies:136
[3] repos/libports/src/lib/libc/vfs_lugin.cc:829
[4] repos/ports/src/lib/libc_noux/plugin.cc:635




More information about the users mailing list