1. 12 Nov, 2002 1 commit
    • David Woodhouse's avatar
      JFFS2 update. · f662cf7a
      David Woodhouse authored
      Various bugfixes
       -- deadlock in prepare_write() on extension of file fixed.
       -- corruption when reading a page where a multi-page hole ends fixed.
       -- oops on unlink of bad inodes fixed.
       -- allow bi-endian operation; mounting of non-host-endian file system is now possible.
      
      Optimisations
       -- switch to rbtrees for the inode fragment list. O(log n) insertion and lookup now.
       -- avoid checking all data crcs and building fragment trees at scan time. Do it later in GC.
       -- use 'point' method if available to use a pointer directly into the flash chip during
      	scan, rather than always using memcpy into RAM first.
       -- start to track node 'pristine' status, for later use in GC optimisation -- we'll be
      	able to copy those nodes intact without having to read them, decompress and 
      	recompress their payload, etc. Or indeed having to read_inode() their inode. 
       -- fix ordering of work done from kupdated. We now erase a block, mark it free and stick 
      	it on the appropriate list, and go on to the next one. Before, we erased _all_ the
      	pending blocks before marking any of them free, while everyone waited for us.
      f662cf7a
  2. 11 Nov, 2002 33 commits
  3. 10 Nov, 2002 6 commits
    • Linus Torvalds's avatar
      Linux v2.5.47 · 5be2bc3c
      Linus Torvalds authored
      5be2bc3c
    • Andrew Morton's avatar
      [PATCH] remove duplicated disk statistics · 36e573c7
      Andrew Morton authored
      This patch will break some userspace monitoring apps in the name of
      having sane disk statistics in 2.6.x.
      
      Patch from Rick Lindsley <ricklind@us.ibm.com>
      
      In 2.5.46, there are now disk statistics being collected twice: once
      for gendisk/hd_struct, and once for dkstat.  They are collecting the
      same thing.  This patch removes dkstat, which also had the disadvantage
      of being limited by DK_MAX_MAJOR and DK_MAX_DISK. (Those #defines are
      removed too.)
      
      In addition, this patch removes disk statistics from /proc/stat since
      they are now available via sysfs and there seems to have been a general
      preference in previous discussions to "clean up" /proc/stat.  Too many
      disks being reported in /proc/stat also caused buffer overflows when
      trying to print out the data.
      
      The code in led.c from the parisc architecture has not apparently been
      recompiled under recent versions of 2.5, since it references
      kstat.dk_drive which doesn't exist in later versions.  Accordingly,
      I've added an #ifdef 0 and a comment to that code so that it may at
      least compile, albeit without one feature -- a step up from its state
      now.  If it is preferable to keep the broken code in, that patch may
      easily be excised from below.
      36e573c7
    • Andrew Morton's avatar
      [PATCH] fix page alloc/free accounting · 3e4c5912
      Andrew Morton authored
      We're currently incrementing /proc/vmstat:pgalloc in front of the
      per-cpu page queues, and incrementing /proc/vmstat:pgfree behind the
      per-cpu queues.  So they get out of whack.
      
      Change it so that we increment the counters each time someone requests
      a page.  ie: they're both in front of the queues.
      
      Also, remove a duplicated prep_new_page() call and as a consequence,
      drop the whole additional list walk in rmqueue_bulk().
      3e4c5912
    • Andrew Morton's avatar
      [PATCH] buffer_head refcounting fixes and cleanup · d9c53386
      Andrew Morton authored
      There was some strange code in the __getblk()/__find_get_block()/
      __bread() area which was performimg multiple bh_lru_install() calls as
      well as multiple touch_buffer() calls.
      
      Fix all that up.  We only need to run bh_lru_install() and
      touch_buffer() in __find_get_block().  Because if the block wasn't
      found, __getblk() will create it and will re-run __find_get_block().
      
      Also document a few things and make a couple of internal symbols static
      to buffer.c
      
      Also, don't run __find_get_block() from within
      unmap_underlying_metadata().  We hardly expect to find that block
      inside the LRU.  And we hardly expect to use it as metadata in the near
      future so there's no point in letting it evict another buffer if we
      found it.  So just go straight into the pagecache lookup for
      unmap_underlying_metadata().
      d9c53386
    • Andrew Morton's avatar
      [PATCH] Fix math underflow in disk accounting · 79d8554f
      Andrew Morton authored
      Patch from Lev Makhlis <mlev@despammed.com>
      
      The disk accounting will overflow after 4,000,000 seconds.  Extend that
      by a factor of 1000.
      79d8554f
    • Andrew Morton's avatar
      [PATCH] hugetlb: make private functions static · becd026d
      Andrew Morton authored
      Patch from William Lee Irwin III <wli@holomorphy.com>
      
      This patch makes various private structures and procedures static.
      becd026d