This is the mail archive of the
ecos-devel@sourceware.org
mailing list for the eCos project.
jffs2 garbage collect thread
- From: Stanislav Meduna <stano at meduna dot org>
- To: ecos-devel at ecos dot sourceware dot org
- Date: Mon, 20 Feb 2012 12:42:13 +0100
- Subject: jffs2 garbage collect thread
Hi,
anyone knows whether it is now safe to enable the JFFS2 garbage
collect thread?
The CDL comment says:
Enable background garbage collection thread, for making
free space ahead of time. Leave this off till it's been
implemented. And don't implement it till icache locking has
been made thread-safe.
The icache locking probably is not thread-safe per-se, but
the fs-ecos.c says
FSTAB_ENTRY(jffs2_fste, "jffs2", 0,
CYG_SYNCMODE_FILE_FILESYSTEM | CYG_SYNCMODE_IO_FILESYSTEM,
and the thread itself does cyg_fs_lock around the garbage
collect pass
cyg_fs_lock(mte, mte->fs->syncmode);
if (jffs2_garbage_collect_pass(c) == -ENOSPC) {
printf("No space for garbage collection. "
"Aborting JFFS2 GC thread\n");
break;
}
cyg_fs_unlock(mte, mte->fs->syncmode);
To me it looks safe - am I overlooking something?
The reason I need to control garbage collect explicitely is that
I need to make sure a filesystem has some amount of free space
before starting an operation. So I want to trigger a garbage collect
explicitely and then decide according to the superblock information.
Can I use this model or are there any hidden dangers?
Thanks
--
Stano