int ext4_trans_start(struct ext4_mountpoint *mp)
{
int r = EOK;
- if (mp->fs.jbd_journal) {
+ if (mp->fs.jbd_journal && !mp->fs.curr_trans) {
struct jbd_journal *journal = mp->fs.jbd_journal;
struct jbd_trans *trans;
trans = jbd_journal_new_trans(journal);
int ext4_trans_stop(struct ext4_mountpoint *mp)
{
int r = EOK;
- if (mp->fs.jbd_journal) {
+ if (mp->fs.jbd_journal && mp->fs.curr_trans) {
struct jbd_journal *journal = mp->fs.jbd_journal;
struct jbd_trans *trans = mp->fs.curr_trans;
r = jbd_journal_commit_trans(journal, trans);
int ext4_trans_abort(struct ext4_mountpoint *mp)
{
int r = EOK;
- if (mp->fs.jbd_journal) {
+ if (mp->fs.jbd_journal && mp->fs.curr_trans) {
struct jbd_journal *journal = mp->fs.jbd_journal;
struct jbd_trans *trans = mp->fs.curr_trans;
r = jbd_journal_commit_trans(journal, trans);