* [PATCH] Force remount read-only of jffs2 when the garbage collector dies
@ 2008-04-21 16:31 Michael Trimarchi
2008-04-21 17:29 ` Josh Boyer
2008-04-21 18:52 ` David Woodhouse
0 siblings, 2 replies; 3+ messages in thread
From: Michael Trimarchi @ 2008-04-21 16:31 UTC (permalink / raw)
To: dwmw2; +Cc: linux-kernel
[-- Attachment #1: Type: text/plain, Size: 122 bytes --]
Inviato da Yahoo! Mail.
La casella di posta intelligente.
http://it.docs.yahoo.com/mail/overview/index.html
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: force-remount-readonly-jffs2.patch --]
[-- Type: text/x-patch; name="force-remount-readonly-jffs2.patch", Size: 1304 bytes --]
[PATCH] Force remount read-only of jffs2 when the garbage collector dies
Signed-off-by: Michael Trimarchi <michael@evidence.eu.com>
---
fs/jffs2/background.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/fs/jffs2/background.c b/fs/jffs2/background.c
index 8adebd3..669b35e 100644
--- a/fs/jffs2/background.c
+++ b/fs/jffs2/background.c
@@ -70,6 +70,7 @@ void jffs2_stop_garbage_collect_thread(struct jffs2_sb_info *c)
static int jffs2_garbage_collect_thread(void *_c)
{
struct jffs2_sb_info *c = _c;
+ struct super_block *sb;
daemonize("jffs2_gcd_mtd%d", c->mtd->index);
allow_signal(SIGKILL);
@@ -145,5 +146,25 @@ static int jffs2_garbage_collect_thread(void *_c)
spin_lock(&c->erase_completion_lock);
c->gc_task = NULL;
spin_unlock(&c->erase_completion_lock);
+
+ sb = c->os_priv;
+ BUG_ON(sb == NULL);
+
+ /* The garbage collect is died. Try to remount the fs
+ * read-only
+ */
+ down_read(&sb->s_umount);
+ if (sb->s_root && sb->s_mtd && !(sb->s_flags & MS_RDONLY)) {
+ /*
+ * ->remount_fs needs lock_kernel().
+ *
+ * What lock protects sb->s_flags??
+ */
+ lock_kernel();
+ do_remount_sb(sb, MS_RDONLY, NULL, 1);
+ unlock_kernel();
+ }
+ drop_super(sb);
+
complete_and_exit(&c->gc_thread_exit, 0);
}
--
1.5.3.6
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Force remount read-only of jffs2 when the garbage collector dies
2008-04-21 16:31 [PATCH] Force remount read-only of jffs2 when the garbage collector dies Michael Trimarchi
@ 2008-04-21 17:29 ` Josh Boyer
2008-04-21 18:52 ` David Woodhouse
1 sibling, 0 replies; 3+ messages in thread
From: Josh Boyer @ 2008-04-21 17:29 UTC (permalink / raw)
To: Michael Trimarchi; +Cc: dwmw2, linux-kernel
On Mon, 2008-04-21 at 16:31 +0000, Michael Trimarchi wrote:
> [PATCH] Force remount read-only of jffs2 when the garbage collector
> dies
>
> Signed-off-by: Michael Trimarchi <michael@evidence.eu.com>
Why would you do this? The garbage collect thread is an optimization,
not a requirement. Garbage collection will occur as-needed on behalf of
whichever process forces the requirement.
josh
>
> ---
> fs/jffs2/background.c | 21 +++++++++++++++++++++
> 1 files changed, 21 insertions(+), 0 deletions(-)
>
> diff --git a/fs/jffs2/background.c b/fs/jffs2/background.c
> index 8adebd3..669b35e 100644
> --- a/fs/jffs2/background.c
> +++ b/fs/jffs2/background.c
> @@ -70,6 +70,7 @@ void jffs2_stop_garbage_collect_thread(struct
> jffs2_sb_info *c)
> static int jffs2_garbage_collect_thread(void *_c)
> {
> struct jffs2_sb_info *c = _c;
> + struct super_block *sb;
>
> daemonize("jffs2_gcd_mtd%d", c->mtd->index);
> allow_signal(SIGKILL);
> @@ -145,5 +146,25 @@ static int jffs2_garbage_collect_thread(void *_c)
> spin_lock(&c->erase_completion_lock);
> c->gc_task = NULL;
> spin_unlock(&c->erase_completion_lock);
> +
> + sb = c->os_priv;
> + BUG_ON(sb == NULL);
> +
> + /* The garbage collect is died. Try to remount the fs
> + * read-only
> + */
> + down_read(&sb->s_umount);
> + if (sb->s_root && sb->s_mtd && !(sb->s_flags & MS_RDONLY)) {
> + /*
> + * ->remount_fs needs lock_kernel().
> + *
> + * What lock protects sb->s_flags??
> + */
> + lock_kernel();
> + do_remount_sb(sb, MS_RDONLY, NULL, 1);
> + unlock_kernel();
> + }
> + drop_super(sb);
> +
> complete_and_exit(&c->gc_thread_exit, 0);
> }
> --
> 1.5.3.6
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] Force remount read-only of jffs2 when the garbage collector dies
2008-04-21 16:31 [PATCH] Force remount read-only of jffs2 when the garbage collector dies Michael Trimarchi
2008-04-21 17:29 ` Josh Boyer
@ 2008-04-21 18:52 ` David Woodhouse
1 sibling, 0 replies; 3+ messages in thread
From: David Woodhouse @ 2008-04-21 18:52 UTC (permalink / raw)
To: Michael Trimarchi; +Cc: linux-kernel
On Mon, 2008-04-21 at 16:31 +0000, Michael Trimarchi wrote:
> Inviato da Yahoo! Mail.
> La casella di posta intelligente.
> http://it.docs.yahoo.com/mail/overview/index.html
NAK. The garbage collector is purely an optimisation; we don't need it
for read-write operation.
--
dwmw2
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-04-21 18:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-04-21 16:31 [PATCH] Force remount read-only of jffs2 when the garbage collector dies Michael Trimarchi
2008-04-21 17:29 ` Josh Boyer
2008-04-21 18:52 ` David Woodhouse
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®