[spruce-project] [PATCH 2/2] jfs: Log shutdown error in jfs_freeze() function
Vahram Martirosyan
vmartirosyan at gmail.com
Fri May 24 16:50:13 MSK 2013
Hi, Gu.
Thanks for the patch. We have checked it, and it really fixes the problem.
We did not have much time to get that deep into the code.
The bug report on BugZilla was also done by one of out ream members, so my
feedback can be thought as our feedback.
Thanks,
Vahram
On Fri, May 24, 2013 at 2:25 PM, Gu Zheng <guz.fnst at cn.fujitsu.com> wrote:
> Hi Vahram,
> I saw the same issue in the bugzilla:
> https://bugzilla.kernel.org/show_bug.cgi?id=53331,
> and I sent out a patch this issue, but I've get any feedback.
> In fact, I think it's the right way to fix this issue,
> can you help to test it?
>
> Thanks,
> Gu
>
>
> On 05/24/2013 04:57 PM, Vahram Martirosyan wrote:
>
> > In function jfs_freeze() the log is shut down through lmLogShutdown()
> call.
> > When the "nointegrity" mount option is enabled, the log is actually not
> > initialized. As a result the freeze operation in that case brings to a
> > kernel OOPS.
> >
> > The solution is to check if the "nointegrity" option is enabled and if
> it is not
> > then shut the log down.
> >
> > May be this is not the best solution, but at least it fixes the OOPS.
> >
> > Found by Linux File System Verification project (linuxtesting.org)
> >
> > Signed-off-by: Vahram Martirosyan <vahram.martirosyan at linuxtesting.org>
> > ---
> > fs/jfs/super.c | 10 ++++++----
> > 1 file changed, 6 insertions(+), 4 deletions(-)
> >
> > diff --git a/fs/jfs/super.c b/fs/jfs/super.c
> > index a3d424d..9788970 100644
> > --- a/fs/jfs/super.c
> > +++ b/fs/jfs/super.c
> > @@ -615,10 +615,12 @@ static int jfs_freeze(struct super_block *sb)
> >
> > if (!(sb->s_flags & MS_RDONLY)) {
> > txQuiesce(sb);
> > - rc = lmLogShutdown(log);
> > - if (rc != 0) {
> > - jfs_err("lmLogShutdown failed with return code
> %d", rc);
> > - return rc;
> > + if (!log->no_integrity) {
> > + rc = lmLogShutdown(log);
> > + if (rc != 0) {
> > + jfs_err("lmLogShutdown failed with return
> code %d", rc);
> > + return rc;
> > + }
> > }
> > rc = updateSuper(sb, FM_CLEAN);
> > if (rc != 0) {
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://linuxtesting.org/pipermail/spruce-project/attachments/20130524/586373d0/attachment.html>
More information about the spruce-project
mailing list