aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/blocklayout/blocklayout.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfs/blocklayout/blocklayout.c')
-rw-r--r--fs/nfs/blocklayout/blocklayout.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
index 48cfac31f64c..848660fd58c4 100644
--- a/fs/nfs/blocklayout/blocklayout.c
+++ b/fs/nfs/blocklayout/blocklayout.c
@@ -46,7 +46,7 @@ MODULE_LICENSE("GPL");
46MODULE_AUTHOR("Andy Adamson <andros@citi.umich.edu>"); 46MODULE_AUTHOR("Andy Adamson <andros@citi.umich.edu>");
47MODULE_DESCRIPTION("The NFSv4.1 pNFS Block layout driver"); 47MODULE_DESCRIPTION("The NFSv4.1 pNFS Block layout driver");
48 48
49struct dentry *bl_device_pipe; 49struct rpc_pipe *bl_device_pipe;
50wait_queue_head_t bl_wq; 50wait_queue_head_t bl_wq;
51 51
52static void print_page(struct page *page) 52static void print_page(struct page *page)
@@ -1051,16 +1051,23 @@ static int __init nfs4blocklayout_init(void)
1051 if (ret) 1051 if (ret)
1052 goto out_putrpc; 1052 goto out_putrpc;
1053 1053
1054 bl_device_pipe = rpc_mkpipe(path.dentry, "blocklayout", NULL, 1054 bl_device_pipe = rpc_mkpipe_data(&bl_upcall_ops, 0);
1055 &bl_upcall_ops, 0);
1056 path_put(&path); 1055 path_put(&path);
1057 if (IS_ERR(bl_device_pipe)) { 1056 if (IS_ERR(bl_device_pipe)) {
1058 ret = PTR_ERR(bl_device_pipe); 1057 ret = PTR_ERR(bl_device_pipe);
1059 goto out_putrpc; 1058 goto out_putrpc;
1060 } 1059 }
1060 bl_device_pipe->dentry = rpc_mkpipe_dentry(path.dentry, "blocklayout",
1061 NULL, bl_device_pipe);
1062 if (IS_ERR(bl_device_pipe->dentry)) {
1063 ret = PTR_ERR(bl_device_pipe->dentry);
1064 goto out_destroy_pipe;
1065 }
1061out: 1066out:
1062 return ret; 1067 return ret;
1063 1068
1069out_destroy_pipe:
1070 rpc_destroy_pipe_data(bl_device_pipe);
1064out_putrpc: 1071out_putrpc:
1065 rpc_put_mount(); 1072 rpc_put_mount();
1066out_remove: 1073out_remove:
@@ -1074,7 +1081,8 @@ static void __exit nfs4blocklayout_exit(void)
1074 __func__); 1081 __func__);
1075 1082
1076 pnfs_unregister_layoutdriver(&blocklayout_type); 1083 pnfs_unregister_layoutdriver(&blocklayout_type);
1077 rpc_unlink(bl_device_pipe); 1084 rpc_unlink(bl_device_pipe->dentry);
1085 rpc_destroy_pipe_data(bl_device_pipe);
1078 rpc_put_mount(); 1086 rpc_put_mount();
1079} 1087}
1080 1088