This project is mirrored from https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git. Pull mirroring updated .
  1. 25 Feb, 2008 1 commit
    • Mingming Cao's avatar
      ext4: Fix BUG when writing to an unitialized extent · f5ab0d1f
      Mingming Cao authored
      
      
      This patch fixes a bug when writing to preallocated but uninitialized
      blocks, which resulted in a BUG in fs/buffer.c saying that the buffer
      is not mapped.
      
      When writing to a file, ext4_get_block_wrap() is called with create=1 in
      order to request that blocks be allocated if necessary.  It currently
      calls ext4_get_blocks() with create=0 in order to do a lookup first.  If
      the inode contains an unitialized data block, the buffer head is left
      unampped, which ext4_get_blocks_wrap() returns, causing the BUG.
      
      We fix this by checking to see if the buffer head is unmapped, and if
      so, we make sure the the buffer head is mapped by calling
      ext4_ext_get_blocks with create=1.
      
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      f5ab0d1f
  2. 15 Feb, 2008 1 commit
    • Valerie Clement's avatar
      ext4: modify block allocation algorithm for the last group · 74d3487f
      Valerie Clement authored
      
      
      When a directory inode is allocated in the last group and the last group
      contains less than s_blocks_per_group blocks, the initial block allocated
      for the directory is not always allocated in the same group as the
      directory inode, but in one of the first groups of the filesystem (group 1
      for example).
      Depending on the current process's pid, ext4_find_near() and 
      ext4_ext_find_goal() can return a block number greater than the maximum
      blocks count in the filesystem and in that case the block will be not
      allocated in the same group as the inode.
      
      The following patch fixes the problem.
      
      Should the modification also be done in ext2/3 code?
      
      Signed-off-by: default avatarValerie Clement <valerie.clement@bull.net>
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
      74d3487f
  3. 22 Feb, 2008 1 commit
  4. 25 Feb, 2008 1 commit
  5. 15 Feb, 2008 1 commit
  6. 29 Jan, 2008 11 commits
  7. 17 Oct, 2007 3 commits
  8. 31 Jul, 2007 1 commit
    • Mingming Cao's avatar
      "ext4_ext_put_in_cache" uses __u32 to receive physical block number · dd54567a
      Mingming Cao authored
      
      
      Yan Zheng wrote:
      
      > I think I found a bug in ext4/extents.c, "ext4_ext_put_in_cache" uses
      > "__u32" to receive physical block number.  "ext4_ext_put_in_cache" is
      > used in "ext4_ext_get_blocks", it sets ext4 inode's extent cache
      > according most recently tree lookup (higher 16 bits of saved physical
      > block number are always zero). when serving a mapping request,
      > "ext4_ext_get_blocks" first check whether the logical block is in
      > inode's extent cache. if the logical block is in the cache and the
      > cached region isn't a gap, "ext4_ext_get_blocks" gets physical block
      > number by using cached region's physical block number and offset in
      > the cached region.  as described above, "ext4_ext_get_blocks" may
      > return wrong result when there are physical block numbers bigger than
      > 0xffffffff.
      >
      
      You are right.  Thanks for reporting this!
      
      Signed-off-by: default avatarMingming Cao <cmm@us.ibm.com>
      Cc: Yan Zheng <yanzheng@21cn.com>
      Cc: <stable@kernel.org>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dd54567a
  9. 18 Jul, 2007 6 commits
  10. 31 May, 2007 4 commits
  11. 08 May, 2007 1 commit
  12. 17 Feb, 2007 1 commit
  13. 07 Dec, 2006 5 commits
  14. 11 Oct, 2006 3 commits