1. 29 Sep, 2009 2 commits
    • Ryusuke Konishi's avatar
      nilfs2: fix missing initialization of i_dir_start_lookup member · 3cc811bf
      Ryusuke Konishi authored
      The i_dir_start_lookup field in nilfs_inode_info objects should be
      cleared when the objects are allocated, but the the initialization was
      missing in case of reading from disk.  This adds the initialization.
      
      Since the variable just gives a start page on directory lookups, the
      bug was nonfatal until now.
      Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      3cc811bf
    • Ryusuke Konishi's avatar
      nilfs2: fix missing zero-fill initialization of btree node cache · 1f28fcd9
      Ryusuke Konishi authored
      This will fix file system corruption which infrequently happens after
      mount.  The problem was reported from users with the title "[NILFS
      users] Fail to mount NILFS." (Message-ID:
      <200908211918.34720.yuri@itinteg.net>), and so forth.  I've also
      experienced the corruption multiple times on kernel 2.6.30 and 2.6.31.
      
      The problem turned out to be caused due to discordance between
      mapping->nrpages of a btree node cache and the actual number of pages
      hung on the cache; if the mapping->nrpages becomes zero even as it has
      pages, truncate_inode_pages() returns without doing anything.  Usually
      this is harmless except it may cause page leak, but garbage collection
      fairly infrequently sees a stale page remained in the btree node cache
      of DAT (i.e. disk address translation file of nilfs), and induces the
      corruption.
      
      I identified a missing initialization in btree node caches was the
      root cause.  This corrects the bug.
      
      I've tested this for kernel 2.6.30 and 2.6.31.
      Reported-by: default avatarYuri Chislov <yuri@itinteg.net>
      Signed-off-by: default avatarRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
      Cc: stable <stable@kernel.org>
      1f28fcd9
  2. 27 Sep, 2009 14 commits
  3. 26 Sep, 2009 21 commits
  4. 25 Sep, 2009 3 commits