On Wed, 2015-05-06 at 23:30 +0200, Samuel Thibault wrote: > Hello, > > Svante Signell, le Mon 04 May 2015 14:14:16 +0200, a écrit : > > Attached is the test code where fakeroot-hurd fails. > > fakeroot-hurd ./test_sockets > > bind: Operation not supported > > Mmm, I don't think we want to implement it in netfs_attempt_chmod > as you are trying to do. See the code netfs_S_file_set_translator: > netfs_attempt_chmod() is called only because it's the "Short circuited > translators" case, i.e. when the FS can perhaps store the translator > directly in the mode. You only stored the mode in np->nn_stat.st_mode, > without calling some file_* function to actually make the change on the > underlying FS. That's why you end up with: > > > 67<--66(pid9244)->file_set_translator (6 6 0 "/hurd/ifsock" (null)) = > > 0x4000002d (Operation not supported) > > Since the underlying node is still a normal file. You also can't just > call file_chmod since that won't change the file type. > > Thus, do not modify netfs_attempt_chmod, rather implement the > netfs_set_translator stub by just calling file_set_translator on the > underlying node to set the passive translator.
I think I understand most of your writing above :) Should the netfs_set_translator stub be implemented in trans/fakeroot.c or in libnetfs/set-get-trans.c? Still confusing is which functions are called: The ones in libnetfs vs the ones in fakeroot?