Lines Matching refs:sdp

28 static void gfs2_print_trans(struct gfs2_sbd *sdp, const struct gfs2_trans *tr)  in gfs2_print_trans()  argument
30 fs_warn(sdp, "Transaction created at: %pSR\n", (void *)tr->tr_ip); in gfs2_print_trans()
31 fs_warn(sdp, "blocks=%u revokes=%u reserved=%u touched=%u\n", in gfs2_print_trans()
34 fs_warn(sdp, "Buf %u/%u Databuf %u/%u Revoke %u\n", in gfs2_print_trans()
40 int __gfs2_trans_begin(struct gfs2_trans *tr, struct gfs2_sbd *sdp, in __gfs2_trans_begin() argument
47 gfs2_print_trans(sdp, current->journal_info); in __gfs2_trans_begin()
52 if (!test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags)) in __gfs2_trans_begin()
65 tr->tr_reserved += blocks + 1 + DIV_ROUND_UP(blocks - 1, databuf_limit(sdp)); in __gfs2_trans_begin()
73 if (gfs2_assert_warn(sdp, tr->tr_reserved <= sdp->sd_jdesc->jd_blocks)) in __gfs2_trans_begin()
76 sb_start_intwrite(sdp->sd_vfs); in __gfs2_trans_begin()
87 down_read(&sdp->sd_log_flush_lock); in __gfs2_trans_begin()
88 if (gfs2_log_try_reserve(sdp, tr, &extra_revokes)) in __gfs2_trans_begin()
90 up_read(&sdp->sd_log_flush_lock); in __gfs2_trans_begin()
91 gfs2_log_reserve(sdp, tr, &extra_revokes); in __gfs2_trans_begin()
92 down_read(&sdp->sd_log_flush_lock); in __gfs2_trans_begin()
95 gfs2_log_release_revokes(sdp, extra_revokes); in __gfs2_trans_begin()
96 if (unlikely(!test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags))) { in __gfs2_trans_begin()
97 gfs2_log_release_revokes(sdp, tr->tr_revokes); in __gfs2_trans_begin()
98 up_read(&sdp->sd_log_flush_lock); in __gfs2_trans_begin()
99 gfs2_log_release(sdp, tr->tr_reserved); in __gfs2_trans_begin()
100 sb_end_intwrite(sdp->sd_vfs); in __gfs2_trans_begin()
109 int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks, in gfs2_trans_begin() argument
118 error = __gfs2_trans_begin(tr, sdp, blocks, revokes, _RET_IP_); in gfs2_trans_begin()
124 void gfs2_trans_end(struct gfs2_sbd *sdp) in gfs2_trans_end() argument
132 gfs2_log_release_revokes(sdp, tr->tr_revokes); in gfs2_trans_end()
133 up_read(&sdp->sd_log_flush_lock); in gfs2_trans_end()
134 gfs2_log_release(sdp, tr->tr_reserved); in gfs2_trans_end()
136 gfs2_trans_free(sdp, tr); in gfs2_trans_end()
137 sb_end_intwrite(sdp->sd_vfs); in gfs2_trans_end()
141 gfs2_log_release_revokes(sdp, tr->tr_revokes - tr->tr_num_revoke); in gfs2_trans_end()
147 if (gfs2_assert_withdraw(sdp, nbuf <= tr->tr_blocks) || in gfs2_trans_end()
148 gfs2_assert_withdraw(sdp, tr->tr_num_revoke <= tr->tr_revokes)) in gfs2_trans_end()
149 gfs2_print_trans(sdp, tr); in gfs2_trans_end()
151 gfs2_log_commit(sdp, tr); in gfs2_trans_end()
154 gfs2_trans_free(sdp, tr); in gfs2_trans_end()
155 up_read(&sdp->sd_log_flush_lock); in gfs2_trans_end()
157 if (sdp->sd_vfs->s_flags & SB_SYNCHRONOUS) in gfs2_trans_end()
158 gfs2_log_flush(sdp, NULL, GFS2_LOG_HEAD_FLUSH_NORMAL | in gfs2_trans_end()
160 sb_end_intwrite(sdp->sd_vfs); in gfs2_trans_end()
195 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_trans_add_data() local
203 gfs2_log_lock(sdp); in gfs2_trans_add_data()
206 gfs2_log_unlock(sdp); in gfs2_trans_add_data()
213 gfs2_log_lock(sdp); in gfs2_trans_add_data()
215 gfs2_assert(sdp, bd->bd_gl == gl); in gfs2_trans_add_data()
220 gfs2_pin(sdp, bd->bd_bh); in gfs2_trans_add_data()
224 gfs2_log_unlock(sdp); in gfs2_trans_add_data()
232 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_trans_add_meta() local
233 struct super_block *sb = sdp->sd_vfs; in gfs2_trans_add_meta()
244 gfs2_log_lock(sdp); in gfs2_trans_add_meta()
247 gfs2_log_unlock(sdp); in gfs2_trans_add_meta()
256 gfs2_log_lock(sdp); in gfs2_trans_add_meta()
258 gfs2_assert(sdp, bd->bd_gl == gl); in gfs2_trans_add_meta()
266 fs_err(sdp, "Attempting to add uninitialised block to " in gfs2_trans_add_meta()
271 if (gfs2_withdrawing_or_withdrawn(sdp)) { in gfs2_trans_add_meta()
272 fs_info(sdp, "GFS2:adding buf while withdrawn! 0x%llx\n", in gfs2_trans_add_meta()
277 fs_info(sdp, "GFS2:adding buf while frozen\n"); in gfs2_trans_add_meta()
281 gfs2_pin(sdp, bd->bd_bh); in gfs2_trans_add_meta()
283 mh->mh_jid = cpu_to_be32(sdp->sd_jdesc->jd_jid); in gfs2_trans_add_meta()
287 gfs2_log_unlock(sdp); in gfs2_trans_add_meta()
289 gfs2_assert_withdraw(sdp, 0); in gfs2_trans_add_meta()
294 void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd) in gfs2_trans_add_revoke() argument
299 gfs2_add_revoke(sdp, bd); in gfs2_trans_add_revoke()
304 void gfs2_trans_remove_revoke(struct gfs2_sbd *sdp, u64 blkno, unsigned int len) in gfs2_trans_remove_revoke() argument
309 gfs2_log_lock(sdp); in gfs2_trans_remove_revoke()
310 list_for_each_entry_safe(bd, tmp, &sdp->sd_log_revokes, bd_list) { in gfs2_trans_remove_revoke()
313 gfs2_assert_withdraw(sdp, sdp->sd_log_num_revoke); in gfs2_trans_remove_revoke()
314 sdp->sd_log_num_revoke--; in gfs2_trans_remove_revoke()
318 gfs2_log_release_revokes(sdp, 1); in gfs2_trans_remove_revoke()
323 gfs2_log_unlock(sdp); in gfs2_trans_remove_revoke()
326 void gfs2_trans_free(struct gfs2_sbd *sdp, struct gfs2_trans *tr) in gfs2_trans_free() argument
331 gfs2_assert_warn(sdp, list_empty(&tr->tr_ail1_list)); in gfs2_trans_free()
332 gfs2_assert_warn(sdp, list_empty(&tr->tr_ail2_list)); in gfs2_trans_free()
333 gfs2_assert_warn(sdp, list_empty(&tr->tr_databuf)); in gfs2_trans_free()
334 gfs2_assert_warn(sdp, list_empty(&tr->tr_buf)); in gfs2_trans_free()