Commit | Line | Data |
---|---|---|
8fc91fd8 SW |
1 | #ifndef _FS_CEPH_MSGPOOL |
2 | #define _FS_CEPH_MSGPOOL | |
3 | ||
d52f847a | 4 | #include <linux/mempool.h> |
8fc91fd8 SW |
5 | |
6 | /* | |
7 | * we use memory pools for preallocating messages we may receive, to | |
8 | * avoid unexpected OOM conditions. | |
9 | */ | |
10 | struct ceph_msgpool { | |
4f48280e | 11 | const char *name; |
d52f847a | 12 | mempool_t *pool; |
d50b409f | 13 | int type; /* preallocated message type */ |
8fc91fd8 | 14 | int front_len; /* preallocated payload size */ |
8fc91fd8 SW |
15 | }; |
16 | ||
d50b409f | 17 | extern int ceph_msgpool_init(struct ceph_msgpool *pool, int type, |
4f48280e SW |
18 | int front_len, int size, bool blocking, |
19 | const char *name); | |
8fc91fd8 | 20 | extern void ceph_msgpool_destroy(struct ceph_msgpool *pool); |
8f3bc053 SW |
21 | extern struct ceph_msg *ceph_msgpool_get(struct ceph_msgpool *, |
22 | int front_len); | |
8fc91fd8 SW |
23 | extern void ceph_msgpool_put(struct ceph_msgpool *, struct ceph_msg *); |
24 | ||
25 | #endif |