annotate packages/fs/jffs2/current/src/gcthread.c @ 1777:c16341b1bac6 default tip

* Added execute permissions to files missed in conversion from CVS
author alexs
date Mon, 12 Oct 2009 02:26:09 +0100
parents cd7d2afbc7dd
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1443
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
1 /*
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
2 * JFFS2 -- Journalling Flash File System, Version 2.
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
3 *
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
4 * Copyright (C) 2001-2003 Red Hat, Inc.
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
5 *
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
6 * Created by David Woodhouse <dwmw2@redhat.com>
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
7 *
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
8 * For licensing information, see the file 'LICENCE' in this directory.
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
9 *
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
10 * $Id: gcthread.c,v 1.1 2003/11/26 15:55:35 dwmw2 Exp $
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
11 *
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
12 */
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
13
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
14 #include <linux/kernel.h>
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
15 #include <linux/types.h>
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
16 #include <linux/jffs2.h>
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
17 #include "nodelist.h"
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
18
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
19
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
20 static void jffs2_garbage_collect_thread(struct jffs2_sb_info *c);
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
21
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
22 void jffs2_garbage_collect_trigger(struct jffs2_sb_info *c)
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
23 {
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
24 /* Wake up the thread */
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
25 (void)&jffs2_garbage_collect_thread;
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
26 }
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
27
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
28 void jffs2_start_garbage_collect_thread(struct jffs2_sb_info *c)
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
29 {
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
30 /* Start the thread. Doesn't matter if it fails -- it's only an optimisation anyway */
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
31 }
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
32
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
33 void jffs2_stop_garbage_collect_thread(struct jffs2_sb_info *c)
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
34 {
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
35 /* Stop the thread and wait for it if necessary */
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
36 }
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
37
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
38
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
39 static void jffs2_garbage_collect_thread(struct jffs2_sb_info *c)
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
40 {
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
41 #define this_thread_should_die() 0
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
42 while(!this_thread_should_die()) {
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
43 while(!jffs2_thread_should_wake(c)) {
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
44 /* Sleep.... */
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
45 continue;
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
46 }
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
47 if (jffs2_garbage_collect_pass(c) == -ENOSPC) {
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
48 printf("No space for garbage collection. Aborting JFFS2 GC thread\n");
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
49 break;
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
50 }
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
51 }
cd7d2afbc7dd Import latest JFFS2 code from David Woodhouse
gthomas
parents:
diff changeset
52 }