diff options
Diffstat (limited to 'fs/gfs2/lops.c')
-rw-r--r-- | fs/gfs2/lops.c | 30 |
1 files changed, 14 insertions, 16 deletions
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c index dd41863810d7..23be00141901 100644 --- a/fs/gfs2/lops.c +++ b/fs/gfs2/lops.c | |||
@@ -177,7 +177,7 @@ static void buf_lo_after_commit(struct gfs2_sbd *sdp, struct gfs2_ail *ai) | |||
177 | static void buf_lo_before_scan(struct gfs2_jdesc *jd, | 177 | static void buf_lo_before_scan(struct gfs2_jdesc *jd, |
178 | struct gfs2_log_header *head, int pass) | 178 | struct gfs2_log_header *head, int pass) |
179 | { | 179 | { |
180 | struct gfs2_sbd *sdp = jd->jd_inode->i_sbd; | 180 | struct gfs2_sbd *sdp = get_v2ip(jd->jd_inode)->i_sbd; |
181 | 181 | ||
182 | if (pass != 0) | 182 | if (pass != 0) |
183 | return; | 183 | return; |
@@ -190,8 +190,8 @@ static int buf_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start, | |||
190 | struct gfs2_log_descriptor *ld, __be64 *ptr, | 190 | struct gfs2_log_descriptor *ld, __be64 *ptr, |
191 | int pass) | 191 | int pass) |
192 | { | 192 | { |
193 | struct gfs2_sbd *sdp = jd->jd_inode->i_sbd; | 193 | struct gfs2_sbd *sdp = get_v2ip(jd->jd_inode)->i_sbd; |
194 | struct gfs2_glock *gl = jd->jd_inode->i_gl; | 194 | struct gfs2_glock *gl = get_v2ip(jd->jd_inode)->i_gl; |
195 | unsigned int blks = be32_to_cpu(ld->ld_data1); | 195 | unsigned int blks = be32_to_cpu(ld->ld_data1); |
196 | struct buffer_head *bh_log, *bh_ip; | 196 | struct buffer_head *bh_log, *bh_ip; |
197 | uint64_t blkno; | 197 | uint64_t blkno; |
@@ -236,16 +236,16 @@ static int buf_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start, | |||
236 | 236 | ||
237 | static void buf_lo_after_scan(struct gfs2_jdesc *jd, int error, int pass) | 237 | static void buf_lo_after_scan(struct gfs2_jdesc *jd, int error, int pass) |
238 | { | 238 | { |
239 | struct gfs2_sbd *sdp = jd->jd_inode->i_sbd; | 239 | struct gfs2_sbd *sdp = get_v2ip(jd->jd_inode)->i_sbd; |
240 | 240 | ||
241 | if (error) { | 241 | if (error) { |
242 | gfs2_meta_sync(jd->jd_inode->i_gl, DIO_START | DIO_WAIT); | 242 | gfs2_meta_sync(get_v2ip(jd->jd_inode)->i_gl, DIO_START | DIO_WAIT); |
243 | return; | 243 | return; |
244 | } | 244 | } |
245 | if (pass != 1) | 245 | if (pass != 1) |
246 | return; | 246 | return; |
247 | 247 | ||
248 | gfs2_meta_sync(jd->jd_inode->i_gl, DIO_START | DIO_WAIT); | 248 | gfs2_meta_sync(get_v2ip(jd->jd_inode)->i_gl, DIO_START | DIO_WAIT); |
249 | 249 | ||
250 | fs_info(sdp, "jid=%u: Replayed %u of %u blocks\n", | 250 | fs_info(sdp, "jid=%u: Replayed %u of %u blocks\n", |
251 | jd->jd_jid, sdp->sd_replayed_blocks, sdp->sd_found_blocks); | 251 | jd->jd_jid, sdp->sd_replayed_blocks, sdp->sd_found_blocks); |
@@ -320,7 +320,7 @@ static void revoke_lo_before_commit(struct gfs2_sbd *sdp) | |||
320 | static void revoke_lo_before_scan(struct gfs2_jdesc *jd, | 320 | static void revoke_lo_before_scan(struct gfs2_jdesc *jd, |
321 | struct gfs2_log_header *head, int pass) | 321 | struct gfs2_log_header *head, int pass) |
322 | { | 322 | { |
323 | struct gfs2_sbd *sdp = jd->jd_inode->i_sbd; | 323 | struct gfs2_sbd *sdp = get_v2ip(jd->jd_inode)->i_sbd; |
324 | 324 | ||
325 | if (pass != 0) | 325 | if (pass != 0) |
326 | return; | 326 | return; |
@@ -333,7 +333,7 @@ static int revoke_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start, | |||
333 | struct gfs2_log_descriptor *ld, __be64 *ptr, | 333 | struct gfs2_log_descriptor *ld, __be64 *ptr, |
334 | int pass) | 334 | int pass) |
335 | { | 335 | { |
336 | struct gfs2_sbd *sdp = jd->jd_inode->i_sbd; | 336 | struct gfs2_sbd *sdp = get_v2ip(jd->jd_inode)->i_sbd; |
337 | unsigned int blks = be32_to_cpu(ld->ld_length); | 337 | unsigned int blks = be32_to_cpu(ld->ld_length); |
338 | unsigned int revokes = be32_to_cpu(ld->ld_data1); | 338 | unsigned int revokes = be32_to_cpu(ld->ld_data1); |
339 | struct buffer_head *bh; | 339 | struct buffer_head *bh; |
@@ -379,7 +379,7 @@ static int revoke_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start, | |||
379 | 379 | ||
380 | static void revoke_lo_after_scan(struct gfs2_jdesc *jd, int error, int pass) | 380 | static void revoke_lo_after_scan(struct gfs2_jdesc *jd, int error, int pass) |
381 | { | 381 | { |
382 | struct gfs2_sbd *sdp = jd->jd_inode->i_sbd; | 382 | struct gfs2_sbd *sdp = get_v2ip(jd->jd_inode)->i_sbd; |
383 | 383 | ||
384 | if (error) { | 384 | if (error) { |
385 | gfs2_revoke_clean(sdp); | 385 | gfs2_revoke_clean(sdp); |
@@ -458,8 +458,6 @@ static void databuf_lo_add(struct gfs2_sbd *sdp, struct gfs2_log_element *le) | |||
458 | gfs2_trans_add_gl(bd->bd_gl); | 458 | gfs2_trans_add_gl(bd->bd_gl); |
459 | list_add(&bd->bd_list_tr, &tr->tr_list_buf); | 459 | list_add(&bd->bd_list_tr, &tr->tr_list_buf); |
460 | gfs2_pin(sdp, bd->bd_bh); | 460 | gfs2_pin(sdp, bd->bd_bh); |
461 | } else { | ||
462 | clear_buffer_pinned(bd->bd_bh); | ||
463 | } | 461 | } |
464 | gfs2_log_lock(sdp); | 462 | gfs2_log_lock(sdp); |
465 | if (ip->i_di.di_flags & GFS2_DIF_JDATA) | 463 | if (ip->i_di.di_flags & GFS2_DIF_JDATA) |
@@ -630,8 +628,8 @@ static int databuf_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start, | |||
630 | struct gfs2_log_descriptor *ld, | 628 | struct gfs2_log_descriptor *ld, |
631 | __be64 *ptr, int pass) | 629 | __be64 *ptr, int pass) |
632 | { | 630 | { |
633 | struct gfs2_sbd *sdp = jd->jd_inode->i_sbd; | 631 | struct gfs2_sbd *sdp = get_v2ip(jd->jd_inode)->i_sbd; |
634 | struct gfs2_glock *gl = jd->jd_inode->i_gl; | 632 | struct gfs2_glock *gl = get_v2ip(jd->jd_inode)->i_gl; |
635 | unsigned int blks = be32_to_cpu(ld->ld_data1); | 633 | unsigned int blks = be32_to_cpu(ld->ld_data1); |
636 | struct buffer_head *bh_log, *bh_ip; | 634 | struct buffer_head *bh_log, *bh_ip; |
637 | uint64_t blkno; | 635 | uint64_t blkno; |
@@ -680,17 +678,17 @@ static int databuf_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start, | |||
680 | 678 | ||
681 | static void databuf_lo_after_scan(struct gfs2_jdesc *jd, int error, int pass) | 679 | static void databuf_lo_after_scan(struct gfs2_jdesc *jd, int error, int pass) |
682 | { | 680 | { |
683 | struct gfs2_sbd *sdp = jd->jd_inode->i_sbd; | 681 | struct gfs2_sbd *sdp = get_v2ip(jd->jd_inode)->i_sbd; |
684 | 682 | ||
685 | if (error) { | 683 | if (error) { |
686 | gfs2_meta_sync(jd->jd_inode->i_gl, DIO_START | DIO_WAIT); | 684 | gfs2_meta_sync(get_v2ip(jd->jd_inode)->i_gl, DIO_START | DIO_WAIT); |
687 | return; | 685 | return; |
688 | } | 686 | } |
689 | if (pass != 1) | 687 | if (pass != 1) |
690 | return; | 688 | return; |
691 | 689 | ||
692 | /* data sync? */ | 690 | /* data sync? */ |
693 | gfs2_meta_sync(jd->jd_inode->i_gl, DIO_START | DIO_WAIT); | 691 | gfs2_meta_sync(get_v2ip(jd->jd_inode)->i_gl, DIO_START | DIO_WAIT); |
694 | 692 | ||
695 | fs_info(sdp, "jid=%u: Replayed %u of %u data blocks\n", | 693 | fs_info(sdp, "jid=%u: Replayed %u of %u data blocks\n", |
696 | jd->jd_jid, sdp->sd_replayed_blocks, sdp->sd_found_blocks); | 694 | jd->jd_jid, sdp->sd_replayed_blocks, sdp->sd_found_blocks); |