diff options
author | Artem B. Bityutskiy <dedekind@infradead.org> | 2005-07-31 04:20:48 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@mtd.linutronix.de> | 2005-11-06 12:11:59 -0500 |
commit | 1e900979a7e6c2abbfd1b86bffd226d2d6115f66 (patch) | |
tree | 700fd63d312704da8ab58d9de842420bc192f013 /fs/jffs2/nodelist.c | |
parent | 737b7661e059680a68afb3df0a088fd976f666b7 (diff) |
[JFFS2] Move another fragtree-related function to nodelist.c
Signed-off-by: Artem B. Bityutskiy <dedekind@infradead.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'fs/jffs2/nodelist.c')
-rw-r--r-- | fs/jffs2/nodelist.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/fs/jffs2/nodelist.c b/fs/jffs2/nodelist.c index 7997f526c94b..0cf5e6f11989 100644 --- a/fs/jffs2/nodelist.c +++ b/fs/jffs2/nodelist.c | |||
@@ -7,7 +7,7 @@ | |||
7 | * | 7 | * |
8 | * For licensing information, see the file 'LICENCE' in this directory. | 8 | * For licensing information, see the file 'LICENCE' in this directory. |
9 | * | 9 | * |
10 | * $Id: nodelist.c,v 1.102 2005/07/28 12:45:10 dedekind Exp $ | 10 | * $Id: nodelist.c,v 1.103 2005/07/31 08:20:44 dedekind Exp $ |
11 | * | 11 | * |
12 | */ | 12 | */ |
13 | 13 | ||
@@ -51,6 +51,30 @@ void jffs2_add_fd_to_list(struct jffs2_sb_info *c, struct jffs2_full_dirent *new | |||
51 | *prev = new; | 51 | *prev = new; |
52 | } | 52 | } |
53 | 53 | ||
54 | void jffs2_truncate_fragtree(struct jffs2_sb_info *c, struct rb_root *list, uint32_t size) | ||
55 | { | ||
56 | struct jffs2_node_frag *frag = jffs2_lookup_node_frag(list, size); | ||
57 | |||
58 | JFFS2_DBG_FRAGTREE("truncating fragtree to 0x%08x bytes\n", size); | ||
59 | |||
60 | /* We know frag->ofs <= size. That's what lookup does for us */ | ||
61 | if (frag && frag->ofs != size) { | ||
62 | if (frag->ofs+frag->size >= size) { | ||
63 | JFFS2_DBG_FRAGTREE2("truncating frag 0x%08x-0x%08x\n", frag->ofs, frag->ofs+frag->size); | ||
64 | frag->size = size - frag->ofs; | ||
65 | } | ||
66 | frag = frag_next(frag); | ||
67 | } | ||
68 | while (frag && frag->ofs >= size) { | ||
69 | struct jffs2_node_frag *next = frag_next(frag); | ||
70 | |||
71 | JFFS2_DBG_FRAGTREE("removing frag 0x%08x-0x%08x\n", frag->ofs, frag->ofs+frag->size); | ||
72 | frag_erase(frag, list); | ||
73 | jffs2_obsolete_node_frag(c, frag); | ||
74 | frag = next; | ||
75 | } | ||
76 | } | ||
77 | |||
54 | void jffs2_obsolete_node_frag(struct jffs2_sb_info *c, struct jffs2_node_frag *this) | 78 | void jffs2_obsolete_node_frag(struct jffs2_sb_info *c, struct jffs2_node_frag *this) |
55 | { | 79 | { |
56 | if (this->node) { | 80 | if (this->node) { |