Lines Matching +full:sig +full:- +full:dir

42 	*p++ = cpu_to_be32(b->type);  in nfs4_encode_simple()
43 *p++ = cpu_to_be32(b->simple.nr_sigs); in nfs4_encode_simple()
44 for (i = 0; i < b->simple.nr_sigs; i++) { in nfs4_encode_simple()
45 p = xdr_encode_hyper(p, b->simple.sigs[i].offset); in nfs4_encode_simple()
46 p = xdr_encode_opaque(p, b->simple.sigs[i].sig, in nfs4_encode_simple()
47 b->simple.sigs[i].sig_len); in nfs4_encode_simple()
55 struct net *net = server->nfs_client->cl_net; in bl_resolve_deviceid()
57 struct bl_dev_msg *reply = &nn->bl_mount_reply; in bl_resolve_deviceid()
67 mutex_lock(&nn->bl_mutex); in bl_resolve_deviceid()
68 bl_pipe_msg.bl_wq = &nn->bl_wq; in bl_resolve_deviceid()
70 b->simple.len += 4; /* single volume */ in bl_resolve_deviceid()
71 if (b->simple.len > PAGE_SIZE) in bl_resolve_deviceid()
75 msg->len = sizeof(*bl_msg) + b->simple.len; in bl_resolve_deviceid()
76 msg->data = kzalloc(msg->len, gfp_mask); in bl_resolve_deviceid()
77 if (!msg->data) in bl_resolve_deviceid()
80 bl_msg = msg->data; in bl_resolve_deviceid()
81 bl_msg->type = BL_DEVICE_MOUNT; in bl_resolve_deviceid()
82 bl_msg->totallen = b->simple.len; in bl_resolve_deviceid()
83 nfs4_encode_simple(msg->data + sizeof(*bl_msg), b); in bl_resolve_deviceid()
86 add_wait_queue(&nn->bl_wq, &wq); in bl_resolve_deviceid()
87 rc = rpc_queue_upcall(nn->bl_device_pipe, msg); in bl_resolve_deviceid()
89 remove_wait_queue(&nn->bl_wq, &wq); in bl_resolve_deviceid()
95 remove_wait_queue(&nn->bl_wq, &wq); in bl_resolve_deviceid()
97 if (reply->status != BL_DEVICE_REQUEST_PROC) { in bl_resolve_deviceid()
99 __func__, reply->status); in bl_resolve_deviceid()
103 dev = MKDEV(reply->major, reply->minor); in bl_resolve_deviceid()
105 kfree(msg->data); in bl_resolve_deviceid()
107 mutex_unlock(&nn->bl_mutex); in bl_resolve_deviceid()
114 struct nfs_net *nn = net_generic(file_inode(filp)->i_sb->s_fs_info, in bl_pipe_downcall()
118 return -EINVAL; in bl_pipe_downcall()
120 if (copy_from_user(&nn->bl_mount_reply, src, mlen) != 0) in bl_pipe_downcall()
121 return -EFAULT; in bl_pipe_downcall()
123 wake_up(&nn->bl_wq); in bl_pipe_downcall()
133 if (msg->errno >= 0) in bl_pipe_destroy_msg()
135 wake_up(bl_pipe_msg->bl_wq); in bl_pipe_destroy_msg()
147 struct dentry *dir, *dentry; in nfs4blocklayout_register_sb() local
149 dir = rpc_d_lookup_sb(sb, NFS_PIPE_DIRNAME); in nfs4blocklayout_register_sb()
150 if (dir == NULL) in nfs4blocklayout_register_sb()
151 return ERR_PTR(-ENOENT); in nfs4blocklayout_register_sb()
152 dentry = rpc_mkpipe_dentry(dir, "blocklayout", NULL, pipe); in nfs4blocklayout_register_sb()
153 dput(dir); in nfs4blocklayout_register_sb()
160 if (pipe->dentry) in nfs4blocklayout_unregister_sb()
161 rpc_unlink(pipe->dentry); in nfs4blocklayout_unregister_sb()
168 struct net *net = sb->s_fs_info; in rpc_pipefs_event()
176 if (nn->bl_device_pipe == NULL) { in rpc_pipefs_event()
183 dentry = nfs4blocklayout_register_sb(sb, nn->bl_device_pipe); in rpc_pipefs_event()
188 nn->bl_device_pipe->dentry = dentry; in rpc_pipefs_event()
191 if (nn->bl_device_pipe->dentry) in rpc_pipefs_event()
192 nfs4blocklayout_unregister_sb(sb, nn->bl_device_pipe); in rpc_pipefs_event()
195 ret = -ENOTSUPP; in rpc_pipefs_event()
237 mutex_init(&nn->bl_mutex); in nfs4blocklayout_net_init()
238 init_waitqueue_head(&nn->bl_wq); in nfs4blocklayout_net_init()
239 nn->bl_device_pipe = rpc_mkpipe_data(&bl_upcall_ops, 0); in nfs4blocklayout_net_init()
240 if (IS_ERR(nn->bl_device_pipe)) in nfs4blocklayout_net_init()
241 return PTR_ERR(nn->bl_device_pipe); in nfs4blocklayout_net_init()
242 dentry = nfs4blocklayout_register_net(net, nn->bl_device_pipe); in nfs4blocklayout_net_init()
244 rpc_destroy_pipe_data(nn->bl_device_pipe); in nfs4blocklayout_net_init()
247 nn->bl_device_pipe->dentry = dentry; in nfs4blocklayout_net_init()
255 nfs4blocklayout_unregister_net(net, nn->bl_device_pipe); in nfs4blocklayout_net_exit()
256 rpc_destroy_pipe_data(nn->bl_device_pipe); in nfs4blocklayout_net_exit()
257 nn->bl_device_pipe = NULL; in nfs4blocklayout_net_exit()