Lines Matching refs:sdp

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