diff options
| author | ngkaho1234 <ngkaho1234@gmail.com> | 2015-12-25 17:14:21 +0800 |
|---|---|---|
| committer | gkostka <kostka.grzegorz@gmail.com> | 2015-12-29 10:41:40 +0100 |
| commit | c9e58fcc9ee0038c4ad97eb56f655b9e283bec7c (patch) | |
| tree | ee86f6b78fdd9f274e99682008ced84545828a25 | |
| parent | 8c2fea16ee857319361994a2a7628d03a7c030d9 (diff) | |
ext4: do not start new transaction if there is one in use.
| -rw-r--r-- | lwext4/ext4.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/lwext4/ext4.c b/lwext4/ext4.c index d3c5c35..56013d2 100644 --- a/lwext4/ext4.c +++ b/lwext4/ext4.c @@ -558,7 +558,7 @@ Finish: 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); @@ -575,7 +575,7 @@ Finish: 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); @@ -587,7 +587,7 @@ int ext4_trans_stop(struct ext4_mountpoint *mp) 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); |
