bug in inode.c, pre-10 2.0.31

Ingo Molnar (mingo@pc7537.hil.siemens.at)
Wed, 15 Oct 1997 19:39:54 +0100 (MET)


With proper exploit code i could trigger 'iput: inode 55356 on device
08:02 still has mappings' messages. I'm not sure wether the fix is OK, but
the messages are gone.

-- mingo

--- .inode.c.orig Wed Oct 15 19:38:54 1997
+++ inode.c Wed Oct 15 19:45:30 1997
@@ -467,6 +467,14 @@

inode->i_count--;

+ if (inode->i_count)
+ /*
+ * Huoh, we were supposed to be the last user, but someone has
+ * grabbed it while we were sleeping. Dont destroy inode VM
+ * mappings, it might cause a memory leak.
+ */
+ return;
+
if (inode->i_mmap) {
printk("iput: inode %lu on device %s still has mappings.\n",
inode->i_ino, kdevname(inode->i_dev));