1. 20 May, 2011 1 commit
    • Lukas Czerner's avatar
      ext4: Use schedule_timeout_interruptible() for waiting in lazyinit thread · 4ed5c033
      Lukas Czerner authored
      In order to make lazyinit eat approx. 10% of io bandwidth at max, we
      are sleeping between zeroing each single inode table. For that purpose
      we are using timer which wakes up thread when it expires. It is set
      via add_timer() and this may cause troubles in the case that thread
      has been woken up earlier and in next iteration we call add_timer() on
      still running timer hence hitting BUG_ON in add_timer(). We could fix
      that by using mod_timer() instead however we can use
      schedule_timeout_interruptible() for waiting and hence simplifying
      things a lot.
      
      This commit exchange the old "waiting mechanism" with simple
      schedule_timeout_interruptible(), setting the time to sleep. Hence we
      do not longer need li_wait_daemon waiting queue and others, so get rid
      of it.
      
      Addresses-Red-Hat-Bugzilla: #699708
      Signed-off-by: default avatarLukas Czerner <lczerner@redhat.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Reviewed-by: default avatarEric Sandeen <sandeen@redhat.com>
      4ed5c033
  2. 18 May, 2011 3 commits
  3. 16 May, 2011 2 commits
  4. 15 May, 2011 1 commit
  5. 10 May, 2011 4 commits
  6. 09 May, 2011 6 commits
  7. 08 May, 2011 2 commits
  8. 03 May, 2011 6 commits
  9. 01 May, 2011 3 commits
  10. 30 Apr, 2011 2 commits
    • Theodore Ts'o's avatar
      ext4: ignore errors when issuing discards · d9f34504
      Theodore Ts'o authored
      This is an effective revert of commit a30eec2a: "ext4: stop issuing
      discards if not supported by device".  The problem is that there are
      some devices that may return errors in response to a discard request
      some times but not others.  (One example would be a hybrid dm device
      which concatenates an SSD and an HDD device).
      
      By this logic, I also removed the error checking from ext4's FITRIM
      code; so that an error from a discard will not stop the FITRIM from
      trying to trim the rest of the file system.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      d9f34504
    • Curt Wohlgemuth's avatar
      ext4: don't set PageUptodate in ext4_end_bio() · 39db00f1
      Curt Wohlgemuth authored
      In the bio completion routine, we should not be setting
      PageUptodate at all -- it's set at sys_write() time, and is
      unaffected by success/failure of the write to disk.
      
      This can cause a page corruption bug when the file system's
      block size is less than the architecture's VM page size.
      
      if we have only written a single block -- we might end up
      setting the page's PageUptodate flag, indicating that page
      is completely read into memory, which may not be true.
      This could cause subsequent reads to get bad data.
      
      This commit also takes the opportunity to clean up error
      handling in ext4_end_bio(), and remove some extraneous code:
      
         - fixes ext4_end_bio() to set AS_EIO in the
           page->mapping->flags on error, which was left out by
           mistake.  This is needed so that fsync() will
           return an error if there was an I/O error.
         - remove the clear_buffer_dirty() call on unmapped
           buffers for each page.
         - consolidate page/buffer error handling in a single
           section.
      Signed-off-by: default avatarCurt Wohlgemuth <curtw@google.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      Reported-by: default avatarJim Meyering <jim@meyering.net>
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Cc: Mingming Cao <cmm@us.ibm.com>
      39db00f1
  11. 18 Apr, 2011 1 commit
    • Theodore Ts'o's avatar
      ext4: check for ext[23] file system features when mounting as ext[23] · 2035e776
      Theodore Ts'o authored
      Provide better emulation for ext[23] mode by enforcing that the file
      system does not have any unsupported file system features as defined
      by ext[23] when emulating the ext[23] file system driver when
      CONFIG_EXT4_USE_FOR_EXT23 is defined.
      
      This causes the file system type information in /proc/mounts to be
      correct for the automatically mounted root file system.  This also
      means that "mount -t ext2 /dev/sda /mnt" will fail if /dev/sda
      contains an ext3 or ext4 file system, just as one would expect if the
      original ext2 file system driver were in use.
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      2035e776
  12. 16 Apr, 2011 1 commit
  13. 12 Apr, 2011 1 commit
  14. 11 Apr, 2011 7 commits