Messages in this thread Patch in this message | | | Date | Mon, 19 Nov 2007 19:24:19 +0100 | From | "Torsten Kaiser" <> | Subject | Re: [BUG] 2.6.24-rc2-mm1 - kernel bug on nfs v4 |
| |
On Nov 19, 2007 10:00 AM, Andrew Morton <akpm@linux-foundation.org> wrote: > On Mon, 19 Nov 2007 08:15:48 +0100 "Torsten Kaiser" <just.for.lkml@googlemail.com> wrote: > > On Nov 18, 2007 8:18 PM, Trond Myklebust <trond.myklebust@fys.uio.no> wrote: > > > I had already fixed that one in my own stack. Attached are the 3 patches > > > that I've got. 1 from SteveD, 2 fixes. > > > > Moving the init_waitqueue_head() like patch > > linux-2.6.24-006-fix_to_fix_sillyrename_bug_on_umount.dif and applying > > linux-2.6.24-007-fix_nfs_free_unlinkdata.dif lets my testcase work. > > Also lockdep no longer complains about the non-static key. > > Thanks. > > To avoid goofups, could you please send the full fix against 2.6.24-rc2-mm1?
Umm... As I applied this changes manually there is a not insignificant change of goofups on my part...
For the hang problem I think Tronds suggestion with replacing the patches from -mm with fresh versions would be the best.
Anyway, currently I have the patch from http://lkml.org/lkml/2007/11/16/74 to fix the can't-create-files-bug.
To fix the hang bug I used Tronds linux-2.6.24-007-fix_nfs_free_unlinkdata.dif and the first two hunks from linux-2.6.24-006-fix_to_fix_sillyrename_bug_on_umount.dif.
Torsten
The needed 2 hunks for reference:
--- a/fs/nfs/client.c +++ b/fs/nfs/client.c @@ -594,9 +594,6 @@ static int nfs_init_server(struct nfs_server *server, /* Create a client RPC handle for the NFSv3 ACL management interface */ nfs_init_server_aclclient(server);
- init_waitqueue_head(&server->active_wq); - atomic_set(&server->active, 0); - dprintk("<-- nfs_init_server() = 0 [new %p]\n", clp); return 0;
@@ -736,6 +733,9 @@ static struct nfs_server *nfs_alloc_server(void) INIT_LIST_HEAD(&server->client_link); INIT_LIST_HEAD(&server->master_link);
+ init_waitqueue_head(&server->active_wq); + atomic_set(&server->active, 0); + server->io_stats = nfs_alloc_iostats(); if (!server->io_stats) { kfree(server); - 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/
| |