patch-2.4.0-test12 linux/fs/super.c

Next file: linux/fs/sysv/inode.c
Previous file: linux/fs/stat.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.0-test11/linux/fs/super.c linux/fs/super.c
@@ -1037,13 +1037,13 @@
 	}
 
 	spin_lock(&dcache_lock);
-	if (atomic_read(&mnt->mnt_count) > 2) {
-		spin_unlock(&dcache_lock);
-		mntput(mnt);
-		return -EBUSY;
-	}
 
 	if (mnt->mnt_instances.next != mnt->mnt_instances.prev) {
+		if (atomic_read(&mnt->mnt_count) > 2) {
+			spin_unlock(&dcache_lock);
+			mntput(mnt);
+			return -EBUSY;
+		}
 		if (sb->s_type->fs_flags & FS_SINGLE)
 			put_filesystem(sb->s_type);
 		/* We hold two references, so mntput() is safe */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)