1. 20 May, 2007 2 commits
    • David Woodhouse's avatar
      [JFFS2] Fix potential memory leak of dead xattrs on unmount. · 2ad8ee71
      David Woodhouse authored
      An xattr_datum which ends up orphaned should be freed by the GC 
      thread. But if we umount before the GC thread is finished, or if we 
      mount read-only and the GC thread never runs, they might never be 
      freed. Clean them up during unmount, if there are any left.
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      2ad8ee71
    • David Woodhouse's avatar
      [JFFS2] Fix BUG() caused by failing to discard xattrs on deleted files. · 8ae5d312
      David Woodhouse authored
      When we cannot mark nodes as obsolete, such as on NAND flash, we end up 
      having to delete inodes with !nlink in jffs2_build_remove_unlinked_inode().
      However, jffs2_build_xattr_subsystem() runs later than this, and will
      attach an xref to the dead inode. Then later when the last nodes of that
      dead inode are erased we hit a BUG() in jffs2_del_ino_cache() 
      because we're not supposed to get there with an xattr still attached to 
      the inode which is being killed.
      
      The simple fix is to refrain from attaching xattrs to inodes with zero 
      nlink, in jffs2_build_xattr_subsystem(). It's it's OK to trust nlink 
      here because the file system isn't actually mounted yet, so there's no 
      chance that a zero-nlink file could actually be alive still because 
      it's open.
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      8ae5d312
  2. 11 May, 2007 2 commits
  3. 09 May, 2007 5 commits
  4. 07 May, 2007 4 commits
  5. 06 May, 2007 1 commit
    • David Woodhouse's avatar
      [JFFS2] Remove broken insert_point optimisation in jffs2_add_tn_to_tree() · 96dd8d25
      David Woodhouse authored
      The original code would remember, during the first pass over the tree,
      a suitable place to start the insertion from when we eventually come
      to add a new node.
      
      The optimisation was broken, and we sometimes ended up inserting a new
      node in the wrong place because we started the insertion from the wrong
      point.
      
      Just ditch the optimisation and start the insertion from the root of the
      tree, for now. I'll try it again when I'm feeling cleverer.
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      96dd8d25
  6. 05 May, 2007 2 commits
  7. 03 May, 2007 2 commits
  8. 02 May, 2007 7 commits
  9. 27 Apr, 2007 15 commits