nfsiod.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  * linux/include/linux/nfsiod.h
  3.  *
  4.  * Declarations for asynchronous NFS RPC calls.
  5.  *
  6.  */
  7. #ifndef _LINUX_NFSIOD_H
  8. #define _LINUX_NFSIOD_H
  9. #include <linux/rpcsock.h>
  10. #include <linux/nfs_fs.h>
  11. #ifdef __KERNEL__
  12. /*
  13.  * This is the callback handler for nfsiod requests.
  14.  * Note that the callback procedure must NOT sleep.
  15.  */
  16. struct nfsiod_req;
  17. typedef int (*nfsiod_callback_t)(int result, struct nfsiod_req *);
  18. /*
  19.  * This is the nfsiod request struct.
  20.  */
  21. struct nfsiod_req {
  22. struct nfsiod_req * rq_next;
  23. struct nfsiod_req * rq_prev;
  24. wait_queue_head_t rq_wait;
  25. struct rpc_ioreq rq_rpcreq;
  26. nfsiod_callback_t rq_callback;
  27. struct nfs_server * rq_server;
  28. struct inode * rq_inode;
  29. struct page * rq_page;
  30. /* user creds */
  31. uid_t rq_fsuid;
  32. gid_t rq_fsgid;
  33. int rq_groups[NGROUPS];
  34. /* retry handling */
  35. int rq_retries;
  36. };
  37. struct nfsiod_req * nfsiod_reserve(struct nfs_server *);
  38. void nfsiod_release(struct nfsiod_req *);
  39. void nfsiod_enqueue(struct nfsiod_req *);
  40. int nfsiod(void);
  41. #endif /* __KERNEL__ */
  42. #endif /* _LINUX_NFSIOD_H */