060b08c66a3ff9be6982be6f4b0dea44c278a9bc
2 Copyright (C) 2010 by Ronnie Sahlberg <ronniesahlberg@gmail.com>
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as published by
6 the Free Software Foundation; either version 2.1 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program; if not, see <http://www.gnu.org/licenses/>.
18 * This is the lowlevel interface to access NFS resources.
19 * Through this interface you have access to the full gamut of nfs and nfs related
20 * protocol as well as the XDR encoded/decoded structures.
32 struct rpc_context
*rpc_init_context(void);
33 void rpc_destroy_context(struct rpc_context
*rpc
);
35 void rpc_set_auth(struct rpc_context
*rpc
, AUTH
*auth
);
37 int rpc_get_fd(struct rpc_context
*rpc
);
38 int rpc_which_events(struct rpc_context
*rpc
);
39 int rpc_service(struct rpc_context
*rpc
, int revents
);
40 char *rpc_get_error(struct rpc_context
*rpc
);
41 int rpc_queue_length(struct rpc_context
*rpc
);
44 #define RPC_STATUS_SUCCESS 0
45 #define RPC_STATUS_ERROR 1
46 #define RPC_STATUS_CANCEL 2
49 * Async connection to the tcp port at server:port.
51 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
52 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
54 * When the callback is invoked, status indicates the result:
55 * RPC_STATUS_SUCCESS : The tcp connection was successfully established.
57 * RPC_STATUS_ERROR : The connection failed to establish.
58 * data is the erro string.
59 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
62 int rpc_connect_async(struct rpc_context
*rpc
, const char *server
, int port
, rpc_cb cb
, void *private_data
);
64 * When disconnecting a connection in flight. All commands in flight will be called with the callback
65 * and status RPC_STATUS_ERROR. Data will be the error string for the disconnection.
67 int rpc_disconnect(struct rpc_context
*rpc
, char *error
);
75 * Call PORTMAPPER/NULL
77 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
78 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
80 * When the callback is invoked, status indicates the result:
81 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon.
83 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
84 * data is the error string.
85 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
88 int rpc_pmap_null_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
92 * Call PORTMAPPER/GETPORT.
94 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
95 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
97 * When the callback is invoked, status indicates the result:
98 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon.
99 * data is a (uint32_t *), containing the port returned.
100 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
101 * data is the error string.
102 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
105 int rpc_pmap_getport_async(struct rpc_context
*rpc
, int program
, int version
, int protocol
, rpc_cb cb
, void *private_data
);
108 * Call PORTMAPPER/SET
110 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
111 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
113 * When the callback is invoked, status indicates the result:
114 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon.
115 * data is a (uint32_t *), containing status
116 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
117 * data is the error string.
118 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
121 int rpc_pmap_set_async(struct rpc_context
*rpc
, int program
, int version
, int protocol
, int port
, rpc_cb cb
, void *private_data
);
124 * Call PORTMAPPER/UNSET
126 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
127 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
129 * When the callback is invoked, status indicates the result:
130 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon.
131 * data is a (uint32_t *), containing status
132 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
133 * data is the error string.
134 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
137 int rpc_pmap_unset_async(struct rpc_context
*rpc
, int program
, int version
, int protocol
, int port
, rpc_cb cb
, void *private_data
);
140 * Call PORTMAPPER/CALLIT.
142 * 0 : The connection was initiated. Once the connection establish finishes, the callback will be invoked.
143 * <0 : An error occured when trying to set up the connection. The callback will not be invoked.
145 * When the callback is invoked, status indicates the result:
146 * RPC_STATUS_SUCCESS : We got a successful response from the portmapper daemon
147 * data is a 'pmap_call_result' pointer.
148 * RPC_STATUS_ERROR : An error occured when trying to contact the portmapper.
149 * data is the error string.
150 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
153 int rpc_pmap_callit_async(struct rpc_context
*rpc
, int program
, int version
, int procedure
, const char *data
, int datalen
, rpc_cb cb
, void *private_data
);
158 char *mountstat3_to_str(int stat
);
159 int mountstat3_to_errno(int error
);
164 * 0 : The call was initiated. The callback will be invoked when the call completes.
165 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
167 * When the callback is invoked, status indicates the result:
168 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
170 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
171 * data is the error string.
172 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
175 int rpc_mount_null_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
180 * 0 : The call was initiated. The callback will be invoked when the call completes.
181 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
183 * When the callback is invoked, status indicates the result:
184 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
185 * data is union mountres3.
186 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
187 * data is the error string.
188 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
191 int rpc_mount_mnt_async(struct rpc_context
*rpc
, rpc_cb cb
, char *export
, void *private_data
);
196 * 0 : The call was initiated. The callback will be invoked when the call completes.
197 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
199 * When the callback is invoked, status indicates the result:
200 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
201 * data is a mountlist.
202 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
203 * data is the error string.
204 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
207 int rpc_mount_dump_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
212 * 0 : The call was initiated. The callback will be invoked when the call completes.
213 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
215 * When the callback is invoked, status indicates the result:
216 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
218 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
219 * data is the error string.
220 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
223 int rpc_mount_umnt_async(struct rpc_context
*rpc
, rpc_cb cb
, char *export
, void *private_data
);
228 * 0 : The call was initiated. The callback will be invoked when the call completes.
229 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
231 * When the callback is invoked, status indicates the result:
232 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
234 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
235 * data is the error string.
236 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
239 int rpc_mount_umntall_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
243 * NOTE: You must include 'libnfs-raw-mount.h' to get the definitions of the
244 * returned structures.
247 * 0 : The call was initiated. The callback will be invoked when the call completes.
248 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
250 * When the callback is invoked, status indicates the result:
251 * RPC_STATUS_SUCCESS : We got a successful response from the mount daemon.
252 * data is a pointer to an exports pointer:
253 * exports export = *(exports *)data;
254 * RPC_STATUS_ERROR : An error occured when trying to contact the mount daemon.
255 * data is the error string.
256 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
259 int rpc_mount_export_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
268 char *nfsstat3_to_str(int error
);
269 int nfsstat3_to_errno(int error
);
274 * 0 : The call was initiated. The callback will be invoked when the call completes.
275 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
277 * When the callback is invoked, status indicates the result:
278 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
280 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
281 * data is the error string.
282 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
285 int rpc_nfs_null_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
290 * 0 : The call was initiated. The callback will be invoked when the call completes.
291 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
293 * When the callback is invoked, status indicates the result:
294 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
295 * data is GETATTR3res
296 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
297 * data is the error string.
298 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
301 int rpc_nfs_getattr_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, void *private_data
);
306 * 0 : The call was initiated. The callback will be invoked when the call completes.
307 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
309 * When the callback is invoked, status indicates the result:
310 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
312 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
313 * data is the error string.
314 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
317 int rpc_nfs_lookup_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, char *name
, void *private_data
);
322 * 0 : The call was initiated. The callback will be invoked when the call completes.
323 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
325 * When the callback is invoked, status indicates the result:
326 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
328 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
329 * data is the error string.
330 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
333 int rpc_nfs_access_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, int access
, void *private_data
);
338 * 0 : The call was initiated. The callback will be invoked when the call completes.
339 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
341 * When the callback is invoked, status indicates the result:
342 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
344 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
345 * data is the error string.
346 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
349 int rpc_nfs_read_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, uint64_t offset
, uint64_t count
, void *private_data
);
354 * 0 : The call was initiated. The callback will be invoked when the call completes.
355 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
357 * When the callback is invoked, status indicates the result:
358 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
359 * data is WRITE3res *
360 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
361 * data is the error string.
362 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
365 int rpc_nfs_write_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, char *buf
, uint64_t offset
, uint64_t count
, int stable_how
, void *private_data
);
370 * 0 : The call was initiated. The callback will be invoked when the call completes.
371 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
373 * When the callback is invoked, status indicates the result:
374 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
375 * data is COMMIT3res *
376 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
377 * data is the error string.
378 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
381 int rpc_nfs_commit_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, void *private_data
);
387 * 0 : The call was initiated. The callback will be invoked when the call completes.
388 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
390 * When the callback is invoked, status indicates the result:
391 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
392 * data is SETATTR3res *
393 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
394 * data is the error string.
395 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
399 int rpc_nfs_setattr_async(struct rpc_context
*rpc
, rpc_cb cb
, struct SETATTR3args
*args
, void *private_data
);
406 * 0 : The call was initiated. The callback will be invoked when the call completes.
407 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
409 * When the callback is invoked, status indicates the result:
410 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
411 * data is MKDIR3res *
412 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
413 * data is the error string.
414 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
418 int rpc_nfs_mkdir_async(struct rpc_context
*rpc
, rpc_cb cb
, struct MKDIR3args
*args
, void *private_data
);
427 * 0 : The call was initiated. The callback will be invoked when the call completes.
428 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
430 * When the callback is invoked, status indicates the result:
431 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
432 * data is RMDIR3res *
433 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
434 * data is the error string.
435 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
438 int rpc_nfs_rmdir_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, char *dir
, void *private_data
);
446 * 0 : The call was initiated. The callback will be invoked when the call completes.
447 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
449 * When the callback is invoked, status indicates the result:
450 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
451 * data is CREATE3res *
452 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
453 * data is the error string.
454 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
458 int rpc_nfs_create_async(struct rpc_context
*rpc
, rpc_cb cb
, struct CREATE3args
*args
, void *private_data
);
464 * 0 : The call was initiated. The callback will be invoked when the call completes.
465 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
467 * When the callback is invoked, status indicates the result:
468 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
469 * data is MKNOD3res *
470 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
471 * data is the error string.
472 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
475 int rpc_nfs_mknod_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, char *file
, int mode
, int major
, int minor
, void *private_data
);
481 * 0 : The call was initiated. The callback will be invoked when the call completes.
482 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
484 * When the callback is invoked, status indicates the result:
485 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
486 * data is REMOVE3res *
487 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
488 * data is the error string.
489 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
492 int rpc_nfs_remove_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, char *name
, void *private_data
);
499 * 0 : The call was initiated. The callback will be invoked when the call completes.
500 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
502 * When the callback is invoked, status indicates the result:
503 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
504 * data is READDIR3res *
505 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
506 * data is the error string.
507 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
510 int rpc_nfs_readdir_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, uint64_t cookie
, char *cookieverf
, int count
, void *private_data
);
513 * Call NFS/READDIRPLUS
515 * 0 : The call was initiated. The callback will be invoked when the call completes.
516 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
518 * When the callback is invoked, status indicates the result:
519 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
520 * data is READDIRPLUS3res *
521 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
522 * data is the error string.
523 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
526 int rpc_nfs_readdirplus_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, uint64_t cookie
, char *cookieverf
, int count
, void *private_data
);
531 * 0 : The call was initiated. The callback will be invoked when the call completes.
532 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
534 * When the callback is invoked, status indicates the result:
535 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
537 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
538 * data is the error string.
539 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
542 int rpc_nfs_fsstat_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, void *private_data
);
549 * 0 : The call was initiated. The callback will be invoked when the call completes.
550 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
552 * When the callback is invoked, status indicates the result:
553 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
555 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
556 * data is the error string.
557 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
560 int rpc_nfs_fsinfo_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, void *private_data
);
567 * 0 : The call was initiated. The callback will be invoked when the call completes.
568 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
570 * When the callback is invoked, status indicates the result:
571 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
572 * data is READLINK3res *
573 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
574 * data is the error string.
575 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
578 struct READLINK3args
;
579 int rpc_nfs_readlink_async(struct rpc_context
*rpc
, rpc_cb cb
, struct READLINK3args
*args
, void *private_data
);
586 * 0 : The call was initiated. The callback will be invoked when the call completes.
587 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
589 * When the callback is invoked, status indicates the result:
590 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
591 * data is SYMLINK3res *
592 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
593 * data is the error string.
594 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
598 int rpc_nfs_symlink_async(struct rpc_context
*rpc
, rpc_cb cb
, struct SYMLINK3args
*args
, void *private_data
);
604 * 0 : The call was initiated. The callback will be invoked when the call completes.
605 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
607 * When the callback is invoked, status indicates the result:
608 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
609 * data is RENAME3res *
610 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
611 * data is the error string.
612 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
615 int rpc_nfs_rename_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*olddir
, char *oldname
, struct nfs_fh3
*newdir
, char *newname
, void *private_data
);
622 * 0 : The call was initiated. The callback will be invoked when the call completes.
623 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
625 * When the callback is invoked, status indicates the result:
626 * RPC_STATUS_SUCCESS : We got a successful response from the nfs daemon.
628 * RPC_STATUS_ERROR : An error occured when trying to contact the nfs daemon.
629 * data is the error string.
630 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
633 int rpc_nfs_link_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*file
, struct nfs_fh3
*newdir
, char *newname
, void *private_data
);
641 char *rquotastat_to_str(int error
);
642 int rquotastat_to_errno(int error
);
647 * 0 : The call was initiated. The callback will be invoked when the call completes.
648 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
650 * When the callback is invoked, status indicates the result:
651 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
653 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
654 * data is the error string.
655 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
658 int rpc_rquota1_null_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
661 * Call RQUOTA1/GETQUOTA
663 * 0 : The call was initiated. The callback will be invoked when the call completes.
664 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
666 * When the callback is invoked, status indicates the result:
667 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
668 * data is a RQUOTA1res structure.
669 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
670 * data is the error string.
671 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
674 int rpc_rquota1_getquota_async(struct rpc_context
*rpc
, rpc_cb cb
, char *export
, int uid
, void *private_data
);
677 * Call RQUOTA1/GETACTIVEQUOTA
679 * 0 : The call was initiated. The callback will be invoked when the call completes.
680 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
682 * When the callback is invoked, status indicates the result:
683 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
684 * data is a RQUOTA1res structure.
685 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
686 * data is the error string.
687 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
690 int rpc_rquota1_getactivequota_async(struct rpc_context
*rpc
, rpc_cb cb
, char *export
, int uid
, void *private_data
);
698 * 0 : The call was initiated. The callback will be invoked when the call completes.
699 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
701 * When the callback is invoked, status indicates the result:
702 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
704 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
705 * data is the error string.
706 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
709 int rpc_rquota2_null_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
712 * Call RQUOTA2/GETQUOTA
714 * 0 : The call was initiated. The callback will be invoked when the call completes.
715 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
717 * When the callback is invoked, status indicates the result:
718 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
719 * data is a RQUOTA1res structure.
720 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
721 * data is the error string.
722 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
725 int rpc_rquota2_getquota_async(struct rpc_context
*rpc
, rpc_cb cb
, char *export
, int type
, int uid
, void *private_data
);
728 * Call RQUOTA2/GETACTIVEQUOTA
730 * 0 : The call was initiated. The callback will be invoked when the call completes.
731 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
733 * When the callback is invoked, status indicates the result:
734 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
735 * data is a RQUOTA1res structure.
736 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
737 * data is the error string.
738 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
741 int rpc_rquota2_getactivequota_async(struct rpc_context
*rpc
, rpc_cb cb
, char *export
, int type
, int uid
, void *private_data
);
747 * Call the NULL procedure for the NFSACL
750 * 0 : The call was initiated. The callback will be invoked when the call completes.
751 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
753 * When the callback is invoked, status indicates the result:
754 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
756 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
757 * data is the error string.
758 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
761 int rpc_nfsacl_null_async(struct rpc_context
*rpc
, rpc_cb cb
, void *private_data
);
767 * 0 : The call was initiated. The callback will be invoked when the call completes.
768 * <0 : An error occured when trying to set up the call. The callback will not be invoked.
770 * When the callback is invoked, status indicates the result:
771 * RPC_STATUS_SUCCESS : We got a successful response from the rquota daemon.
772 * data is a GETACL3res pointer
773 * RPC_STATUS_ERROR : An error occured when trying to contact the rquota daemon.
774 * data is the error string.
775 * RPC_STATUS_CANCEL : The connection attempt was aborted before it could complete.
778 int rpc_nfsacl_getacl_async(struct rpc_context
*rpc
, rpc_cb cb
, struct nfs_fh3
*fh
, uint32_t mask
, void *private_data
);