summaryrefslogtreecommitdiff
path: root/fs/ceph/msgpool.c
AgeCommit message (Collapse)AuthorFilesLines
2010-10-21ceph: factor out libceph from Ceph file systemYehuda Sadeh1-64/+0
This factors out protocol and low-level storage parts of ceph into a separate libceph module living in net/ceph and include/linux/ceph. This is mostly a matter of moving files around. However, a few key pieces of the interface change as well: - ceph_client becomes ceph_fs_client and ceph_client, where the latter captures the mon and osd clients, and the fs_client gets the mds client and file system specific pieces. - Mount option parsing and debugfs setup is correspondingly broken into two pieces. - The mon client gets a generic handler callback for otherwise unknown messages (mds map, in this case). - The basic supported/required feature bits can be expanded (and are by ceph_fs_client). No functional change, aside from some subtle error handling cases that got cleaned up in the refactoring process. Signed-off-by: Sage Weil <sage@newdream.net>
2010-05-18ceph: all allocation functions should get gfp_maskYehuda Sadeh1-2/+2
This is essential, as for the rados block device we'll need to run in different contexts that would need flags that are other than GFP_NOFS. Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net> Signed-off-by: Sage Weil <sage@newdream.net>
2010-05-18ceph: name msgpools; useful error messagesSage Weil1-4/+9
Signed-off-by: Sage Weil <sage@newdream.net>
2010-05-18ceph: simplify ceph_msg_newSage Weil1-2/+2
We only need to pass in front_len. Callers can attach any other payload pieces (middle, data) as they see fit. Signed-off-by: Sage Weil <sage@newdream.net>
2010-05-18ceph: make ceph_msg_new return NULL on failure; clean up, fix callersSage Weil1-11/+2
Returning ERR_PTR(-ENOMEM) is useless extra work. Return NULL on failure instead, and fix up the callers (about half of which were wrong anyway). Signed-off-by: Sage Weil <sage@newdream.net>
2010-05-18ceph: rewrite msgpool using mempool_tSage Weil1-145/+27
Since we don't need to maintain large pools of messages, we can just use the standard mempool_t. We maintain a msgpool 'wrapper' because we need the mempool_t* in the alloc function, and mempool gives us only pool_data. Signed-off-by: Sage Weil <sage@newdream.net>
2010-05-18ceph: update for removal of kref_setStephen Rothwell1-1/+1
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Sage Weil <sage@newdream.net>
2010-03-02ceph: reset front len on return to msgpool; BUG on mismatched front iovSage Weil1-0/+4
Reset msg front len when a message is returned to the pool: the caller may have changed it. BUG if we try to send a message with a hdr.front_len that doesn't match the front iov. Signed-off-by: Sage Weil <sage@newdream.net>
2009-12-23ceph: more informative msgpool errorsSage Weil1-1/+2
Signed-off-by: Sage Weil <sage@newdream.net>
2009-12-08ceph: use kref for ceph_msgSage Weil1-1/+1
Signed-off-by: Sage Weil <sage@newdream.net>
2009-10-16ceph: warn on allocation from msgpool with larger front_lenSage Weil1-3/+17
Pass the front_len we need when pulling a message off a msgpool, and WARN if it is greater than the pool's size. Then try to allocate a new message (to continue without failing). Signed-off-by: Sage Weil <sage@newdream.net>
2009-10-06ceph: message poolsSage Weil1-0/+167
The msgpool is a basic mempool_t-like structure to preallocate messages we expect to receive over the wire. This ensures we have the necessary memory preallocated to process replies to requests, or to process unsolicited messages from various servers. Signed-off-by: Sage Weil <sage@newdream.net>