On Wed, 2015-05-13 at 10:04 +0200, Samuel Thibault wrote:
> Samuel Thibault, le Wed 13 May 2015 09:57:27 +0200, a écrit :
> > > + return file_set_translator (netfs_node_netnode (np)->file,
> > > + FS_TRANS_EXCL|FS_TRANS_SET,
> > > + FS_TRANS_EXCL|FS_TRANS_SET, 0,
> > > + argz, argzlen,
> > > + MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND);
> >
> > Mmm, I don't think you want to set the active_flags parameter, see the
> > comment above:
>
> And you have set the active parameter to MACH_PORT_NULL, so active_flags
> should really be set to 0, it doesn't really make sense otherwise.
This is copeied verbatim from fakeroot.c:netfs_attempt_mksymlink() and
netfs_attempt_mkdev() so the active_flags parameter should be zero there
too?
New patch attached!
Index: hurd-0.6/trans/fakeroot.c
===================================================================
--- hurd-0.6.orig/trans/fakeroot.c
+++ hurd-0.6/trans/fakeroot.c
@@ -450,6 +450,20 @@ netfs_S_dir_lookup (struct protid *dirus
return err;
}
+/* The user may define this function. Attempt to set the passive
+ translator record for FILE to ARGZ (of length ARGZLEN) for user
+ CRED. */
+error_t
+netfs_set_translator (struct iouser *cred, struct node *np,
+ char *argz, size_t argzlen)
+{
+ return file_set_translator (netfs_node_netnode (np)->file,
+ FS_TRANS_EXCL|FS_TRANS_SET,
+ 0, 0,
+ argz, argzlen,
+ MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND);
+}
+
/* These callbacks are used only by the standard netfs_S_dir_lookup,
which we do not use. But the shared library requires us to define them. */
error_t