aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/gfs2/gfs2.h2
-rw-r--r--fs/gfs2/incore.h6
-rw-r--r--fs/gfs2/lops.c20
-rw-r--r--fs/gfs2/ops_address.c10
-rw-r--r--fs/gfs2/trans.c18
5 files changed, 24 insertions, 32 deletions
diff --git a/fs/gfs2/gfs2.h b/fs/gfs2/gfs2.h
index a5d118238466..6c53d080675c 100644
--- a/fs/gfs2/gfs2.h
+++ b/fs/gfs2/gfs2.h
@@ -45,8 +45,6 @@ enum {
45#define set_v2fp(file, fp) (file)->private_data = (fp) 45#define set_v2fp(file, fp) (file)->private_data = (fp)
46#define get_v2bd(bh) ((struct gfs2_bufdata *)(bh)->b_private) 46#define get_v2bd(bh) ((struct gfs2_bufdata *)(bh)->b_private)
47#define set_v2bd(bh, bd) (bh)->b_private = (bd) 47#define set_v2bd(bh, bd) (bh)->b_private = (bd)
48#define get_v2db(bh) ((struct gfs2_databuf *)(bh)->b_private)
49#define set_v2db(bh, db) (bh)->b_private = (db)
50 48
51#define get_transaction ((struct gfs2_trans *)(current->journal_info)) 49#define get_transaction ((struct gfs2_trans *)(current->journal_info))
52#define set_transaction(tr) (current->journal_info) = (tr) 50#define set_transaction(tr) (current->journal_info) = (tr)
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h
index 3ed0a7f26e45..3bc40ff5fdf9 100644
--- a/fs/gfs2/incore.h
+++ b/fs/gfs2/incore.h
@@ -25,7 +25,6 @@ struct gfs2_log_element;
25struct gfs2_bitmap; 25struct gfs2_bitmap;
26struct gfs2_rgrpd; 26struct gfs2_rgrpd;
27struct gfs2_bufdata; 27struct gfs2_bufdata;
28struct gfs2_databuf;
29struct gfs2_glock_operations; 28struct gfs2_glock_operations;
30struct gfs2_holder; 29struct gfs2_holder;
31struct gfs2_glock; 30struct gfs2_glock;
@@ -116,11 +115,6 @@ struct gfs2_bufdata {
116 struct list_head bd_ail_gl_list; 115 struct list_head bd_ail_gl_list;
117}; 116};
118 117
119struct gfs2_databuf {
120 struct gfs2_log_element db_le;
121 struct buffer_head *db_bh;
122};
123
124struct gfs2_glock_operations { 118struct gfs2_glock_operations {
125 void (*go_xmote_th) (struct gfs2_glock * gl, unsigned int state, 119 void (*go_xmote_th) (struct gfs2_glock * gl, unsigned int state,
126 int flags); 120 int flags);
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index d501e8224ed0..efb1087d0fa8 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -442,15 +442,15 @@ static void databuf_lo_before_commit(struct gfs2_sbd *sdp)
442{ 442{
443 struct list_head *head = &sdp->sd_log_le_databuf; 443 struct list_head *head = &sdp->sd_log_le_databuf;
444 LIST_HEAD(started); 444 LIST_HEAD(started);
445 struct gfs2_databuf *db; 445 struct gfs2_bufdata *bd;
446 struct buffer_head *bh; 446 struct buffer_head *bh;
447 447
448 while (!list_empty(head)) { 448 while (!list_empty(head)) {
449 db = list_entry(head->prev, struct gfs2_databuf, db_le.le_list); 449 bd = list_entry(head->prev, struct gfs2_bufdata, bd_le.le_list);
450 list_move(&db->db_le.le_list, &started); 450 list_move(&bd->bd_le.le_list, &started);
451 451
452 gfs2_log_lock(sdp); 452 gfs2_log_lock(sdp);
453 bh = db->db_bh; 453 bh = bd->bd_bh;
454 if (bh) { 454 if (bh) {
455 get_bh(bh); 455 get_bh(bh);
456 gfs2_log_unlock(sdp); 456 gfs2_log_unlock(sdp);
@@ -464,22 +464,22 @@ static void databuf_lo_before_commit(struct gfs2_sbd *sdp)
464 } 464 }
465 465
466 while (!list_empty(&started)) { 466 while (!list_empty(&started)) {
467 db = list_entry(started.next, struct gfs2_databuf, 467 bd = list_entry(started.next, struct gfs2_bufdata,
468 db_le.le_list); 468 bd_le.le_list);
469 list_del(&db->db_le.le_list); 469 list_del(&bd->bd_le.le_list);
470 sdp->sd_log_num_databuf--; 470 sdp->sd_log_num_databuf--;
471 471
472 gfs2_log_lock(sdp); 472 gfs2_log_lock(sdp);
473 bh = db->db_bh; 473 bh = bd->bd_bh;
474 if (bh) { 474 if (bh) {
475 set_v2db(bh, NULL); 475 set_v2bd(bh, NULL);
476 gfs2_log_unlock(sdp); 476 gfs2_log_unlock(sdp);
477 wait_on_buffer(bh); 477 wait_on_buffer(bh);
478 brelse(bh); 478 brelse(bh);
479 } else 479 } else
480 gfs2_log_unlock(sdp); 480 gfs2_log_unlock(sdp);
481 481
482 kfree(db); 482 kfree(bd);
483 } 483 }
484 484
485 gfs2_assert_warn(sdp, !sdp->sd_log_num_databuf); 485 gfs2_assert_warn(sdp, !sdp->sd_log_num_databuf);
diff --git a/fs/gfs2/ops_address.c b/fs/gfs2/ops_address.c
index d352b3528f5e..db66d3287550 100644
--- a/fs/gfs2/ops_address.c
+++ b/fs/gfs2/ops_address.c
@@ -429,13 +429,13 @@ static sector_t gfs2_bmap(struct address_space *mapping, sector_t lblock)
429 429
430static void discard_buffer(struct gfs2_sbd *sdp, struct buffer_head *bh) 430static void discard_buffer(struct gfs2_sbd *sdp, struct buffer_head *bh)
431{ 431{
432 struct gfs2_databuf *db; 432 struct gfs2_bufdata *bd;
433 433
434 gfs2_log_lock(sdp); 434 gfs2_log_lock(sdp);
435 db = get_v2db(bh); 435 bd = get_v2bd(bh);
436 if (db) { 436 if (bd) {
437 db->db_bh = NULL; 437 bd->bd_bh = NULL;
438 set_v2db(bh, NULL); 438 set_v2bd(bh, NULL);
439 gfs2_log_unlock(sdp); 439 gfs2_log_unlock(sdp);
440 brelse(bh); 440 brelse(bh);
441 } else 441 } else
diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
index a9df4a34ebad..b014591fa4a4 100644
--- a/fs/gfs2/trans.c
+++ b/fs/gfs2/trans.c
@@ -199,17 +199,17 @@ void gfs2_trans_add_rg(struct gfs2_rgrpd *rgd)
199 199
200void gfs2_trans_add_databuf(struct gfs2_sbd *sdp, struct buffer_head *bh) 200void gfs2_trans_add_databuf(struct gfs2_sbd *sdp, struct buffer_head *bh)
201{ 201{
202 struct gfs2_databuf *db; 202 struct gfs2_bufdata *bd;
203 203
204 db = get_v2db(bh); 204 bd = get_v2bd(bh);
205 if (!db) { 205 if (!bd) {
206 db = kmalloc(sizeof(struct gfs2_databuf), 206 bd = kmalloc(sizeof(struct gfs2_bufdata),
207 GFP_KERNEL | __GFP_NOFAIL); 207 GFP_NOFS | __GFP_NOFAIL);
208 lops_init_le(&db->db_le, &gfs2_databuf_lops); 208 lops_init_le(&bd->bd_le, &gfs2_databuf_lops);
209 get_bh(bh); 209 get_bh(bh);
210 db->db_bh = bh; 210 bd->bd_bh = bh;
211 set_v2db(bh, db); 211 set_v2bd(bh, bd);
212 lops_add(sdp, &db->db_le); 212 lops_add(sdp, &bd->bd_le);
213 } 213 }
214} 214}
215 215