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/%u\n", in gfs2_print_trans()
40 int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks, 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()
67 tr->tr_reserved += gfs2_struct2blk(sdp, revokes); in gfs2_trans_begin()
74 sb_start_intwrite(sdp->sd_vfs); in gfs2_trans_begin()
76 error = gfs2_log_reserve(sdp, tr->tr_reserved); in gfs2_trans_begin()
85 sb_end_intwrite(sdp->sd_vfs); in gfs2_trans_begin()
91 void gfs2_trans_end(struct gfs2_sbd *sdp) in gfs2_trans_end() argument
100 gfs2_log_release(sdp, tr->tr_reserved); in gfs2_trans_end()
102 gfs2_trans_free(sdp, tr); in gfs2_trans_end()
103 sb_end_intwrite(sdp->sd_vfs); in gfs2_trans_end()
112 if (gfs2_assert_withdraw(sdp, (nbuf <= tr->tr_blocks) && in gfs2_trans_end()
114 gfs2_print_trans(sdp, tr); in gfs2_trans_end()
116 gfs2_log_commit(sdp, tr); in gfs2_trans_end()
118 gfs2_trans_free(sdp, tr); in gfs2_trans_end()
119 up_read(&sdp->sd_log_flush_lock); in gfs2_trans_end()
121 if (sdp->sd_vfs->s_flags & SB_SYNCHRONOUS) in gfs2_trans_end()
122 gfs2_log_flush(sdp, NULL, GFS2_LOG_HEAD_FLUSH_NORMAL | in gfs2_trans_end()
125 sb_end_intwrite(sdp->sd_vfs); in gfs2_trans_end()
158 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_trans_add_data() local
166 gfs2_log_lock(sdp); in gfs2_trans_add_data()
169 gfs2_log_unlock(sdp); in gfs2_trans_add_data()
176 gfs2_log_lock(sdp); in gfs2_trans_add_data()
178 gfs2_assert(sdp, bd->bd_gl == gl); in gfs2_trans_add_data()
183 gfs2_pin(sdp, bd->bd_bh); in gfs2_trans_add_data()
187 gfs2_log_unlock(sdp); in gfs2_trans_add_data()
195 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_trans_add_meta() local
199 enum gfs2_freeze_state state = atomic_read(&sdp->sd_freeze_state); in gfs2_trans_add_meta()
206 gfs2_log_lock(sdp); in gfs2_trans_add_meta()
209 gfs2_log_unlock(sdp); in gfs2_trans_add_meta()
218 gfs2_log_lock(sdp); in gfs2_trans_add_meta()
220 gfs2_assert(sdp, bd->bd_gl == gl); in gfs2_trans_add_meta()
228 fs_err(sdp, "Attempting to add uninitialised block to " in gfs2_trans_add_meta()
234 fs_info(sdp, "GFS2:adding buf while frozen\n"); in gfs2_trans_add_meta()
235 gfs2_assert_withdraw(sdp, 0); in gfs2_trans_add_meta()
237 if (unlikely(gfs2_withdrawn(sdp))) { in gfs2_trans_add_meta()
238 fs_info(sdp, "GFS2:adding buf while withdrawn! 0x%llx\n", in gfs2_trans_add_meta()
241 gfs2_pin(sdp, bd->bd_bh); in gfs2_trans_add_meta()
243 mh->mh_jid = cpu_to_be32(sdp->sd_jdesc->jd_jid); in gfs2_trans_add_meta()
247 gfs2_log_unlock(sdp); in gfs2_trans_add_meta()
252 void gfs2_trans_add_revoke(struct gfs2_sbd *sdp, struct gfs2_bufdata *bd) in gfs2_trans_add_revoke() argument
257 gfs2_add_revoke(sdp, bd); in gfs2_trans_add_revoke()
262 void gfs2_trans_remove_revoke(struct gfs2_sbd *sdp, u64 blkno, unsigned int len) in gfs2_trans_remove_revoke() argument
268 gfs2_log_lock(sdp); in gfs2_trans_remove_revoke()
269 list_for_each_entry_safe(bd, tmp, &sdp->sd_log_revokes, bd_list) { in gfs2_trans_remove_revoke()
272 gfs2_assert_withdraw(sdp, sdp->sd_log_num_revoke); in gfs2_trans_remove_revoke()
273 sdp->sd_log_num_revoke--; in gfs2_trans_remove_revoke()
282 gfs2_log_unlock(sdp); in gfs2_trans_remove_revoke()
285 void gfs2_trans_free(struct gfs2_sbd *sdp, struct gfs2_trans *tr) in gfs2_trans_free() argument
290 gfs2_assert_warn(sdp, list_empty(&tr->tr_ail1_list)); in gfs2_trans_free()
291 gfs2_assert_warn(sdp, list_empty(&tr->tr_ail2_list)); in gfs2_trans_free()
292 gfs2_assert_warn(sdp, list_empty(&tr->tr_databuf)); in gfs2_trans_free()
293 gfs2_assert_warn(sdp, list_empty(&tr->tr_buf)); in gfs2_trans_free()