summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorngkaho1234 <ngkaho1234@gmail.com>2015-12-25 17:14:21 +0800
committergkostka <kostka.grzegorz@gmail.com>2015-12-29 10:41:40 +0100
commitc9e58fcc9ee0038c4ad97eb56f655b9e283bec7c (patch)
treeee86f6b78fdd9f274e99682008ced84545828a25
parent8c2fea16ee857319361994a2a7628d03a7c030d9 (diff)
ext4: do not start new transaction if there is one in use.
-rw-r--r--lwext4/ext4.c6
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);