On Jun 3, 2009, at 3:43 PM, Mike Mackovitch wrote: > On Wed, Jun 03, 2009 at 11:15:31AM -0500, Tom Haynes wrote: >> Mike Mackovitch wrote: >>> Perhaps there should be a: >>> >>> if (dvp->v_flag & V_XATTRDIR) >>> set_fh4_flag(&fh, FH4_NAMEDATTR); >>> >>> after the makefh4()? > > In the meantime, I discovered what seems to be another strange issue > resulting from this bug: GETATTR ops don't return the right file type > (NF4REG instead of NF4NAMEDATTR) when the "bad" file handle is used. > I'm guessing this is because the type is derived from the current file > handle stored in the compound_state which is missing the FH4_NAMEDATTR > flag in the bad file handles passed back from the client. > Yes. In Solaris, named attrs are simply regular files within the flat named attr namespace (the named attr dir). The FH4 flags are needed so that GETATTR can provide the correct NF4 type. Your suggested fix should do the trick.
Jeff