2011-09-13 20:24:14

by Jim Rees

[permalink] [raw]
Subject: [PATCH] pnfsblock: add missing rpc_put_mount and path_put

From: Peng Tao <[email protected]>

Reported-by: Jeff Layton <[email protected]>
Signed-off-by: Peng Tao <[email protected]>
Signed-off-by: Jim Rees <[email protected]>
---
fs/nfs/blocklayout/blocklayout.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
index 9675ef9..8f97578 100644
--- a/fs/nfs/blocklayout/blocklayout.c
+++ b/fs/nfs/blocklayout/blocklayout.c
@@ -1009,17 +1009,20 @@ static int __init nfs4blocklayout_init(void)
mnt,
NFS_PIPE_DIRNAME, 0, &path);
if (ret)
- goto out_remove;
+ goto out_putrpc;

bl_device_pipe = rpc_mkpipe(path.dentry, "blocklayout", NULL,
&bl_upcall_ops, 0);
+ path_put(&path);
if (IS_ERR(bl_device_pipe)) {
ret = PTR_ERR(bl_device_pipe);
- goto out_remove;
+ goto out_putrpc;
}
out:
return ret;

+out_putrpc:
+ rpc_put_mount();
out_remove:
pnfs_unregister_layoutdriver(&blocklayout_type);
out_stop:
@@ -1035,6 +1038,7 @@ static void __exit nfs4blocklayout_exit(void)
pnfs_unregister_layoutdriver(&blocklayout_type);
pnfsiod_stop();
rpc_unlink(bl_device_pipe);
+ rpc_put_mount();
}

MODULE_ALIAS("nfs-layouttype4-3");
--
1.7.4.1



2011-09-18 04:27:13

by Benny Halevy

[permalink] [raw]
Subject: Re: [PATCH] pnfsblock: add missing rpc_put_mount and path_put

We need to decide on a process here :)
If we would like to maintain a staging tree in front of Trond's
then to simplify merging and rebasing, fixes to code that's already
upstream, i.e. in linux-2.6 or already queued in nfs-2.6, that we decide
to send to Trond ahead of queue need to be queued in front of stuff in
the staging tree and the latter should be rebased on top of them.

Benny

On 2011-09-13 22:24, Jim Rees wrote:
> From: Peng Tao <[email protected]>
>
> Reported-by: Jeff Layton <[email protected]>
> Signed-off-by: Peng Tao <[email protected]>
> Signed-off-by: Jim Rees <[email protected]>
> ---
> fs/nfs/blocklayout/blocklayout.c | 8 ++++++--
> 1 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
> index 9675ef9..8f97578 100644
> --- a/fs/nfs/blocklayout/blocklayout.c
> +++ b/fs/nfs/blocklayout/blocklayout.c
> @@ -1009,17 +1009,20 @@ static int __init nfs4blocklayout_init(void)
> mnt,
> NFS_PIPE_DIRNAME, 0, &path);
> if (ret)
> - goto out_remove;
> + goto out_putrpc;
>
> bl_device_pipe = rpc_mkpipe(path.dentry, "blocklayout", NULL,
> &bl_upcall_ops, 0);
> + path_put(&path);
> if (IS_ERR(bl_device_pipe)) {
> ret = PTR_ERR(bl_device_pipe);
> - goto out_remove;
> + goto out_putrpc;
> }
> out:
> return ret;
>
> +out_putrpc:
> + rpc_put_mount();
> out_remove:
> pnfs_unregister_layoutdriver(&blocklayout_type);
> out_stop:
> @@ -1035,6 +1038,7 @@ static void __exit nfs4blocklayout_exit(void)
> pnfs_unregister_layoutdriver(&blocklayout_type);
> pnfsiod_stop();
> rpc_unlink(bl_device_pipe);
> + rpc_put_mount();
> }
>
> MODULE_ALIAS("nfs-layouttype4-3");