From nobody@FreeBSD.org  Wed Jun 21 13:41:46 2006
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 6D01216A47D
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 21 Jun 2006 13:41:46 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id 39E0D43D46
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 21 Jun 2006 13:41:46 +0000 (GMT)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.13.1/8.13.1) with ESMTP id k5LDfj4q090618
	for <freebsd-gnats-submit@FreeBSD.org>; Wed, 21 Jun 2006 13:41:45 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.13.1/8.13.1/Submit) id k5LDfjkQ090612;
	Wed, 21 Jun 2006 13:41:45 GMT
	(envelope-from nobody)
Message-Id: <200606211341.k5LDfjkQ090612@www.freebsd.org>
Date: Wed, 21 Jun 2006 13:41:45 GMT
From: Christian Recktenwald <chris@lf.net>
To: freebsd-gnats-submit@FreeBSD.org
Subject: can't create symlink named like an existing device on devfs
X-Send-Pr-Version: www-2.3

>Number:         99251
>Category:       kern
>Synopsis:       can't create symlink named like an existing device on devfs
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jun 21 13:50:16 GMT 2006
>Closed-Date:    Wed Jun 21 16:04:42 GMT 2006
>Last-Modified:  Wed Jun 21 16:04:42 GMT 2006
>Originator:     Christian Recktenwald
>Release:        5.5p2
>Organization:
>Environment:
FreeBSD my.host 5.5-RELEASE-p2 FreeBSD 5.5-RELEASE-p2 #0: Mon  i386 i386 Pentium III/Pentium III Xeon/Celeron FreeBSD
>Description:
Task:
  set symlink /dev/mem -> /dev/null

Action:
  cd /dev
  ln -sf null mem

Test:
  ls -l *mem

Result:
  ls: mem: No such file or directory
  crw-r-----  1 root kmem 244, 1 Jun 20 19:35 kmem

Debugging (after reboot):
 cd /dev 

 ls -l *mem
 crw-r-----  1 root kmem 244, 1 Jun 20 19:35 kmem 
 crw-r-----  1 root kmem 244, 0 Jun 20 19:35 mem

 rm mem

 ls -l *mem
 crw-r-----  1 root kmem 244, 1 Jun 20 19:35 kmem

 ln -s null mem
   or
 perl -e 'symlink "null","mem" or die "$!"'

 ls -l *mem
 ls: mem: No such file or directory
 crw-r-----  1 root kmem 244, 1 Jun 20 19:35 kmem
 
 echo *mem
 kmem mem

so: sh's globbing finds a directory entry "mem", but there is no
    stat(2)-able inode 

also interesting: each time I try 
 ln -s null mem
there is one more "mem"-entry 
 echo *mem
 kmem mem mem
 ln -s null mem
 echo *mem
 kmem mem mem mem

sometime like
 ln -s a b 
works as experted
>How-To-Repeat:
mkdir /tmp/x
mount -t devfs devfs /tmp/x
cd /tmp/x
ls -l *mem
rm mem
ls -l *mem
ln -s null mem
ls -l *mem
echo *mem
>Fix:

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: rodrigc 
State-Changed-When: Wed Jun 21 16:02:34 UTC 2006 
State-Changed-Why:  
In FreeBSD 5.x and higher, /dev is a mount point for the devfs filesystem. 
Entries in /dev are created automatically in the kernel, and are not 
persisted on disk.  What you are trying to do, i.e. delete /dev/mem 
and symlink it to /dev/null does't make sense.  See the man page 
for devfs(5). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=99251 
>Unformatted:
