sync() not implemented by rumpfs
a3an
a3an at ...294...
Fri Jan 30 10:56:45 CET 2015
Hello Josef,
I've got some new indications.
I used the fsync() call to see how that worked out.
It did not work either. By plowing through the vfs header files, I noticed
that File_system contains a virtual function called sync() followed by
{}, and
some comments that only Fs_file_system needs sync.
I placed a PWRN macro call with a msg within the braces and run the test
test again.
The msg appeared on the console.
It means there is no overriding implementation for sync(), presumably in
Fs_file_system.
I assume rump_fs has been used in read mode only.
Regards, Adrian
Am 29.01.2015 um 23:40 schrieb Josef Söntgen:
> 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
>
> ------------------------------------------------------------------------------
> Dive into the World of Parallel Programming. The Go Parallel Website,
> sponsored by Intel and developed in partnership with Slashdot Media, is your
> hub for all things parallel software development, from weekly thought
> leadership blogs to news, videos, case studies, tutorials and more. Take a
> look and join the conversation now. http://goparallel.sourceforge.net/
> _______________________________________________
> genode-main mailing list
> genode-main at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
More information about the users
mailing list