Author: kib
Date: Tue Aug 16 20:13:17 2011
New Revision: 224915
URL: http://svn.freebsd.org/changeset/base/224915

Log:
  Do not return success and a string "unknown" when vn_fullpath() was unable
  to resolve the path of the text vnode of the process. The behaviour is
  very confusing for any consumer of the procfs, in particular, java.
  
  Reported and tested by:       bf
  MFC after:    2 weeks
  Approved by:  re (bz)

Modified:
  head/sys/fs/procfs/procfs.c

Modified: head/sys/fs/procfs/procfs.c
==============================================================================
--- head/sys/fs/procfs/procfs.c Tue Aug 16 20:07:47 2011        (r224914)
+++ head/sys/fs/procfs/procfs.c Tue Aug 16 20:13:17 2011        (r224915)
@@ -67,20 +67,23 @@
 int
 procfs_doprocfile(PFS_FILL_ARGS)
 {
-       char *fullpath = "unknown";
-       char *freepath = NULL;
+       char *fullpath;
+       char *freepath;
        struct vnode *textvp;
+       int error;
 
+       freepath = NULL;
        PROC_LOCK(p);
        textvp = p->p_textvp;
        vhold(textvp);
        PROC_UNLOCK(p);
-       vn_fullpath(td, textvp, &fullpath, &freepath);
+       error = vn_fullpath(td, textvp, &fullpath, &freepath);
        vdrop(textvp);
-       sbuf_printf(sb, "%s", fullpath);
-       if (freepath)
+       if (error == 0)
+               sbuf_printf(sb, "%s", fullpath);
+       if (freepath != NULL)
                free(freepath, M_TEMP);
-       return (0);
+       return (error);
 }
 
 /*
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to