[PATCH] Re: /proc/non-existent-pid/

Roderich Schupp (rsch@ExperTeam.de)
Sat, 14 Nov 1998 20:56:43 +0100


--0__=r0NEj9seVIrij15Wx43oJqp5w9aABoeNNs7fk2w9ZDmOcccvmOYca0qv
Content-type: text/plain; charset=us-ascii
Content-Disposition: inline

Koblinger Egmont <egmont@math.bme.hu> said:
> Several weeks ago I reported a bug. No answer came, and the bug is
> still present in 2.1.127. :-( So I send the report again.
> ...
> Here is the log file how I can invoke the bug:
> egmont $ sleep 10 &
> [1] 182
> egmont $ ls -l /proc/182/fd
> total 0
> lrwx------ 1 egmont pupil 64 Oct 20 20:50 0 -> /dev/ttyp0
> lrwx------ 1 egmont pupil 64 Oct 20 20:50 1 -> /dev/ttyp0
> lrwx------ 1 egmont pupil 64 Oct 20 20:50 2 -> /dev/ttyp0
> egmont $ ##### wait ten seconds
> [1]+ Done sleep 10
> egmont $ ls /proc | grep 182
> egmont $ ls -l /proc/182
> ls: /proc/182/exe: Permission denied
> ls: /proc/182/root: Permission denied
> ls: /proc/182/cwd: Permission denied
> total 0
> --r--r--r-- 1 root root 0 Oct 20 20:50 cmdline
> --r--r--r-- 1 root root 0 Oct 20 20:50 cpu
> ...

Reason for this strange behaviour is that the lookup inode_operation
for /proc/<pid>/fd directories, proc_lookupfd in fs/proc/fd.c, forgot
to set the procfs specific dentry_operations in the looked up dentry
(unlike proc_lookup and proc_root_lookup in fs/proc/root.c). Hence /
proc/<pid>/fd dentries have no d_delete operation and their inodes get
not reaped immediately when the process no longer exists.
Patch #1 (against 2.1.128) below fixes this.

Moreover, Koblinger Egmont <egmont@math.bme.hu> said:
> 2. When a file is deleted, the string "/tmp/x (deleted)" could rather
> be "deleted:/tmp/x". This is because it's more similar to the pipe:
> and socket: ones, and a normal file _can_ have the name
> "/tmp/x (deleted)" so it cannot be told whether this really
> means a deleted file. On the
> other hand, "deleted:/tmp/x" can not be the full name of a real
> file. So it would be more simplier and more consequent to parse the
> deleted:/tmp/x" notation within a program.

That's of course a matter of taste, but I think his point is valid.
Patch #2 below implements the "deleted:/tmp/x".

Cheers, Roderich

--
         Franz jagt im komplett verwahrlosten Taxi quer durch Bayern.

Roderich Schupp mailto:rsch@ExperTeam.de ExperTeam GmbH http://www.experteam.de/ Munich, Germany linux:2.1.129

--0__=r0NEj9seVIrij15Wx43oJqp5w9aABoeNNs7fk2w9ZDmOcccvmOYca0qv Content-type: application/octet-stream; name="file.x-patch" Content-Disposition: attachment; filename="file.x-patch" Content-transfer-encoding: base64

qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

--0__=r0NEj9seVIrij15Wx43oJqp5w9aABoeNNs7fk2w9ZDmOcccvmOYca0qv Content-type: application/octet-stream; name="file.x-patch" Content-Disposition: attachment; filename="file.x-patch" Content-transfer-encoding: base64

qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

--0__=r0NEj9seVIrij15Wx43oJqp5w9aABoeNNs7fk2w9ZDmOcccvmOYca0qv--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/