since when does linkat() on deleted /proc/$PID/fd/$num returnENOENT ?

From: David Madore
Date: Fri Mar 30 2012 - 06:26:59 EST


It used to be the case (last time I checked was around late 2008 or
early 2009) that deleted entries from /proc/$PID/fd/ could be linked
back to the filesystem by using linkat(,,,,AT_SYMLINK_FOLLOW).

Now this just returns ENOENT.

I'd like to understand when, how and why this change took place. What
commit introduced it and was it a deliberate move (e.g., because the
feature was a security issue of itself, or came into conflict with
something else) or was it accidental? Does it depend on the /proc
filesystem itself or on the target filesystem where the deleted file
used to reside?

(There's a Reddit thread, <URL:
http://www.reddit.com/r/programming/comments/7yx6f/how_to_undelete_any_open_deleted_file_in_linux/
>, where some people are reporting ENOENT on 2.6.27 or perhaps even
2.6.26, which helps but a bound on the change.)

(See also this thread: <URL:
http://comments.gmane.org/gmane.linux.kernel/1224071
>, where the question is not answered, however.)

--
David A. Madore
( http://www.madore.org/~david/ )
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/