aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorMingming Cao <cmm@us.ibm.com>2007-10-16 18:38:25 -0400
committerTheodore Ts'o <tytso@mit.edu>2007-10-17 18:49:56 -0400
commitc089d490dfbf53bc0893dc9ef57cf3ee6448314d (patch)
tree8faffea3bdcfdd48ce175ac92d5088ced4f1c969 /include/linux
parentd85714d81cc0408daddb68c10f7fd69eafe7c213 (diff)
JBD: JBD slab allocation cleanups
JBD: Replace slab allocations with page allocations JBD allocate memory for committed_data and frozen_data from slab. However JBD should not pass slab pages down to the block layer. Use page allocator pages instead. This will also prepare JBD for the large blocksize patchset. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/jbd.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/include/linux/jbd.h b/include/linux/jbd.h
index 72f522372924..1db3b684f557 100644
--- a/include/linux/jbd.h
+++ b/include/linux/jbd.h
@@ -73,14 +73,21 @@ extern int journal_enable_debug;
73#endif 73#endif
74 74
75extern void * __jbd_kmalloc (const char *where, size_t size, gfp_t flags, int retry); 75extern void * __jbd_kmalloc (const char *where, size_t size, gfp_t flags, int retry);
76extern void * jbd_slab_alloc(size_t size, gfp_t flags);
77extern void jbd_slab_free(void *ptr, size_t size);
78
79#define jbd_kmalloc(size, flags) \ 76#define jbd_kmalloc(size, flags) \
80 __jbd_kmalloc(__FUNCTION__, (size), (flags), journal_oom_retry) 77 __jbd_kmalloc(__FUNCTION__, (size), (flags), journal_oom_retry)
81#define jbd_rep_kmalloc(size, flags) \ 78#define jbd_rep_kmalloc(size, flags) \
82 __jbd_kmalloc(__FUNCTION__, (size), (flags), 1) 79 __jbd_kmalloc(__FUNCTION__, (size), (flags), 1)
83 80
81static inline void *jbd_alloc(size_t size, gfp_t flags)
82{
83 return (void *)__get_free_pages(flags, get_order(size));
84}
85
86static inline void jbd_free(void *ptr, size_t size)
87{
88 free_pages((unsigned long)ptr, get_order(size));
89};
90
84#define JFS_MIN_JOURNAL_BLOCKS 1024 91#define JFS_MIN_JOURNAL_BLOCKS 1024
85 92
86#ifdef __KERNEL__ 93#ifdef __KERNEL__