Hi,

> What I'm confused about is why *poll* is reporting ECHILD, but it could just be
> the proper errno is being lost.
> 
> BTW, what kernel versions are we talking about here.  One is 2.2.14, but the
> other reports don't specify.

seems that the expire-Code is wrong (at least in kernel 2.3.99-pre8/9).

I fixed it for me, but I don't know if this is right. It works at least
for all my maps ;)

I attach the patch, although I know, it is wrong. (It is for autofs4 by
the way)

Bye
Martin
--- expire.c.orig       Sun May 14 00:05:08 2000
+++ expire.c    Sun May 14 00:14:29 2000
@@ -22,9 +22,10 @@
        struct list_head *next;
        int count;
 
-       count = atomic_read(&mnt->mnt_count);
+       count = atomic_read(&mnt->mnt_count) - 2;
 repeat:
        next = this_parent->mnt_mounts.next;
+       if (next != &this_parent->mnt_mounts) count --;
 resume:
        while (next != &this_parent->mnt_mounts) {
                struct list_head *tmp = next;
@@ -32,7 +33,7 @@
                                                mnt_child);
                next = tmp->next;
                /* Decrement count for unused children */
-               count += atomic_read(&p->mnt_count) - 1;
+               count += atomic_read(&p->mnt_count) - 2;
                if (!list_empty(&p->mnt_mounts)) {
                        this_parent = p;
                        goto repeat;

Reply via email to