2019-12-15 16:47:26

by Aditya Pakki

[permalink] [raw]
Subject: [PATCH] gfs2: remove assertion when journal_info is not empty

In gfs2_trans_begin, avoid crashing when current->journal_info
is not empty. The patch fixes the error by returning -EINVAL
instead of crashing.

Signed-off-by: Aditya Pakki <[email protected]>
---
fs/gfs2/trans.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/gfs2/trans.c b/fs/gfs2/trans.c
index 9d4227330de4..cef8816ae0b4 100644
--- a/fs/gfs2/trans.c
+++ b/fs/gfs2/trans.c
@@ -31,7 +31,9 @@ int gfs2_trans_begin(struct gfs2_sbd *sdp, unsigned int blocks,
struct gfs2_trans *tr;
int error;

- BUG_ON(current->journal_info);
+ if (current->journal_info)
+ return -EINVAL;
+
BUG_ON(blocks == 0 && revokes == 0);

if (!test_bit(SDF_JOURNAL_LIVE, &sdp->sd_flags))
--
2.20.1


2019-12-15 19:51:51

by Andreas Gruenbacher

[permalink] [raw]
Subject: Re: [PATCH] gfs2: remove assertion when journal_info is not empty

Hello Aditya,

On Sun, Dec 15, 2019 at 5:46 PM Aditya Pakki <[email protected]> wrote:
> In gfs2_trans_begin, avoid crashing when current->journal_info
> is not empty. The patch fixes the error by returning -EINVAL
> instead of crashing.

can you please explain when that patch is needed? Do you have a test
case to reproduce?

Thanks,
Andreas