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 <[email protected]> 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 <[email protected]>
> > ---
> >  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) {
>
>
>
------------------------------------------------------------------------------
Try New Relic Now & We'll Send You this Cool Shirt
New Relic is the only SaaS-based application performance monitoring service 
that delivers powerful full stack analytics. Optimize and monitor your
browser, app, & servers with just a few lines of code. Try New Relic
and get this awesome Nerd Life shirt! http://p.sf.net/sfu/newrelic_d2d_may
_______________________________________________
Jfs-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jfs-discussion

Reply via email to