2002-11-08 06:12:50

by Olaf Dietsche

[permalink] [raw]
Subject: [PATCH] 2.5.46: switch quota and BSD acct off for busy fs?

do_umount() does DQUOT_OFF() and acct_auto_close() before actually
unmounting the fs. I guess, this is wrong, as long as the fs is busy.

Possible fix below. Comments?

Regards, Olaf.

--- a/fs/namespace.c Sat Oct 5 18:45:36 2002
+++ b/fs/namespace.c Fri Nov 8 07:07:55 2002
@@ -334,6 +334,8 @@
down_write(&current->namespace->sem);
spin_lock(&dcache_lock);

+ retval = -EBUSY;
+ if (atomic_read(&mnt->mnt_count) == 2 || flags & MNT_DETACH) {
if (atomic_read(&sb->s_active) == 1) {
/* last instance - try to be smart */
spin_unlock(&dcache_lock);
@@ -344,8 +346,6 @@
security_ops->sb_umount_close(mnt);
spin_lock(&dcache_lock);
}
- retval = -EBUSY;
- if (atomic_read(&mnt->mnt_count) == 2 || flags & MNT_DETACH) {
if (!list_empty(&mnt->mnt_list))
umount_tree(mnt);
retval = 0;