aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/jfs/jfs_metapage.c31
-rw-r--r--fs/jfs/jfs_metapage.h1
2 files changed, 12 insertions, 20 deletions
diff --git a/fs/jfs/jfs_metapage.c b/fs/jfs/jfs_metapage.c
index 49ba7ff1bbb9..16a0922beb59 100644
--- a/fs/jfs/jfs_metapage.c
+++ b/fs/jfs/jfs_metapage.c
@@ -183,30 +183,23 @@ static inline void remove_metapage(struct page *page, struct metapage *mp)
183 183
184#endif 184#endif
185 185
186static void init_once(void *foo)
187{
188 struct metapage *mp = (struct metapage *)foo;
189
190 mp->lid = 0;
191 mp->lsn = 0;
192 mp->flag = 0;
193 mp->data = NULL;
194 mp->clsn = 0;
195 mp->log = NULL;
196 set_bit(META_free, &mp->flag);
197 init_waitqueue_head(&mp->wait);
198}
199
200static inline struct metapage *alloc_metapage(gfp_t gfp_mask) 186static inline struct metapage *alloc_metapage(gfp_t gfp_mask)
201{ 187{
202 return mempool_alloc(metapage_mempool, gfp_mask); 188 struct metapage *mp = mempool_alloc(metapage_mempool, gfp_mask);
189
190 if (mp) {
191 mp->lid = 0;
192 mp->lsn = 0;
193 mp->data = NULL;
194 mp->clsn = 0;
195 mp->log = NULL;
196 init_waitqueue_head(&mp->wait);
197 }
198 return mp;
203} 199}
204 200
205static inline void free_metapage(struct metapage *mp) 201static inline void free_metapage(struct metapage *mp)
206{ 202{
207 mp->flag = 0;
208 set_bit(META_free, &mp->flag);
209
210 mempool_free(mp, metapage_mempool); 203 mempool_free(mp, metapage_mempool);
211} 204}
212 205
@@ -216,7 +209,7 @@ int __init metapage_init(void)
216 * Allocate the metapage structures 209 * Allocate the metapage structures
217 */ 210 */
218 metapage_cache = kmem_cache_create("jfs_mp", sizeof(struct metapage), 211 metapage_cache = kmem_cache_create("jfs_mp", sizeof(struct metapage),
219 0, 0, init_once); 212 0, 0, NULL);
220 if (metapage_cache == NULL) 213 if (metapage_cache == NULL)
221 return -ENOMEM; 214 return -ENOMEM;
222 215
diff --git a/fs/jfs/jfs_metapage.h b/fs/jfs/jfs_metapage.h
index a78beda85f68..337e9e51ac06 100644
--- a/fs/jfs/jfs_metapage.h
+++ b/fs/jfs/jfs_metapage.h
@@ -48,7 +48,6 @@ struct metapage {
48 48
49/* metapage flag */ 49/* metapage flag */
50#define META_locked 0 50#define META_locked 0
51#define META_free 1
52#define META_dirty 2 51#define META_dirty 2
53#define META_sync 3 52#define META_sync 3
54#define META_discard 4 53#define META_discard 4