All of lore.kernel.org
 help / color / mirror / Atom feed
From: ludovic.desroches <ludovic.desroches@atmel.com>
To: <artem.bityutskiy@linux.intel.com>
Cc: Nicolas Ferre <nicolas.ferre@atmel.com>,
	Linux Kernel list <linux-kernel@vger.kernel.org>,
	"ludovic.desroches" <ludovic.desroches@atmel.com>,
	linux-mtd@lists.infradead.org,
	Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: JFFS2 issue with v3.5.x and later on Atmel chips at least
Date: Thu, 23 Aug 2012 11:05:42 +0200	[thread overview]
Message-ID: <5035F266.2040909@atmel.com> (raw)
In-Reply-To: <1345707689.2848.203.camel@sauron.fi.intel.com>

Hi Artem,

Le 08/23/2012 09:41 AM, Artem Bityutskiy a écrit :
> From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> Date: Thu, 23 Aug 2012 10:10:07 +0300
> Subject: [PATCH] JFFS2: fix unmount regression
>
> This patch fixes regression introduced by
> "8bdc81c jffs2: get rid of jffs2_sync_super". We submit a delayed work in order
> to make sure the write-buffer is synchronized at some point. But we do not
> flush it when we unmount, which causes an oops when we unmount the file-system
> and then the delayed work is executed.
>
> This patch fixes the issue by adding a "cancel_delayed_work_sync()" infocation
> in the '->sync_fs()' handler. This will make sure the delayed work is canceled
> on sync, unmount and re-mount. And because VFS always callse 'sync_fs()' before
> unmounting or remounting, this fixes the issue.
>
> Reported-by: Ludovic Desroches <ludovic.desroches@atmel.com>
> Cc: stable@vger.kernel.org [3.5+]
> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> ---
>
> Ludovic, would you please give this patch a test? Also attached.
>

Thanks for your reactivity. I tested your patch on sam9m10g45 with 3.5 
and 3.5.2 and it fixes the issue.

Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>

>   fs/jffs2/super.c |    3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c
> index 61ea413..e385fa3 100644
> --- a/fs/jffs2/super.c
> +++ b/fs/jffs2/super.c
> @@ -100,6 +100,9 @@ static int jffs2_sync_fs(struct super_block *sb, int wait)
>   {
>   	struct jffs2_sb_info *c = JFFS2_SB_INFO(sb);
>
> +	if (IS_ENABLED(CONFIG_JFFS2_FS_WRITEBUFFER))
> +		cancel_delayed_work_sync(&c->wbuf_dwork);
> +
>   	mutex_lock(&c->alloc_sem);
>   	jffs2_flush_wbuf_pad(c);
>   	mutex_unlock(&c->alloc_sem);
>

WARNING: multiple messages have this Message-ID (diff)
From: ludovic.desroches@atmel.com (ludovic.desroches)
To: linux-arm-kernel@lists.infradead.org
Subject: JFFS2 issue with v3.5.x and later on Atmel chips at least
Date: Thu, 23 Aug 2012 11:05:42 +0200	[thread overview]
Message-ID: <5035F266.2040909@atmel.com> (raw)
In-Reply-To: <1345707689.2848.203.camel@sauron.fi.intel.com>

Hi Artem,

Le 08/23/2012 09:41 AM, Artem Bityutskiy a ?crit :
> From: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> Date: Thu, 23 Aug 2012 10:10:07 +0300
> Subject: [PATCH] JFFS2: fix unmount regression
>
> This patch fixes regression introduced by
> "8bdc81c jffs2: get rid of jffs2_sync_super". We submit a delayed work in order
> to make sure the write-buffer is synchronized at some point. But we do not
> flush it when we unmount, which causes an oops when we unmount the file-system
> and then the delayed work is executed.
>
> This patch fixes the issue by adding a "cancel_delayed_work_sync()" infocation
> in the '->sync_fs()' handler. This will make sure the delayed work is canceled
> on sync, unmount and re-mount. And because VFS always callse 'sync_fs()' before
> unmounting or remounting, this fixes the issue.
>
> Reported-by: Ludovic Desroches <ludovic.desroches@atmel.com>
> Cc: stable at vger.kernel.org [3.5+]
> Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
> ---
>
> Ludovic, would you please give this patch a test? Also attached.
>

Thanks for your reactivity. I tested your patch on sam9m10g45 with 3.5 
and 3.5.2 and it fixes the issue.

Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>

>   fs/jffs2/super.c |    3 +++
>   1 file changed, 3 insertions(+)
>
> diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c
> index 61ea413..e385fa3 100644
> --- a/fs/jffs2/super.c
> +++ b/fs/jffs2/super.c
> @@ -100,6 +100,9 @@ static int jffs2_sync_fs(struct super_block *sb, int wait)
>   {
>   	struct jffs2_sb_info *c = JFFS2_SB_INFO(sb);
>
> +	if (IS_ENABLED(CONFIG_JFFS2_FS_WRITEBUFFER))
> +		cancel_delayed_work_sync(&c->wbuf_dwork);
> +
>   	mutex_lock(&c->alloc_sem);
>   	jffs2_flush_wbuf_pad(c);
>   	mutex_unlock(&c->alloc_sem);
>

  reply	other threads:[~2012-08-23  9:05 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-22 10:28 Kernel oops since v3.5.x on Atmel chips ludovic.desroches
2012-08-22 15:00 ` JFFS2 issue with v3.5.x and later on Atmel chips at least (was: Kernel oops since v3.5.x on Atmel chips) ludovic.desroches
2012-08-22 15:00   ` ludovic.desroches
2012-08-23  6:35   ` Artem Bityutskiy
2012-08-23  6:35     ` Artem Bityutskiy
2012-08-23  6:35     ` Artem Bityutskiy
2012-08-23  7:41   ` Artem Bityutskiy
2012-08-23  7:41     ` Artem Bityutskiy
2012-08-23  7:41     ` Artem Bityutskiy
2012-08-23  9:05     ` ludovic.desroches [this message]
2012-08-23  9:05       ` JFFS2 issue with v3.5.x and later on Atmel chips at least ludovic.desroches
2012-08-23 12:37       ` Artem Bityutskiy
2012-08-23 12:37         ` Artem Bityutskiy
2012-08-23 12:37         ` Artem Bityutskiy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5035F266.2040909@atmel.com \
    --to=ludovic.desroches@atmel.com \
    --cc=artem.bityutskiy@linux.intel.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=nicolas.ferre@atmel.com \
    --cc=plagnioj@jcrosoft.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.