Hello Adrian,
* a3an <a3an@...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