Re: [NOT FIXED] Re: umount2

From: Russell King (rmk@arm.linux.org.uk)
Date: Sat Apr 15 2000 - 08:35:50 EST


Alexander Viro writes:
> Huh? What about more verbose output?

That's about as verbose as this mount gets, sorry.

> Urgh. What about doing the following trick: in fs/super.c::do_umount(),

Ok, added. When I shutdown to single user mode and try to umount /var,
I get:

umount: busy (/log/wtmp)

If I thien "halt" from single user, I get:

umount: busy (/run/random-seed)
umount: busy (/log/wtmp)

It appears that touching a file creates these. Eg, on a live system with
you patch in:

touch /var/run/tst
umount /var
 (brings up a list of busy dentries, not including /var/run/tst)
touch /var/run/tst
umount /var
 (brings up a list of busy dentries, *including* /var/run/tst)

The difference seens to be the way touch works. In the second attempt,
strace reveals:

open("/var/run/tst", O_WRONLY|O_CREAT|O_EXCL, 0666) = -1 EEXIST (File exists)

Looking in fs/namei.c, open_namei(), it appears that the code is probably
following the path:

                dir = dget(nd->dentry);
...
                dentry = lookup_hash(&nd->last, dget(nd->dentry));
...
                if (dentry->d_inode) {
...
                        dput(dir); /* dir is balanced again */
                        error = -EEXIST;
                        if (flag & O_EXCL)
                                goto exit;
...
exit:
        dput(nd->dentry);
        mntput(nd->mnt);
        return error;
        /* "dentry" is still in-use */
   _____
  |_____| ------------------------------------------------- ---+---+-
  | | Russell King rmk@arm.linux.org.uk --- ---
  | | | | http://www.arm.linux.org.uk/~rmk/aboutme.html / / |
  | +-+-+ --- -+-
  / | THE developer of ARM Linux |+| /|\
 / | | | --- |
    +-+-+ ------------------------------------------------- /\\\ |

-
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/



This archive was generated by hypermail 2b29 : Sat Apr 15 2000 - 21:00:26 EST