Return-Path: linux-nfs-owner@vger.kernel.org Received: from mx2.netapp.com ([216.240.18.37]:33432 "EHLO mx2.netapp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752755Ab2HBP1D (ORCPT ); Thu, 2 Aug 2012 11:27:03 -0400 Message-ID: <501A9C33.5010805@netapp.com> Date: Thu, 02 Aug 2012 11:26:43 -0400 From: Bryan Schumaker MIME-Version: 1.0 To: Jeff Layton CC: Trond.Myklebust@netapp.com, linux-nfs@vger.kernel.org Subject: Re: [PATCH v2 00/10] Create NFS modules References: <1343678725-8659-1-git-send-email-bjschuma@netapp.com> <20120802112059.57e7bb82@corrin.poochiereds.net> In-Reply-To: <20120802112059.57e7bb82@corrin.poochiereds.net> Content-Type: text/plain; charset=ISO-8859-1 Sender: linux-nfs-owner@vger.kernel.org List-ID: On 08/02/2012 11:20 AM, Jeff Layton wrote: > On Mon, 30 Jul 2012 16:05:15 -0400 > bjschuma@netapp.com wrote: > >> From: Bryan Schumaker >> >> 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] [] kmem_cache_create+0x182/0x1e0 > [ 344.060250] [] ? nfs_fs_proc_init+0x9b/0x9b [nfs] > [ 344.069477] [] ? nfs_fs_proc_init+0x9b/0x9b [nfs] > [ 344.078508] [] nfs_init_writepagecache+0x77/0xcfb [nfs] > [ 344.087653] [] init_nfs_fs+0xbf/0x190 [nfs] > [ 344.096732] [] do_one_initcall+0x12a/0x180 > [ 344.105755] [] sys_init_module+0x156/0x2290 > [ 344.114936] [] ? ddebug_proc_open+0xd0/0xd0 > [ 344.123905] [] ? delayed_fput+0xb0/0xb0 > [ 344.132821] [] 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] [] kmem_cache_create+0x182/0x1e0 > [ 469.318609] [] ? nfs_fs_proc_init+0x9b/0x9b [nfs] > [ 469.328103] [] ? nfs_fs_proc_init+0x9b/0x9b [nfs] > [ 469.337475] [] nfs_init_writepagecache+0x1f/0xcfb [nfs] > [ 469.347034] [] init_nfs_fs+0xbf/0x190 [nfs] > [ 469.356541] [] do_one_initcall+0x12a/0x180 > [ 469.366093] [] sys_init_module+0x156/0x2290 > [ 469.375539] [] ? ddebug_proc_open+0xd0/0xd0 > [ 469.385151] [] ? delayed_fput+0xb0/0xb0 > [ 469.394555] [] system_call_fastpath+0x16/0x1b > > > I don't see where these are getting torn down now on module unload? >