Hi,
Here is the patch that fixes the problem. But I still want to understand
why Linus put those extra dget/dput in mknod/link/unlink... perhaps they
are needed after all.
I re-attached my log so Linus could see what we are talking about.
Regards.
Tigran
--- linux/fs/ramfs/inode.c Thu Apr 27 09:01:30 2000
+++ work/fs/ramfs/inode.c Fri May 5 18:11:16 2000
@@ -154,7 +154,7 @@
if (inode) {
d_instantiate(dentry, inode);
- dget(dentry); /* Extra count - pin the dentry in core */
+ /* dget(dentry); */ /* Extra count - pin the dentry in core */
error = 0;
}
return error;
@@ -182,7 +182,7 @@
inode->i_nlink++;
inode->i_count++; /* New dentry reference */
- dget(dentry); /* Extra pinning count for the created dentry */
+ /* dget(dentry);*/ /* Extra pinning count for the created dentry */
d_instantiate(dentry, inode);
return 0;
}
@@ -226,7 +226,7 @@
struct inode *inode = dentry->d_inode;
inode->i_nlink--;
- dput(dentry); /* Undo the count from "create" - this does all the work */
+ /* dput(dentry);*/ /* Undo the count from "create" - this does all the work */
d_delete(dentry);
retval = 0;
}
-
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 : Sun May 07 2000 - 21:00:18 EST