All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect
@ 2015-07-01  3:54 Kinglong Mee
  2015-07-01  3:55 ` [PATCH 2/8] nfs: Remove unused argument in nfs_server_set_fsinfo() Kinglong Mee
                   ` (6 more replies)
  0 siblings, 7 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01  3:54 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs@vger.kernel.org, kinglongmee

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/nfs4proc.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 55e1e3a..f1e0843 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -6885,7 +6885,7 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
 		/* unsupported! */
 		WARN_ON_ONCE(1);
 		status = -EINVAL;
-		goto out_server_scope;
+		goto out_impl_id;
 	}
 
 	status = rpc_call_sync(clp->cl_rpcclient, &msg, RPC_TASK_TIMEOUT);
@@ -6913,6 +6913,7 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
 		/* use the most recent implementation id */
 		kfree(clp->cl_implid);
 		clp->cl_implid = res.impl_id;
+		res.impl_id = NULL;
 
 		if (clp->cl_serverscope != NULL &&
 		    !nfs41_same_server_scope(clp->cl_serverscope,
@@ -6926,15 +6927,16 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
 
 		if (clp->cl_serverscope == NULL) {
 			clp->cl_serverscope = res.server_scope;
-			goto out;
+			res.server_scope = NULL;
 		}
-	} else
-		kfree(res.impl_id);
+	}
 
-out_server_owner:
-	kfree(res.server_owner);
+out_impl_id:
+	kfree(res.impl_id);
 out_server_scope:
 	kfree(res.server_scope);
+out_server_owner:
+	kfree(res.server_owner);
 out:
 	if (clp->cl_implid != NULL)
 		dprintk("NFS reply exchange_id: Server Implementation ID: "
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 2/8] nfs: Remove unused argument in nfs_server_set_fsinfo()
  2015-07-01  3:54 [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect Kinglong Mee
@ 2015-07-01  3:55 ` Kinglong Mee
  2015-07-01  3:56 ` [PATCH 3/8] nfs: Use remove_proc_subtree() instead remove_proc_entry() Kinglong Mee
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01  3:55 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs@vger.kernel.org, kinglongmee

Commit e38eb6506f "NFS: set_pnfs_layoutdriver() from nfs4_proc_fsinfo()"
have remove the using of mntfh from nfs_server_set_fsinfo().

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/client.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 892aeff..a13fada 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -825,7 +825,6 @@ error:
  * Load up the server record from information gained in an fsinfo record
  */
 static void nfs_server_set_fsinfo(struct nfs_server *server,
-				  struct nfs_fh *mntfh,
 				  struct nfs_fsinfo *fsinfo)
 {
 	unsigned long max_rpc_payload;
@@ -901,7 +900,7 @@ int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, struct nfs
 	if (error < 0)
 		goto out_error;
 
-	nfs_server_set_fsinfo(server, mntfh, &fsinfo);
+	nfs_server_set_fsinfo(server, &fsinfo);
 
 	/* Get some general file system info */
 	if (server->namelen == 0) {
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 3/8] nfs: Use remove_proc_subtree() instead remove_proc_entry()
  2015-07-01  3:54 [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect Kinglong Mee
  2015-07-01  3:55 ` [PATCH 2/8] nfs: Remove unused argument in nfs_server_set_fsinfo() Kinglong Mee
@ 2015-07-01  3:56 ` Kinglong Mee
  2015-07-01  5:20   ` Al Viro
  2015-07-01  3:57 ` [PATCH 4/8] nfs: Don't setting FILE_CREATED flags always Kinglong Mee
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01  3:56 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs@vger.kernel.org, kinglongmee

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/client.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index a13fada..52488ec 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -1447,13 +1447,11 @@ int __init nfs_fs_proc_init(void)
 	/* a file of volumes that we have mounted */
 	p = proc_symlink("volumes", proc_fs_nfs, "../../net/nfsfs/volumes");
 	if (!p)
-		goto error_2;
+		goto error_1;
 	return 0;
 
-error_2:
-	remove_proc_entry("servers", proc_fs_nfs);
 error_1:
-	remove_proc_entry("fs/nfsfs", NULL);
+	remove_proc_subtree("fs/nfsfs", NULL);
 error_0:
 	return -ENOMEM;
 }
@@ -1463,9 +1461,7 @@ error_0:
  */
 void nfs_fs_proc_exit(void)
 {
-	remove_proc_entry("volumes", proc_fs_nfs);
-	remove_proc_entry("servers", proc_fs_nfs);
-	remove_proc_entry("fs/nfsfs", NULL);
+	remove_proc_subtree("fs/nfsfs", NULL);
 }
 
 #endif /* CONFIG_PROC_FS */
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 4/8] nfs: Don't setting FILE_CREATED flags always
  2015-07-01  3:54 [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect Kinglong Mee
  2015-07-01  3:55 ` [PATCH 2/8] nfs: Remove unused argument in nfs_server_set_fsinfo() Kinglong Mee
  2015-07-01  3:56 ` [PATCH 3/8] nfs: Use remove_proc_subtree() instead remove_proc_entry() Kinglong Mee
@ 2015-07-01  3:57 ` Kinglong Mee
  2015-07-01  3:58 ` [PATCH 5/8] nfs: Remove unneeded micro checking of CONFIG_PROC_FS Kinglong Mee
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01  3:57 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs@vger.kernel.org, kinglongmee, Al Viro

Commit 5bc2afc2b5 "NFSv4: Honour the 'opened' parameter in the atomic_open()
 filesystem method" have support the opened arguments now.

Also,
Commit 03da633aa7 "atomic_open: take care of EEXIST in no-open case with
 O_CREAT|O_EXCL in fs/namei.c" have change vfs's logical.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/dir.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index b2c8b31..21457bb 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -1470,9 +1470,6 @@ static int nfs_finish_open(struct nfs_open_context *ctx,
 {
 	int err;
 
-	if ((open_flags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL))
-		*opened |= FILE_CREATED;
-
 	err = finish_open(file, dentry, do_open, opened);
 	if (err)
 		goto out;
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 5/8] nfs: Remove unneeded micro checking of CONFIG_PROC_FS
  2015-07-01  3:54 [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect Kinglong Mee
                   ` (2 preceding siblings ...)
  2015-07-01  3:57 ` [PATCH 4/8] nfs: Don't setting FILE_CREATED flags always Kinglong Mee
@ 2015-07-01  3:58 ` Kinglong Mee
  2015-07-01  3:59 ` [PATCH 6/8] nfs: Drop bad comment in nfs41_walk_client_list() Kinglong Mee
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01  3:58 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs@vger.kernel.org, kinglongmee

Have checking CONFIG_PROC_FS in include/linux/sunrpc/stats.h.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/inode.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
index f734562..d1d2b11 100644
--- a/fs/nfs/inode.c
+++ b/fs/nfs/inode.c
@@ -2008,17 +2008,15 @@ static int __init init_nfs_fs(void)
 	if (err)
 		goto out1;
 
-#ifdef CONFIG_PROC_FS
 	rpc_proc_register(&init_net, &nfs_rpcstat);
-#endif
-	if ((err = register_nfs_fs()) != 0)
+
+	err = register_nfs_fs();
+	if (err)
 		goto out0;
 
 	return 0;
 out0:
-#ifdef CONFIG_PROC_FS
 	rpc_proc_unregister(&init_net, "nfs");
-#endif
 	nfs_destroy_directcache();
 out1:
 	nfs_destroy_writepagecache();
@@ -2049,9 +2047,7 @@ static void __exit exit_nfs_fs(void)
 	nfs_destroy_nfspagecache();
 	nfs_fscache_unregister();
 	unregister_pernet_subsys(&nfs_net_ops);
-#ifdef CONFIG_PROC_FS
 	rpc_proc_unregister(&init_net, "nfs");
-#endif
 	unregister_nfs_fs();
 	nfs_fs_proc_exit();
 	nfsiod_stop();
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 6/8] nfs: Drop bad comment in nfs41_walk_client_list()
  2015-07-01  3:54 [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect Kinglong Mee
                   ` (3 preceding siblings ...)
  2015-07-01  3:58 ` [PATCH 5/8] nfs: Remove unneeded micro checking of CONFIG_PROC_FS Kinglong Mee
@ 2015-07-01  3:59 ` Kinglong Mee
  2015-07-01  3:59 ` [PATCH 7/8] nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh Kinglong Mee
  2015-07-01  4:00 ` [PATCH 8/8] nfs: Remove invalid tk_pid from debug message Kinglong Mee
  6 siblings, 0 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01  3:59 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs@vger.kernel.org, kinglongmee

Commit 7b1f1fd184 "NFSv4/4.1: Fix bugs in nfs4[01]_walk_client_list"
have change the logical of the list_for_each_entry().

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/nfs4client.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
index e42be52..3aa6a9b 100644
--- a/fs/nfs/nfs4client.c
+++ b/fs/nfs/nfs4client.c
@@ -676,7 +676,6 @@ found:
 		break;
 	}
 
-	/* No matching nfs_client found. */
 	spin_unlock(&nn->nfs_client_lock);
 	dprintk("NFS: <-- %s status = %d\n", __func__, status);
 	nfs_put_client(prev);
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 7/8] nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh
  2015-07-01  3:54 [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect Kinglong Mee
                   ` (4 preceding siblings ...)
  2015-07-01  3:59 ` [PATCH 6/8] nfs: Drop bad comment in nfs41_walk_client_list() Kinglong Mee
@ 2015-07-01  3:59 ` Kinglong Mee
  2015-07-01  4:00 ` [PATCH 8/8] nfs: Remove invalid tk_pid from debug message Kinglong Mee
  6 siblings, 0 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01  3:59 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs@vger.kernel.org, kinglongmee

NFS_ATTR_FATTR_V4_REFERRAL is only set in nfs4_proc_lookup_common.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/nfs4getroot.c | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/fs/nfs/nfs4getroot.c b/fs/nfs/nfs4getroot.c
index c0b3a16..039b3eb 100644
--- a/fs/nfs/nfs4getroot.c
+++ b/fs/nfs/nfs4getroot.c
@@ -35,13 +35,6 @@ int nfs4_get_rootfh(struct nfs_server *server, struct nfs_fh *mntfh, bool auth_p
 		goto out;
 	}
 
-	if (fsinfo.fattr->valid & NFS_ATTR_FATTR_V4_REFERRAL) {
-		printk(KERN_ERR "nfs4_get_rootfh:"
-		       " getroot obtained referral\n");
-		ret = -EREMOTE;
-		goto out;
-	}
-
 	memcpy(&server->fsid, &fsinfo.fattr->fsid, sizeof(server->fsid));
 out:
 	nfs_free_fattr(fsinfo.fattr);
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH 8/8] nfs: Remove invalid tk_pid from debug message
  2015-07-01  3:54 [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect Kinglong Mee
                   ` (5 preceding siblings ...)
  2015-07-01  3:59 ` [PATCH 7/8] nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh Kinglong Mee
@ 2015-07-01  4:00 ` Kinglong Mee
  6 siblings, 0 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01  4:00 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: linux-nfs@vger.kernel.org

Before rpc_run_task(), tk_pid is uninitiated as 0 always.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/nfs4proc.c | 5 ++---
 fs/nfs/pagelist.c | 3 +--
 fs/nfs/write.c    | 2 +-
 3 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index f1e0843..c3bb09f 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -8063,9 +8063,8 @@ nfs4_proc_layoutcommit(struct nfs4_layoutcommit_data *data, bool sync)
 	struct rpc_task *task;
 	int status = 0;
 
-	dprintk("NFS: %4d initiating layoutcommit call. sync %d "
-		"lbw: %llu inode %lu\n",
-		data->task.tk_pid, sync,
+	dprintk("NFS: initiating layoutcommit call. sync %d "
+		"lbw: %llu inode %lu\n", sync,
 		data->args.lastbytewritten,
 		data->args.inode->i_ino);
 
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c
index 282b393..776f8f8 100644
--- a/fs/nfs/pagelist.c
+++ b/fs/nfs/pagelist.c
@@ -636,9 +636,8 @@ int nfs_initiate_pgio(struct rpc_clnt *clnt, struct nfs_pgio_header *hdr,
 
 	hdr->rw_ops->rw_initiate(hdr, &msg, rpc_ops, &task_setup_data, how);
 
-	dprintk("NFS: %5u initiated pgio call "
+	dprintk("NFS: initiated pgio call "
 		"(req %s/%llu, %u bytes @ offset %llu)\n",
-		hdr->task.tk_pid,
 		hdr->inode->i_sb->s_id,
 		(unsigned long long)NFS_FILEID(hdr->inode),
 		hdr->args.count,
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index e6c2625..9354980 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1556,7 +1556,7 @@ int nfs_initiate_commit(struct rpc_clnt *clnt, struct nfs_commit_data *data,
 	/* Set up the initial task struct.  */
 	nfs_ops->commit_setup(data, &msg);
 
-	dprintk("NFS: %5u initiated commit call\n", data->task.tk_pid);
+	dprintk("NFS: initiated commit call\n");
 
 	nfs4_state_protect(NFS_SERVER(data->inode)->nfs_client,
 		NFS_SP4_MACH_CRED_COMMIT, &task_setup_data.rpc_client, &msg);
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/8] nfs: Use remove_proc_subtree() instead remove_proc_entry()
  2015-07-01  3:56 ` [PATCH 3/8] nfs: Use remove_proc_subtree() instead remove_proc_entry() Kinglong Mee
@ 2015-07-01  5:20   ` Al Viro
  2015-07-01 14:58     ` Kinglong Mee
  2015-07-01 15:00     ` [PATCH 3/8 v2] " Kinglong Mee
  0 siblings, 2 replies; 11+ messages in thread
From: Al Viro @ 2015-07-01  5:20 UTC (permalink / raw)
  To: Kinglong Mee; +Cc: Trond Myklebust, linux-nfs@vger.kernel.org

On Wed, Jul 01, 2015 at 11:56:25AM +0800, Kinglong Mee wrote:
> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
> ---
>  fs/nfs/client.c | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/fs/nfs/client.c b/fs/nfs/client.c
> index a13fada..52488ec 100644
> --- a/fs/nfs/client.c
> +++ b/fs/nfs/client.c
> @@ -1447,13 +1447,11 @@ int __init nfs_fs_proc_init(void)
>  	/* a file of volumes that we have mounted */
>  	p = proc_symlink("volumes", proc_fs_nfs, "../../net/nfsfs/volumes");

Why not make that
	if (!proc_symlink("fs/nfs/volumes", NULL, "../../net/nfsfs/volumes"))
instead, and kill proc_fs_nfs completely?

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [PATCH 3/8] nfs: Use remove_proc_subtree() instead remove_proc_entry()
  2015-07-01  5:20   ` Al Viro
@ 2015-07-01 14:58     ` Kinglong Mee
  2015-07-01 15:00     ` [PATCH 3/8 v2] " Kinglong Mee
  1 sibling, 0 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01 14:58 UTC (permalink / raw)
  To: Al Viro; +Cc: Trond Myklebust, linux-nfs@vger.kernel.org, kinglongmee

On 7/1/2015 1:20 PM, Al Viro wrote:
> On Wed, Jul 01, 2015 at 11:56:25AM +0800, Kinglong Mee wrote:
>> Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
>> ---
>>  fs/nfs/client.c | 10 +++-------
>>  1 file changed, 3 insertions(+), 7 deletions(-)
>>
>> diff --git a/fs/nfs/client.c b/fs/nfs/client.c
>> index a13fada..52488ec 100644
>> --- a/fs/nfs/client.c
>> +++ b/fs/nfs/client.c
>> @@ -1447,13 +1447,11 @@ int __init nfs_fs_proc_init(void)
>>  	/* a file of volumes that we have mounted */
>>  	p = proc_symlink("volumes", proc_fs_nfs, "../../net/nfsfs/volumes");
> 
> Why not make that
> 	if (!proc_symlink("fs/nfs/volumes", NULL, "../../net/nfsfs/volumes"))
> instead, and kill proc_fs_nfs completely?

That's great. Thank you!

thanks,
Kinglong Mee
 

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH 3/8 v2] nfs: Use remove_proc_subtree() instead remove_proc_entry()
  2015-07-01  5:20   ` Al Viro
  2015-07-01 14:58     ` Kinglong Mee
@ 2015-07-01 15:00     ` Kinglong Mee
  1 sibling, 0 replies; 11+ messages in thread
From: Kinglong Mee @ 2015-07-01 15:00 UTC (permalink / raw)
  To: Trond Myklebust; +Cc: Al Viro, linux-nfs@vger.kernel.org, kinglongmee

Thanks for Al Viro's comments of killing proc_fs_nfs completely.

Signed-off-by: Kinglong Mee <kinglongmee@gmail.com>
---
 fs/nfs/client.c | 25 +++++++------------------
 1 file changed, 7 insertions(+), 18 deletions(-)

diff --git a/fs/nfs/client.c b/fs/nfs/client.c
index 892aeff..3e8781d 100644
--- a/fs/nfs/client.c
+++ b/fs/nfs/client.c
@@ -1193,8 +1193,6 @@ void nfs_clients_init(struct net *net)
 }
 
 #ifdef CONFIG_PROC_FS
-static struct proc_dir_entry *proc_fs_nfs;
-
 static int nfs_server_list_open(struct inode *inode, struct file *file);
 static void *nfs_server_list_start(struct seq_file *p, loff_t *pos);
 static void *nfs_server_list_next(struct seq_file *p, void *v, loff_t *pos);
@@ -1434,27 +1432,20 @@ void nfs_fs_proc_net_exit(struct net *net)
  */
 int __init nfs_fs_proc_init(void)
 {
-	struct proc_dir_entry *p;
-
-	proc_fs_nfs = proc_mkdir("fs/nfsfs", NULL);
-	if (!proc_fs_nfs)
+	if (!proc_mkdir("fs/nfsfs", NULL))
 		goto error_0;
 
 	/* a file of servers with which we're dealing */
-	p = proc_symlink("servers", proc_fs_nfs, "../../net/nfsfs/servers");
-	if (!p)
+	if (!proc_symlink("fs/nfsfs/servers", NULL, "../../net/nfsfs/servers"))
 		goto error_1;
 
 	/* a file of volumes that we have mounted */
-	p = proc_symlink("volumes", proc_fs_nfs, "../../net/nfsfs/volumes");
-	if (!p)
-		goto error_2;
-	return 0;
+	if (!proc_symlink("fs/nfsfs/volumes", NULL, "../../net/nfsfs/volumes"))
+		goto error_1;
 
-error_2:
-	remove_proc_entry("servers", proc_fs_nfs);
+	return 0;
 error_1:
-	remove_proc_entry("fs/nfsfs", NULL);
+	remove_proc_subtree("fs/nfsfs", NULL);
 error_0:
 	return -ENOMEM;
 }
@@ -1464,9 +1455,7 @@ error_0:
  */
 void nfs_fs_proc_exit(void)
 {
-	remove_proc_entry("volumes", proc_fs_nfs);
-	remove_proc_entry("servers", proc_fs_nfs);
-	remove_proc_entry("fs/nfsfs", NULL);
+	remove_proc_subtree("fs/nfsfs", NULL);
 }
 
 #endif /* CONFIG_PROC_FS */
-- 
2.4.3


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-07-01 15:00 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-01  3:54 [PATCH 1/8] nfs: Fix a memory leak when meeting an unsupported state protect Kinglong Mee
2015-07-01  3:55 ` [PATCH 2/8] nfs: Remove unused argument in nfs_server_set_fsinfo() Kinglong Mee
2015-07-01  3:56 ` [PATCH 3/8] nfs: Use remove_proc_subtree() instead remove_proc_entry() Kinglong Mee
2015-07-01  5:20   ` Al Viro
2015-07-01 14:58     ` Kinglong Mee
2015-07-01 15:00     ` [PATCH 3/8 v2] " Kinglong Mee
2015-07-01  3:57 ` [PATCH 4/8] nfs: Don't setting FILE_CREATED flags always Kinglong Mee
2015-07-01  3:58 ` [PATCH 5/8] nfs: Remove unneeded micro checking of CONFIG_PROC_FS Kinglong Mee
2015-07-01  3:59 ` [PATCH 6/8] nfs: Drop bad comment in nfs41_walk_client_list() Kinglong Mee
2015-07-01  3:59 ` [PATCH 7/8] nfs: Remove invalid NFS_ATTR_FATTR_V4_REFERRAL checking in nfs4_get_rootfh Kinglong Mee
2015-07-01  4:00 ` [PATCH 8/8] nfs: Remove invalid tk_pid from debug message Kinglong Mee

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.