# HG changeset patch # User jlarmour # Date 1048754789 0 # Node ID b17faf385ee04552ca2b9bdb4177920a8503e0c0 # Parent 62d1a985601c60ea74c0cd04366efd0b593818d3 * src/fs-ecos.c Fixed segmentation fault when unmounting file system. diff --git a/packages/fs/jffs2/current/ChangeLog b/packages/fs/jffs2/current/ChangeLog --- a/packages/fs/jffs2/current/ChangeLog +++ b/packages/fs/jffs2/current/ChangeLog @@ -1,3 +1,8 @@ +2003-03-25 Thomas Koeller + + * src/fs-ecos.c + Fixed segmentation fault when unmounting file system. + 2003-02-24 Jonathan Larmour * cdl/jffs2.cdl: Fix doc link. diff --git a/packages/fs/jffs2/current/src/fs-ecos.c b/packages/fs/jffs2/current/src/fs-ecos.c --- a/packages/fs/jffs2/current/src/fs-ecos.c +++ b/packages/fs/jffs2/current/src/fs-ecos.c @@ -190,7 +190,7 @@ static void icache_evict(struct inode *r cached_inode = next_inode) { next_inode = cached_inode->i_cache_next; if (cached_inode->i_count == 0) { - cached_inode->i_cache_prev->i_cache_next = cached_inode->i_cache_next; // Prveious entry points ahead of us + cached_inode->i_cache_prev->i_cache_next = cached_inode->i_cache_next; // Previous entry points ahead of us if (cached_inode->i_cache_next != NULL) cached_inode->i_cache_next->i_cache_prev = cached_inode->i_cache_prev; // Next entry points behind us jffs2_clear_inode(cached_inode); @@ -1759,9 +1759,11 @@ void iput(struct inode *i) for (cached_inode = i->i_sb->s_root; cached_inode != NULL; cached_inode = cached_inode->i_cache_next) { if (cached_inode == i) { - cached_inode->i_cache_prev->i_cache_next = cached_inode->i_cache_next; // Prveious entry points ahead of us - if (cached_inode->i_cache_next != NULL) - cached_inode->i_cache_next->i_cache_prev = cached_inode->i_cache_prev; // Next entry points behind us + if(cached_inode->i_cache_prev != NULL) { + cached_inode->i_cache_prev->i_cache_next = cached_inode->i_cache_next; // Previous entry points ahead of us + if (cached_inode->i_cache_next != NULL) + cached_inode->i_cache_next->i_cache_prev = cached_inode->i_cache_prev; // Next entry points behind us + } break; } }