[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>
This commit is contained in:
committed by
Thomas Gleixner
parent
737b7661e0
commit
1e900979a7
@@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
* For licensing information, see the file 'LICENCE' in this directory.
|
* For licensing information, see the file 'LICENCE' in this directory.
|
||||||
*
|
*
|
||||||
* $Id: nodelist.c,v 1.102 2005/07/28 12:45:10 dedekind Exp $
|
* $Id: nodelist.c,v 1.103 2005/07/31 08:20:44 dedekind Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -51,6 +51,30 @@ void jffs2_add_fd_to_list(struct jffs2_sb_info *c, struct jffs2_full_dirent *new
|
|||||||
*prev = new;
|
*prev = new;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void jffs2_truncate_fragtree(struct jffs2_sb_info *c, struct rb_root *list, uint32_t size)
|
||||||
|
{
|
||||||
|
struct jffs2_node_frag *frag = jffs2_lookup_node_frag(list, size);
|
||||||
|
|
||||||
|
JFFS2_DBG_FRAGTREE("truncating fragtree to 0x%08x bytes\n", size);
|
||||||
|
|
||||||
|
/* We know frag->ofs <= size. That's what lookup does for us */
|
||||||
|
if (frag && frag->ofs != size) {
|
||||||
|
if (frag->ofs+frag->size >= size) {
|
||||||
|
JFFS2_DBG_FRAGTREE2("truncating frag 0x%08x-0x%08x\n", frag->ofs, frag->ofs+frag->size);
|
||||||
|
frag->size = size - frag->ofs;
|
||||||
|
}
|
||||||
|
frag = frag_next(frag);
|
||||||
|
}
|
||||||
|
while (frag && frag->ofs >= size) {
|
||||||
|
struct jffs2_node_frag *next = frag_next(frag);
|
||||||
|
|
||||||
|
JFFS2_DBG_FRAGTREE("removing frag 0x%08x-0x%08x\n", frag->ofs, frag->ofs+frag->size);
|
||||||
|
frag_erase(frag, list);
|
||||||
|
jffs2_obsolete_node_frag(c, frag);
|
||||||
|
frag = next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void jffs2_obsolete_node_frag(struct jffs2_sb_info *c, struct jffs2_node_frag *this)
|
void jffs2_obsolete_node_frag(struct jffs2_sb_info *c, struct jffs2_node_frag *this)
|
||||||
{
|
{
|
||||||
if (this->node) {
|
if (this->node) {
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
* For licensing information, see the file 'LICENCE' in this directory.
|
* For licensing information, see the file 'LICENCE' in this directory.
|
||||||
*
|
*
|
||||||
* $Id: nodelist.h,v 1.135 2005/07/27 14:46:11 dedekind Exp $
|
* $Id: nodelist.h,v 1.136 2005/07/31 08:20:44 dedekind Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -310,6 +310,7 @@ struct rb_node *rb_prev(struct rb_node *);
|
|||||||
void rb_replace_node(struct rb_node *victim, struct rb_node *new, struct rb_root *root);
|
void rb_replace_node(struct rb_node *victim, struct rb_node *new, struct rb_root *root);
|
||||||
void jffs2_obsolete_node_frag(struct jffs2_sb_info *c, struct jffs2_node_frag *this);
|
void jffs2_obsolete_node_frag(struct jffs2_sb_info *c, struct jffs2_node_frag *this);
|
||||||
int jffs2_add_full_dnode_to_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_full_dnode *fn);
|
int jffs2_add_full_dnode_to_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_full_dnode *fn);
|
||||||
|
void jffs2_truncate_fragtree (struct jffs2_sb_info *c, struct rb_root *list, uint32_t size);
|
||||||
|
|
||||||
/* nodemgmt.c */
|
/* nodemgmt.c */
|
||||||
int jffs2_thread_should_wake(struct jffs2_sb_info *c);
|
int jffs2_thread_should_wake(struct jffs2_sb_info *c);
|
||||||
@@ -333,7 +334,6 @@ int jffs2_do_link (struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, uint
|
|||||||
|
|
||||||
|
|
||||||
/* readinode.c */
|
/* readinode.c */
|
||||||
void jffs2_truncate_fragtree (struct jffs2_sb_info *c, struct rb_root *list, uint32_t size);
|
|
||||||
int jffs2_do_read_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f,
|
int jffs2_do_read_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f,
|
||||||
uint32_t ino, struct jffs2_raw_inode *latest_node);
|
uint32_t ino, struct jffs2_raw_inode *latest_node);
|
||||||
int jffs2_do_crccheck_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic);
|
int jffs2_do_crccheck_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *ic);
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
* For licensing information, see the file 'LICENCE' in this directory.
|
* For licensing information, see the file 'LICENCE' in this directory.
|
||||||
*
|
*
|
||||||
* $Id: readinode.c,v 1.133 2005/07/30 15:28:24 lunn Exp $
|
* $Id: readinode.c,v 1.134 2005/07/31 08:20:44 dedekind Exp $
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -21,30 +21,6 @@
|
|||||||
#include <linux/compiler.h>
|
#include <linux/compiler.h>
|
||||||
#include "nodelist.h"
|
#include "nodelist.h"
|
||||||
|
|
||||||
void jffs2_truncate_fragtree (struct jffs2_sb_info *c, struct rb_root *list, uint32_t size)
|
|
||||||
{
|
|
||||||
struct jffs2_node_frag *frag = jffs2_lookup_node_frag(list, size);
|
|
||||||
|
|
||||||
JFFS2_DBG_FRAGTREE("truncating fragtree to 0x%08x bytes\n", size);
|
|
||||||
|
|
||||||
/* We know frag->ofs <= size. That's what lookup does for us */
|
|
||||||
if (frag && frag->ofs != size) {
|
|
||||||
if (frag->ofs+frag->size >= size) {
|
|
||||||
JFFS2_DBG_FRAGTREE2("truncating frag 0x%08x-0x%08x\n", frag->ofs, frag->ofs+frag->size);
|
|
||||||
frag->size = size - frag->ofs;
|
|
||||||
}
|
|
||||||
frag = frag_next(frag);
|
|
||||||
}
|
|
||||||
while (frag && frag->ofs >= size) {
|
|
||||||
struct jffs2_node_frag *next = frag_next(frag);
|
|
||||||
|
|
||||||
JFFS2_DBG_FRAGTREE("removing frag 0x%08x-0x%08x\n", frag->ofs, frag->ofs+frag->size);
|
|
||||||
frag_erase(frag, list);
|
|
||||||
jffs2_obsolete_node_frag(c, frag);
|
|
||||||
frag = next;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Put a new tmp_dnode_info into the temporaty RB-tree, keeping the list in
|
* Put a new tmp_dnode_info into the temporaty RB-tree, keeping the list in
|
||||||
* order of increasing version.
|
* order of increasing version.
|
||||||
|
Reference in New Issue
Block a user