]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/gfs2/meta_io.c
Merge branch 'for-2.6.23' into merge
[linux-2.6-omap-h63xx.git] / fs / gfs2 / meta_io.c
index 0e34d9918973126c710c227bf35197bac57c30cc..8da343b34ae733de759c09cefa64e84b71a887c7 100644 (file)
@@ -282,8 +282,7 @@ void gfs2_attach_bufdata(struct gfs2_glock *gl, struct buffer_head *bh,
                return;
        }
 
-       bd = kmem_cache_alloc(gfs2_bufdata_cachep, GFP_NOFS | __GFP_NOFAIL),
-       memset(bd, 0, sizeof(struct gfs2_bufdata));
+       bd = kmem_cache_zalloc(gfs2_bufdata_cachep, GFP_NOFS | __GFP_NOFAIL),
        bd->bd_bh = bh;
        bd->bd_gl = gl;
 
@@ -388,12 +387,18 @@ void gfs2_meta_wipe(struct gfs2_inode *ip, u64 bstart, u32 blen)
 
                        if (test_clear_buffer_pinned(bh)) {
                                struct gfs2_trans *tr = current->journal_info;
+                               struct gfs2_inode *bh_ip =
+                                       GFS2_I(bh->b_page->mapping->host);
+
                                gfs2_log_lock(sdp);
                                list_del_init(&bd->bd_le.le_list);
                                gfs2_assert_warn(sdp, sdp->sd_log_num_buf);
                                sdp->sd_log_num_buf--;
                                gfs2_log_unlock(sdp);
-                               tr->tr_num_buf_rm++;
+                               if (bh_ip->i_inode.i_private != NULL)
+                                       tr->tr_num_databuf_rm++;
+                               else
+                                       tr->tr_num_buf_rm++;
                                brelse(bh);
                        }
                        if (bd) {