diff options
author | Zheng Liu <wenqing.lz@taobao.com> | 2013-05-28 13:27:11 +0200 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2013-05-28 13:27:11 +0200 |
commit | 5d9cf9c6254ddc551fb51072f59dfae60e579736 (patch) | |
tree | 75d7684a3a160406ad8c4247e0b260f57d7c80f0 | |
parent | ext4: make punch hole code path work with bigalloc (diff) | |
download | linux-5d9cf9c6254ddc551fb51072f59dfae60e579736.tar.xz linux-5d9cf9c6254ddc551fb51072f59dfae60e579736.zip |
jbd2: use kmem_cache_zalloc for allocating journal head
This commit tries to use kmem_cache_zalloc instead of kmem_cache_alloc/
memset when a new journal head is alloctated.
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Cc: "Theodore Ts'o" <tytso@mit.edu>
-rw-r--r-- | fs/jbd2/journal.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c index 95457576e434..3cdd285df204 100644 --- a/fs/jbd2/journal.c +++ b/fs/jbd2/journal.c @@ -2325,13 +2325,13 @@ static struct journal_head *journal_alloc_journal_head(void) #ifdef CONFIG_JBD2_DEBUG atomic_inc(&nr_journal_heads); #endif - ret = kmem_cache_alloc(jbd2_journal_head_cache, GFP_NOFS); + ret = kmem_cache_zalloc(jbd2_journal_head_cache, GFP_NOFS); if (!ret) { jbd_debug(1, "out of memory for journal_head\n"); pr_notice_ratelimited("ENOMEM in %s, retrying.\n", __func__); while (!ret) { yield(); - ret = kmem_cache_alloc(jbd2_journal_head_cache, GFP_NOFS); + ret = kmem_cache_zalloc(jbd2_journal_head_cache, GFP_NOFS); } } return ret; @@ -2393,10 +2393,8 @@ struct journal_head *jbd2_journal_add_journal_head(struct buffer_head *bh) struct journal_head *new_jh = NULL; repeat: - if (!buffer_jbd(bh)) { + if (!buffer_jbd(bh)) new_jh = journal_alloc_journal_head(); - memset(new_jh, 0, sizeof(*new_jh)); - } jbd_lock_bh_journal_head(bh); if (buffer_jbd(bh)) { |