Re: [PATCH] proc: restore seekdir("/proc", 256) semantics

From: Andrew Morton
Date: Tue May 01 2018 - 18:23:14 EST


On Tue, 24 Apr 2018 00:50:09 +0300 Alexey Dobriyan <adobriyan@xxxxxxxxx> wrote:

> Long time ago "/proc/self" was an honest symlink and all not-PID entries
> were output before /proc/$PID. To not lose /proc/self in readdir output
> after it became permanently positive dentry it was stuck before /proc/1.
>
> One side effect of the change was that the code
>
> d = opendir("/proc");
> seekdir(d, 256);
>
> stopped pointing to the first PID for applications that want to skip all
> the crap.
>
> Later "/proc/thread-self" was added in the same way.
>
> It looks like ps and top aren't seeking over /proc but are simply
> skipping over so nobody noticed.
>
> Restore old behaviour, make seekdir(254) point to /proc/self and
> seekdir(255) point to /proc/thread-self.
>

Gee. Why? That's a pretty weird artifact in the userspace API and if
we were able to withdraw it without damage then good, let's leave it
withdrawn?

I mean, if we're to make this a permanent part of the userspace API
then it should be documented in the proc(5) manpage and we should have
something in tools/testing/selftests to detect regressions in the
interface. Good luck with all that!