|
@@ -187,7 +187,8 @@ jffs2_stop_garbage_collect_thread(struct jffs2_sb_info *c)
|
|
|
{
|
|
|
struct super_block *sb=OFNI_BS_2SFFJ(c);
|
|
|
cyg_mtab_entry *mte;
|
|
|
- rt_uint32_t e;
|
|
|
+ rt_uint32_t e;
|
|
|
+ rt_err_t result;
|
|
|
|
|
|
//RT_ASSERT(sb->s_gc_thread_handle);
|
|
|
|
|
@@ -198,10 +199,11 @@ jffs2_stop_garbage_collect_thread(struct jffs2_sb_info *c)
|
|
|
|
|
|
D1(printk("jffs2_stop_garbage_collect_thread wait\n"));
|
|
|
|
|
|
- rt_event_recv(&sb->s_gc_thread_flags,
|
|
|
+ result = rt_event_recv(&sb->s_gc_thread_flags,
|
|
|
GC_THREAD_FLAG_HAS_EXIT,
|
|
|
RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
|
|
|
RT_WAITING_FOREVER, &e);
|
|
|
+ RT_ASSERT(result == RT_EOK);
|
|
|
|
|
|
// Kill and free the resources ... this is safe due to the flag
|
|
|
// from the thread.
|
|
@@ -218,15 +220,17 @@ jffs2_garbage_collect_thread(unsigned long data)
|
|
|
struct super_block *sb=OFNI_BS_2SFFJ(c);
|
|
|
cyg_mtab_entry *mte;
|
|
|
rt_uint32_t flag = 0;
|
|
|
+ rt_err_t result;
|
|
|
|
|
|
D1(printk("jffs2_garbage_collect_thread START\n"));
|
|
|
|
|
|
while(1) {
|
|
|
- rt_event_recv(&sb->s_gc_thread_flags,
|
|
|
+ result = rt_event_recv(&sb->s_gc_thread_flags,
|
|
|
GC_THREAD_FLAG_TRIG | GC_THREAD_FLAG_STOP,
|
|
|
RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR,
|
|
|
cyg_current_time() + CYGNUM_JFFS2_GS_THREAD_TICKS,
|
|
|
&flag);
|
|
|
+ RT_ASSERT(result == RT_EOK);
|
|
|
|
|
|
if (flag & GC_THREAD_FLAG_STOP)
|
|
|
break;
|