diff options
-rw-r--r-- | fs/jfs/jfs_metapage.c | 31 | ||||
-rw-r--r-- | fs/jfs/jfs_metapage.h | 1 |
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 | ||
186 | static 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 | |||
200 | static inline struct metapage *alloc_metapage(gfp_t gfp_mask) | 186 | static 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 | ||
205 | static inline void free_metapage(struct metapage *mp) | 201 | static 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 |