pnfsblock: add missing rpc_put_mount and path_put
Peng Tao [Fri, 23 Sep 2011 01:50:11 +0000 (21:50 -0400)]
commit 760383f1ee4d14b0e0bdf0cddee648d9b8633429 upstream.

Reviewed-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Peng Tao <peng_tao@emc.com>
Signed-off-by: Jim Rees <rees@umich.edu>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

fs/nfs/blocklayout/blocklayout.c

index d2432f0..5d1b939 100644 (file)
@@ -993,17 +993,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);
        return ret;
@@ -1016,6 +1019,7 @@ static void __exit nfs4blocklayout_exit(void)
 
        pnfs_unregister_layoutdriver(&blocklayout_type);
        rpc_unlink(bl_device_pipe);
+       rpc_put_mount();
 }
 
 MODULE_ALIAS("nfs-layouttype4-3");