HI !

 I noticed a slight proc filesystem strangness in the 2.4.2X and 2.6.X 
 (atleast up to 2.6.8).  Assuming that process 8655 exists and is running 
 long enough (ls -lR / or so)

cd /proc/8655
kill -9 8655
ls
/usr/bin/ls: .: Stale NFS file handle

open(".", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = -1 ESTALE (Stale NFS 
file handle)  from  fs/namei.c -> link_path_walk :

int fastcall link_path_walk(const char * name, struct nameidata *nd)
{
        struct dentry *dentry;
        struct inode *inode;
        int err;
        unsigned int lookup_flags = nd->flags;

        while (*name=='/')
                name++;
        if (!*name)
                goto return_reval;
        ...

return_reval:
                /*
                 * We bypassed the ordinary revalidation routines.
                 * Check the cached dentry for staleness.
                 */
                dentry = nd->dentry;
                if (dentry && dentry->d_op && dentry->d_op->d_revalidate) {
                        err = -ESTALE;
                        if (!dentry->d_op->d_revalidate(dentry, 0)) {
                                d_invalidate(dentry);
                                break;
                        }
                }


 Why does return_reval return -ESTALE instead of -ENOENT here - might need an
extra check on what filesystem this is working on ?

/usr/bin/ls: .: no such file or directory

 would seem more meaningfull to me when I find it in a logfile.

thx !
hofrat
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to