1. 05 Jul, 2002 15 commits
  2. 04 Jul, 2002 25 commits
    • Petko Manolov's avatar
      [PATCH] pegasus & rtl8150 · 9dbfec80
      Petko Manolov authored
      I chose a little bit more restrictive license for my drivers.
      Rx skb pool introduced in pegasus driver and the pool locking in rtl8150
      is refined.
      9dbfec80
    • Linus Torvalds's avatar
      Merge home.transmeta.com:/home/torvalds/v2.5/viro · 75eead62
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      75eead62
    • Alexander Viro's avatar
      [PATCH] ->i_dev switched to dev_t · 88cc0d3e
      Alexander Viro authored
      	* ->i_dev followed the example of ->s_dev - it's dev_t now.  All
      remaining uses of ->i_dev either outright want dev_t (stat()) or couldn't
      care less (printing major:minor in /proc/<pid>/maps, etc.)
      88cc0d3e
    • Alexander Viro's avatar
      [PATCH] assorted kdev_t cleanups in filesystems · c9add9b8
      Alexander Viro authored
      	* JFS uses its ->logdev only twice - one of the places assigns
      it to_kdev_t(le32_to_cpu(...)), another uses kdev_t_to_nr() of it.
      Switched to u32 - it's just a place where we store device number we'd got
      from superblock.
      	* several reiserfs_fs.h function prototypes removed - functions
      in question don't exist anymore.
      	* smbfs doesn't support device nodes; ->f_rdev removed.
      c9add9b8
    • Alexander Viro's avatar
      [PATCH] ex_dev switched to dev_t · ab6a5810
      Alexander Viro authored
      	* svc_export ->ex_dev turned into dev_t.  It's a pure search
      key and all places that set it actually do to_kdev_t(some_dev_t_expression).
      ab6a5810
    • Alexander Viro's avatar
      [PATCH] raid kdev_t cleanups - part 3 · dc5d0e46
      Alexander Viro authored
      	* ->dev killed for md/linear.c (same as previous parts)
      dc5d0e46
    • Alexander Viro's avatar
      [PATCH] md_import_device() cleanup · b60f0c2b
      Alexander Viro authored
      	* md_import_device() returns resulting rdev or ERR_PTR(error)
      instead of returning 0 or error an letting caller find rdev.
      b60f0c2b
    • Alexander Viro's avatar
      [PATCH] raid kdev_t cleanups - part 2 · 881c3bc1
      Alexander Viro authored
      	* a bunch of callers of partition_name() are calling
      bdev_partition_name(),
      	* the last users of raid1 and multipath ->dev are gone; so are
      the fields in question.
      881c3bc1
    • Alexander Viro's avatar
      [PATCH] raid ->diskop() splitup · f3ddcd6b
      Alexander Viro authored
      	* ->diskop() split into individual methods; prototypes cleaned
      up.  In particular, handling of hot_add_disk() gets mdk_rdev_t * of
      the component we are adding as an argument instead of playing the games
      with major/minor.  Code cleaned up.
      f3ddcd6b
    • Alexander Viro's avatar
      [PATCH] raid kdev_t cleanups (part 1) · 480f4106
      Alexander Viro authored
      	* ->error_handler() switched to struct block_device *.
      	* md_sync_acct() switched to struct block_device *.
      	* raid5 struct disk_info ->dev is gone - we use ->bdev everywhere.
      	* bunch of kdev_same() when we have corresponding struct block_device *
      and can simply compare them is removed from drivers/md/*.c
      480f4106
    • Alexander Viro's avatar
      [PATCH] kdev_t crapectomy · a99f1593
      Alexander Viro authored
      	* since the last caller of is_read_only() is gone, the function
      itself is removed.
      	* destroy_buffers() is not used anymore; gone.
      	* fsync_dev() is gone; the only user is (broken) lvm.c and first
      step in fixing lvm.c will consist of propagating struct block_device *
      anyway; at that point we'll just use fsync_bdev() in there.
      	* prototype of bio_ioctl() removed - function doesn't exist
      anymore.
      a99f1593
    • Alexander Viro's avatar
      [PATCH] cdrom.c cleanups · 67addbac
      Alexander Viro authored
      	* Bunch of functions in cdrom.c used to get kdev_t and use it
      only to do cdrom_find_device(dev), even though their callers already
      had struct cdrom_device_info * in question.  Switched to passing
      said pointer directly.
      	* useless exports removed; stuff not used outside of cdrom.c
      made static.
      67addbac
    • Alexander Viro's avatar
      [PATCH] (md.c) block device size cleanups · 123caef2
      Alexander Viro authored
      	* calc_dev_sboffset() and calc_dev_size() in md.c are getting
      mk_rdev_t instead of kdev_t.  Callers updated.
      	* calls of blkdev_size_in_bytes() in md.c replaced with use
      of rdev->bdev->bd_inode->i_size.
      123caef2
    • Alexander Viro's avatar
      [PATCH] devpts cleanup · 2aa85937
      Alexander Viro authored
      	* devpts "upcalls" eliminated.
      	* instead of playing games with revalidation we simply use
      ramfs-style tree and kill dentries upon devpts_pty_kill().  That
      allows to get rid of a lot of code in fs/devpts/*.c.
      	* devpts_fs.h cleaned up.
      	* devpts/root.c and devpts/devpts_i.h removed.
      	* array of pointers to devpts inodes killed; with ramfs-style tree
      it's not needed anymore.
      	* devpts/inode.c cleaned up.
      	* devpts_pty_new() used to get mk_kdev() only to convert it to
      dev_t (hardly a surprise, since it's mknod() in disguise).  Now it gets
      dev_t as an argument.
      2aa85937
    • Linus Torvalds's avatar
      Merge home.transmeta.com:/home/torvalds/v2.5/akpm · 78f1f626
      Linus Torvalds authored
      into home.transmeta.com:/home/torvalds/v2.5/linux
      78f1f626
    • Andrew Morton's avatar
      [PATCH] Use names, not numbers for pagefault types · f1dfe022
      Andrew Morton authored
      This is Bill Irwin's cleanup patch which gives symbolic names to the
      fault types:
      
      	#define VM_FAULT_OOM	(-1)
      	#define VM_FAULT_SIGBUS	0
      	#define VM_FAULT_MINOR	1
      	#define VM_FAULT_MAJOR	2
      
      Only arch/i386 has been updated - other architectures can do this too.
      f1dfe022
    • Andrew Morton's avatar
      [PATCH] reduce lock contention in try_to_free_buffers() · 5feb041e
      Andrew Morton authored
      The blockdev mapping's private_lock is fairly contended.  The buffer
      LRU cache fixed a lot of that, but under page replacement load,
      try_to_free_buffers is still showing up.
      
      Moving the freeing of buffer_heads outside the lock reduces contention
      in there by 30%.
      5feb041e
    • Andrew Morton's avatar
      [PATCH] debug: check page refcount in __free_pages_ok() · 63a07153
      Andrew Morton authored
      Add a BUG() check to __free_pages_ok() - to catch someone freeing a
      page which has a non-zero refcount.  Actually, this check is mainly to
      catch someone (ie: shrink_cache()) incrementing a page's refcount
      shortly after it has been freed
      
      Also clean up __free_pages_ok() a bit and convert lots of BUGs to BUG_ON.
      63a07153
    • Andrew Morton's avatar
      [PATCH] fix invalidate_inode_pages2() race · ea66b69c
      Andrew Morton authored
      Fix a buglet in invalidate_list_pages2(): there is a small window in
      which writeback could start against the page before this function locks
      it.
      
      The patch closes the race by performing the PageWriteback test inside
      PageLocked.
      
      Testing PageWriteback inside PageLocked is "definitive" - when a page
      is locked, writeback cannot start against it.
      ea66b69c
    • Andrew Morton's avatar
      [PATCH] JBD commit callback capability · 8b00e4fa
      Andrew Morton authored
      This is a patch which Stephen has applied to ext3's 2.4 repository.
      Originally written by Andreas, generalised somewhat by Stephen.
      
      Add jbd callback mechanism, requested for InterMezzo.  We allow the jbd's
      client to request notification when a given handle's IO finally commits to
      disk, so that clients can manage their own writeback state asynchronously.
      8b00e4fa
    • Andrew Morton's avatar
      [PATCH] ext3 truncate fix · 66c1d66f
      Andrew Morton authored
      Forward-port of a fix which Stephen has applied to ext3's 2.4 CVS tree.
      
      Fix for a rare problem seen under stress in data=journal mode: if we
      have to restart a truncate transaction while traversing the inode's
      direct blocks, we need to deal with bh==NULL in ext3_clear_blocks.
      66c1d66f
    • Andrew Morton's avatar
      [PATCH] combine generic_writepages() and mpage_writepages() · c0902cac
      Andrew Morton authored
      generic_writepages and mpage_writepages are basically identical,
      except one calls ->writepage() and the other calls mpage_writepage().
      This duplication is irritating.
      
      The patch folds generic_writepage() into mpage_writepages().  It does
      this rather kludgily: if the get_block argument to mpage_writepages()
      is NULL then use ->writepage().
      
      Can't think of a better way, really - we could go for a fully-blown
      write_actor_t thing, but that would be overly elaborate and would not
      allow mpage_writepage() to be inlined inside mpage_writepages(), which
      is rather desirable.
      c0902cac
    • Andrew Morton's avatar
      [PATCH] fix a writeback race · 2ab9665b
      Andrew Morton authored
      Fixes a bug in generic_writepages() and its cut-n-paste-cousin,
      mpage_writepages().
      
      The code was clearing PageDirty and then baling out if it discovered
      the page was nder writeback.  Which would cause the dirty bit to be
      lost.
      
      It's a very small window, but reversing the order so PageDirty is only
      cleared when we know for-sure that IO will be started fixes it up.
      2ab9665b
    • Andrew Morton's avatar
      [PATCH] suppress more allocation failure warnings · 193ae036
      Andrew Morton authored
      The `page allocation failure' warning in __alloc_pages() is being a
      pain.  But I'm persisting with it...
      
      The patch renames PF_RADIX_TREE to PF_NOWARN, and uses it in a few
      places where allocations failures are known to happen.  These code
      paths are well-tested now and suppressing the warning is OK.
      193ae036
    • Andrew Morton's avatar
      [PATCH] always update page->flags atomically · a2b41d23
      Andrew Morton authored
      move_from_swap_cache() and move_to_swap_cache() are playing with
      page->flags nonatomically.  The page is on the LRU at the time and
      another CPU could be altering page->flags concurrently.
      
      The patch converts those functions to use atomic operations.
      
      It also rationalises the number of bits which are cleared.  It's not
      really clear to me what page flags we really want to set to a known
      state in there.
      
      It had no right to go clearing PG_arch_1.  I'm now clearing PG_arch_1
      inside rmqueue() which is still a bit presumptious.
      
      btw: shmem uses PAGE_CACHE_SIZE and swapper_space uses PAGE_SIZE.  I've
      been carefully maintaining the distinction, but it looks like shmem
      will break if we ever do make these values different.
      
      
      Also, __add_to_page_cache() was performing a non-atomic RMW against
      page->flags, under the assumption that it was a newly allocated page
      which no other CPU would look at.  Not true - this function is used for
      moving anon pages into swapcache.  Those anon pages are on the LRU -
      other CPUs can be performing operations against page->flags while
      __add_to_swap_cache is stomping on them.  This had me running around in
      circles for two days.
      
      So let's move the initialisation of the page state into rmqueue(),
      where the page really is new (could do it in page_cache_alloc,
      perhaps).
      
      The SetPageLocked() in __add_to_page_cache() is also rather curious.
      Seems OK for both pagecache and swapcache so I covered that with a
      comment.
      
      
      2.4 has the same problem.  Basically, add_to_swap_cache() can stomp on
      another CPU's manipulation of page->flags.  After a quick review of the
      code there, it is barely conceivable that a concurrent refill_inactve()
      could get its PG_referenced and PG_active bits scribbled on.  Rather
      unlikely because swap_out() will probably see PageActive() and bale
      out.
      
      Also, mark_dirty_kiobuf() could have its PG_dirty bit accidentally
      cleared (but try_to_swap_out() sets it again later).
      
      But there may be other code paths.  Really, I think this needs fixing
      in 2.4 - it's horrid.
      a2b41d23