On 08/02/2012 11:20 AM, Jeff Layton wrote: > On Mon, 30 Jul 2012 16:05:15 -0400 > bjschuma@xxxxxxxxxx wrote: > >> From: Bryan Schumaker <bjschuma@xxxxxxxxxx> >> >> This is the final set of patches to turn NFS into modules. The first patch >> creates an "nfs_subversion" structure that will represent a single NFS >> version. The next 6 patches are cleanups that the nfs_subversion structure >> allows us to put in. Finally, the last 3 patches convert v2, v3 and v4 into >> kernel modules. >> >> Changes in version 2: >> - Add a patch to keep nfs4 module parameters in the generic client. Without >> this we break backwards compatibility with older kernels. >> >> - Bryan >> >> Bryan Schumaker (10): >> NFS: Add version registering framework >> NFS: Remove the NFS v4 xdev mount function >> NFS: Create a try_mount rpc op >> NFS: Only initialize the ACL client in the v3 case >> NFS: Pass super operations and xattr handlers in the nfs_subversion >> NFS: Split out remaining NFS v4 inode functions >> NFS: Keep module parameters in the generic NFS client >> NFS: Convert v2 into a module >> NFS: Convert v3 into a module >> NFS: Convert v4 into a module >> >> fs/nfs/Kconfig | 6 +- >> fs/nfs/Makefile | 27 +++---- >> fs/nfs/callback.c | 24 ------ >> fs/nfs/callback.h | 2 +- >> fs/nfs/client.c | 191 +++++++++++++++++++++++++--------------------- >> fs/nfs/delegation.h | 2 +- >> fs/nfs/dir.c | 20 ++++- >> fs/nfs/direct.c | 2 +- >> fs/nfs/dns_resolve.c | 4 + >> fs/nfs/file.c | 15 ++++ >> fs/nfs/idmap.c | 3 - >> fs/nfs/inode.c | 105 ++++++++++++------------- >> fs/nfs/internal.h | 38 +++++---- >> fs/nfs/namespace.c | 17 +---- >> fs/nfs/netns.h | 2 +- >> fs/nfs/nfs.h | 29 +++++++ >> fs/nfs/nfs2super.c | 31 ++++++++ >> fs/nfs/nfs3client.c | 65 ++++++++++++++++ >> fs/nfs/nfs3proc.c | 3 + >> fs/nfs/nfs3super.c | 31 ++++++++ >> fs/nfs/nfs4_fs.h | 13 ++-- >> fs/nfs/nfs4client.c | 23 ++---- >> fs/nfs/nfs4proc.c | 9 +-- >> fs/nfs/nfs4super.c | 106 +++++++++++++------------ >> fs/nfs/nfs4xdr.c | 6 -- >> fs/nfs/pagelist.c | 4 + >> fs/nfs/pnfs.c | 2 + >> fs/nfs/proc.c | 3 + >> fs/nfs/read.c | 5 ++ >> fs/nfs/super.c | 172 ++++++++++++++++++++++++++++------------- >> fs/nfs/write.c | 35 +++------ >> include/linux/nfs_fs.h | 6 +- >> include/linux/nfs_fs_sb.h | 7 +- >> include/linux/nfs_idmap.h | 2 +- >> include/linux/nfs_xdr.h | 9 ++- >> 35 files changed, 632 insertions(+), 387 deletions(-) >> create mode 100644 fs/nfs/nfs.h >> create mode 100644 fs/nfs/nfs2super.c >> create mode 100644 fs/nfs/nfs3client.c >> create mode 100644 fs/nfs/nfs3super.c >> > > I'm seeing a (minor?) regression that I think is probably due to these > patches. If I plug in nfs.ko, and then unplug it, I'm unable to plug it > back in again: Thanks for letting me know, I'll look into it today. - Bryan > > # modprobe nfs > ERROR: could not insert 'nfs': Cannot allocate memory > > The following shows up in dmesg: > > [ 344.024976] kmem_cache_create(nfs_commit_data): Cache name already exists. > [ 344.033771] Pid: 1377, comm: modprobe Not tainted 3.6.0-0.rc0.git8.1.fc18.x86_64 #1 > [ 344.042741] Call Trace: > [ 344.051119] [<ffffffff811835f2>] kmem_cache_create+0x182/0x1e0 > [ 344.060250] [<ffffffffa027509b>] ? nfs_fs_proc_init+0x9b/0x9b [nfs] > [ 344.069477] [<ffffffffa027509b>] ? nfs_fs_proc_init+0x9b/0x9b [nfs] > [ 344.078508] [<ffffffffa027537c>] nfs_init_writepagecache+0x77/0xcfb [nfs] > [ 344.087653] [<ffffffffa027515a>] init_nfs_fs+0xbf/0x190 [nfs] > [ 344.096732] [<ffffffff8100212a>] do_one_initcall+0x12a/0x180 > [ 344.105755] [<ffffffff810e3636>] sys_init_module+0x156/0x2290 > [ 344.114936] [<ffffffff81359320>] ? ddebug_proc_open+0xd0/0xd0 > [ 344.123905] [<ffffffff811c5e40>] ? delayed_fput+0xb0/0xb0 > [ 344.132821] [<ffffffff816d8369>] system_call_fastpath+0x16/0x1b > [ 344.169419] FS-Cache: Netfs 'nfs' unregistered from caching > [ 469.258735] FS-Cache: Netfs 'nfs' registered for caching > [ 469.281508] kmem_cache_create(nfs_write_data): Cache name already exists. > [ 469.290690] Pid: 1386, comm: modprobe Not tainted 3.6.0-0.rc0.git8.1.fc18.x86_64 #1 > [ 469.300182] Call Trace: > [ 469.309102] [<ffffffff811835f2>] kmem_cache_create+0x182/0x1e0 > [ 469.318609] [<ffffffffa027509b>] ? nfs_fs_proc_init+0x9b/0x9b [nfs] > [ 469.328103] [<ffffffffa027509b>] ? nfs_fs_proc_init+0x9b/0x9b [nfs] > [ 469.337475] [<ffffffffa0275324>] nfs_init_writepagecache+0x1f/0xcfb [nfs] > [ 469.347034] [<ffffffffa027515a>] init_nfs_fs+0xbf/0x190 [nfs] > [ 469.356541] [<ffffffff8100212a>] do_one_initcall+0x12a/0x180 > [ 469.366093] [<ffffffff810e3636>] sys_init_module+0x156/0x2290 > [ 469.375539] [<ffffffff81359320>] ? ddebug_proc_open+0xd0/0xd0 > [ 469.385151] [<ffffffff811c5e40>] ? delayed_fput+0xb0/0xb0 > [ 469.394555] [<ffffffff816d8369>] system_call_fastpath+0x16/0x1b > > > I don't see where these are getting torn down now on module unload? > -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html