Author: mav
Date: Thu May 24 18:19:23 2012
New Revision: 235922
URL: http://svn.freebsd.org/changeset/base/235922

Log:
  Revert devfs part of r235911. I was unaware about old but unfinished
  discussion between kib@ and gibbs@ about it.

Modified:
  head/sys/fs/devfs/devfs_vnops.c

Modified: head/sys/fs/devfs/devfs_vnops.c
==============================================================================
--- head/sys/fs/devfs/devfs_vnops.c     Thu May 24 18:05:10 2012        
(r235921)
+++ head/sys/fs/devfs/devfs_vnops.c     Thu May 24 18:19:23 2012        
(r235922)
@@ -1266,53 +1266,8 @@ static int
 devfs_readlink(struct vop_readlink_args *ap)
 {
        struct devfs_dirent *de;
-       struct cdev_priv *cdp;
 
        de = ap->a_vp->v_data;
-       cdp = de->de_cdp;
-
-       if (cdp != NULL && (cdp->cdp_c.si_flags & SI_ALIAS) != 0) {
-               struct devfs_mount *dmp;
-               struct prison *pr;
-               char *mp;
-               int mp_len;
-               int pr_path_len;
-               int err;
-
-               /*
-                * For device aliases, construct an absolute symlink (to
-                * shorten its length and avoid the ugliness of a relative
-                * link) by prepending the fully qualified path to the root
-                * of this devfs.  For a non-jailed process, the devfs root
-                * is our mount point.  For a jailed process, we must remove
-                * any jail prefix in our mount point so that our response
-                * matches the user process's world view.
-                */
-               dmp = VFSTODEVFS(ap->a_vp->v_mount);
-               mp = dmp->dm_mount->mnt_stat.f_mntonname;
-               mp_len = strlen(mp);
-
-               pr = ap->a_cred->cr_prison;
-               pr_path_len = strlen(pr->pr_path);
-
-               if (strncmp(pr->pr_path, mp, pr_path_len) == 0
-                && mp[pr_path_len] == '/') {
-                       mp += pr_path_len;
-                       mp_len -= pr_path_len;
-               }
-
-               err = uiomove(mp, mp_len, ap->a_uio);
-               if (err != 0)
-                       return (err);
-
-               /*
-                * Devfs cannot be the root file system, so its
-                * mount point must always be terminated by a '/'.
-                */
-               err = uiomove("/", 1, ap->a_uio);
-               if (err != 0)
-                       return (err);
-       }
        return (uiomove(de->de_symlink, strlen(de->de_symlink), ap->a_uio));
 }
 
_______________________________________________
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