"A still-lame-but-less-lame option here would be to attempt the kmalloc
(with __GFP_NOWARN) and if it failed, fall back to vmalloc." says akpm
/- uninline frags
/- uninline string hash
- document data structures
-- audit all inline in kclient
+/- audit all inline in kclient
- document on-wire protocol
-- ceph_buffer fixes
+- ceph_buffer and vmalloc?
+- ceph_i_test
+- bit ops in messenger
bugs
- mislinked directory?
int ceph_buffer_alloc(struct ceph_buffer *b, int len, gfp_t gfp)
{
- if (len <= PAGE_SIZE) {
- b->vec.iov_base = kmalloc(len, gfp);
+ b->vec.iov_base = kmalloc(len, gfp | __GFP_NOWARN);
+ if (b->vec.iov_base) {
b->is_vmalloc = false;
} else {
b->vec.iov_base = __vmalloc(len, gfp, PAGE_KERNEL);