Hi Tom,

On 03/02/10 11:16 -0600, Tom Haynes wrote:
>  usr/src/uts/common/fs/nfs/nfs_cmd.c:
> 
>  197  * First try to find a cached entry. If not successfull,
> 
> 
>  One 'l' as successful
> 
fixed

>  ----
> 
>  224         if (charset == NULL)
>  225                 /* the slooow way - ask daemon */
>  226                 charset = nfscmd_charmap(exi, sp);
> 
>  I'd prefer 225 before 224.
> 
done

>  -----
> 
>  276         ASSERT(exi != NULL);
>  277         ASSERT(sp != NULL);
> 
>  Handles debug. For production, why not add the following as well:
> 
>  if (exi == NULL || sp == NULL)
>     return (NULL);
> 
>  Actually, this is a major requirement. nfscmd_charmap() used to
>  handle this without a potential panic. Now it will panic.
> 
Asserts substituted by if condition and moved to nfscmd_findmap()
as suggested by Rob.

> 
>  ---
> 
> 
>  usr/src/uts/common/fs/nfs/nfs4_srv.c
> 
> 
> 
> 
>  6067 static nfsstat4
>  6068 rfs4_lookup(component4 *component, struct svc_req *req,
>  6069     struct compound_state *cs)
> 
>  6097         /* If necessary, convert to UTF-8 for illbehaved clients */
>  6098 6099         ca = (struct sockaddr 
>  *)svc_getrpccaller(req->rq_xprt)->buf;
>  6100         name = nfscmd_convname(ca, cs->exi, nm, NFSCMD_CONV_INBOUND,
>  6101             MAXPATHLEN + 1);
>  6102 6103         if (name == NULL) {
> 
>  So now every lookup will make a call to userland regardless.
> 
>  What is the performance impact?
> 
>  Is there a quick check that can be done here to see if we need to make
>  the call?
> 
>  Is there a way to cache results or the fact that a cs->exi is known
>  to be well behaved?
> 
Already answered by Rob.

>  ---
> 
>  BTW: it should be "ill behaved" on 6097
> 
fixed.

Thanks for your comments! Please, see new revision of webrev:
  http://cr.opensolaris.org/~jkryl/nfs-utf8-3/

-jan

Reply via email to