Lines Matching +full:sig +full:- +full:dir
43 *p++ = cpu_to_be32(b->type); in nfs4_encode_simple()
44 *p++ = cpu_to_be32(b->simple.nr_sigs); in nfs4_encode_simple()
45 for (i = 0; i < b->simple.nr_sigs; i++) { in nfs4_encode_simple()
46 p = xdr_encode_hyper(p, b->simple.sigs[i].offset); in nfs4_encode_simple()
47 p = xdr_encode_opaque(p, b->simple.sigs[i].sig, in nfs4_encode_simple()
48 b->simple.sigs[i].sig_len); in nfs4_encode_simple()
56 struct net *net = server->nfs_client->cl_net; in bl_resolve_deviceid()
58 struct bl_dev_msg *reply = &nn->bl_mount_reply; in bl_resolve_deviceid()
68 mutex_lock(&nn->bl_mutex); in bl_resolve_deviceid()
69 bl_pipe_msg.bl_wq = &nn->bl_wq; in bl_resolve_deviceid()
71 b->simple.len += 4; /* single volume */ in bl_resolve_deviceid()
72 if (b->simple.len > PAGE_SIZE) in bl_resolve_deviceid()
76 msg->len = sizeof(*bl_msg) + b->simple.len; in bl_resolve_deviceid()
77 msg->data = kzalloc(msg->len, gfp_mask); in bl_resolve_deviceid()
78 if (!msg->data) in bl_resolve_deviceid()
81 bl_msg = msg->data; in bl_resolve_deviceid()
82 bl_msg->type = BL_DEVICE_MOUNT; in bl_resolve_deviceid()
83 bl_msg->totallen = b->simple.len; in bl_resolve_deviceid()
84 nfs4_encode_simple(msg->data + sizeof(*bl_msg), b); in bl_resolve_deviceid()
87 add_wait_queue(&nn->bl_wq, &wq); in bl_resolve_deviceid()
88 rc = rpc_queue_upcall(nn->bl_device_pipe, msg); in bl_resolve_deviceid()
90 remove_wait_queue(&nn->bl_wq, &wq); in bl_resolve_deviceid()
96 remove_wait_queue(&nn->bl_wq, &wq); in bl_resolve_deviceid()
98 if (reply->status != BL_DEVICE_REQUEST_PROC) { in bl_resolve_deviceid()
100 __func__, reply->status); in bl_resolve_deviceid()
104 dev = MKDEV(reply->major, reply->minor); in bl_resolve_deviceid()
106 kfree(msg->data); in bl_resolve_deviceid()
108 mutex_unlock(&nn->bl_mutex); in bl_resolve_deviceid()
115 struct nfs_net *nn = net_generic(file_inode(filp)->i_sb->s_fs_info, in bl_pipe_downcall()
119 return -EINVAL; in bl_pipe_downcall()
121 if (copy_from_user(&nn->bl_mount_reply, src, mlen) != 0) in bl_pipe_downcall()
122 return -EFAULT; in bl_pipe_downcall()
124 wake_up(&nn->bl_wq); in bl_pipe_downcall()
134 if (msg->errno >= 0) in bl_pipe_destroy_msg()
136 wake_up(bl_pipe_msg->bl_wq); in bl_pipe_destroy_msg()
148 struct dentry *dir, *dentry; in nfs4blocklayout_register_sb() local
150 dir = rpc_d_lookup_sb(sb, NFS_PIPE_DIRNAME); in nfs4blocklayout_register_sb()
151 if (dir == NULL) in nfs4blocklayout_register_sb()
152 return ERR_PTR(-ENOENT); in nfs4blocklayout_register_sb()
153 dentry = rpc_mkpipe_dentry(dir, "blocklayout", NULL, pipe); in nfs4blocklayout_register_sb()
154 dput(dir); in nfs4blocklayout_register_sb()
161 if (pipe->dentry) in nfs4blocklayout_unregister_sb()
162 rpc_unlink(pipe->dentry); in nfs4blocklayout_unregister_sb()
169 struct net *net = sb->s_fs_info; in rpc_pipefs_event()
177 if (nn->bl_device_pipe == NULL) { in rpc_pipefs_event()
184 dentry = nfs4blocklayout_register_sb(sb, nn->bl_device_pipe); in rpc_pipefs_event()
189 nn->bl_device_pipe->dentry = dentry; in rpc_pipefs_event()
192 if (nn->bl_device_pipe->dentry) in rpc_pipefs_event()
193 nfs4blocklayout_unregister_sb(sb, nn->bl_device_pipe); in rpc_pipefs_event()
196 ret = -ENOTSUPP; in rpc_pipefs_event()
238 mutex_init(&nn->bl_mutex); in nfs4blocklayout_net_init()
239 init_waitqueue_head(&nn->bl_wq); in nfs4blocklayout_net_init()
240 nn->bl_device_pipe = rpc_mkpipe_data(&bl_upcall_ops, 0); in nfs4blocklayout_net_init()
241 if (IS_ERR(nn->bl_device_pipe)) in nfs4blocklayout_net_init()
242 return PTR_ERR(nn->bl_device_pipe); in nfs4blocklayout_net_init()
243 dentry = nfs4blocklayout_register_net(net, nn->bl_device_pipe); in nfs4blocklayout_net_init()
245 rpc_destroy_pipe_data(nn->bl_device_pipe); in nfs4blocklayout_net_init()
248 nn->bl_device_pipe->dentry = dentry; in nfs4blocklayout_net_init()
256 nfs4blocklayout_unregister_net(net, nn->bl_device_pipe); in nfs4blocklayout_net_exit()
257 rpc_destroy_pipe_data(nn->bl_device_pipe); in nfs4blocklayout_net_exit()
258 nn->bl_device_pipe = NULL; in nfs4blocklayout_net_exit()