On Sun, Feb 16, 2003 at 12:31:31AM +0000, Andrew Morton wrote:
> "James H. Cloos Jr." <cloos@jhcloos.com> wrote:
> >
> > I just tried 2.5.61 and 2.5.61-mm1 on a dell inspiron 8100.
> >
> > 2.5.61 is working OK, but -mm1 hung as soon as it tried to exec init.
> > init=/bin/bash showed the same failure.
> >
> > init(8) was able to print out it's first line, announcing its version
> > but then stopped. with init=/bin/bash bash did not output anything.
> >
>
> If you are using devfs then yes, there is a locking problem.
>
> If you are not using devfs then please send me your .config.
>
> Thanks.
Hello Andrew,
The following patch should enable smalldevfs to work with dcache_rcu. The
locking problem is because smalldevfs is written keeping fastwalk
in mind where as dcache_rcu backs out fastwalk code to 2.5.10 level.
Patch is based on 2.5.61-mm1.
Regards,
Maneesh
dcache_rcu-smalldevfs.patch
diff -urN linux-2.5.61-mm1/fs/devfs/base.c linux-2.5.61-mm1-smalldevfs-dcache_rcu/fs/devfs/base.c
--- linux-2.5.61-mm1/fs/devfs/base.c 2003-02-17 12:04:54.000000000 +0530
+++ linux-2.5.61-mm1-smalldevfs-dcache_rcu/fs/devfs/base.c 2003-02-17 12:29:46.000000000 +0530
@@ -60,8 +60,7 @@
memcpy(buf, *path, len);
buf[len] = '\0';
- spin_lock(&dcache_lock);
- err = link_path_walk(buf, nd); /* releases dcache_lock */
+ err = link_path_walk(buf, nd);
if (err)
return err;
@@ -101,14 +100,13 @@
memset(&nd, 0, sizeof(nd));
nd.flags = LOOKUP_PARENT;
- nd.mnt = devfs_vfsmount;
- nd.dentry = dir;
+ nd.mnt = mntget(devfs_vfsmount);
+ nd.dentry = dget(dir);
err = walk_parents_mkdir(&name, &nd, is_dir);
if (err)
return err;
- spin_lock(&dcache_lock);
err = link_path_walk(name, &nd);
if (err)
return err;
@@ -247,10 +245,9 @@
buf[sizeof(buf)-1] = '\0';
memset(&nd, 0, sizeof(nd));
- nd.mnt = devfs_vfsmount;
- nd.dentry = devfs_vfsmount->mnt_sb->s_root;
+ nd.mnt = mntget(devfs_vfsmount);
+ nd.dentry = dget(devfs_vfsmount->mnt_sb->s_root);
- spin_lock(&dcache_lock);
err = link_path_walk(buf, &nd);
if (!err) {
devfs_unregister(nd.dentry);
-- Maneesh Soni IBM Linux Technology Center, IBM India Software Lab, Bangalore. Phone: +91-80-5044999 email: maneesh@in.ibm.com http://lse.sourceforge.net/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sun Feb 23 2003 - 22:00:17 EST