Not a big deal, just set up nd as if this was a single component
lookup. The previous version did it like this:
+ struct nameidata nd = {
+ .last_type = LAST_NORM,
+ .last = *name,
+ };
+
+ nd.path = pue->upperpath;
+ path_get(&nd.path);
+
+ newdentry = lookup_create(&nd, S_ISDIR(attr->ia_mode));
But that's not a solution to the NFS suckage, it's just a workaround.
"Fortunately" NFS isn't good for a writable layer of a union for other
reasons, so this isn't a big concern at the moment.
Thanks,
Miklos
--