1. 23 12月, 2009 1 次提交
  2. 12 11月, 2009 1 次提交
  3. 11 11月, 2009 1 次提交
  4. 16 9月, 2009 1 次提交
  5. 21 7月, 2009 1 次提交
  6. 16 7月, 2009 1 次提交
  7. 03 4月, 2009 1 次提交
  8. 12 2月, 2009 1 次提交
    • J
      jbd: fix return value of journal_start_commit() · 8fe4cd0d
      Jan Kara 提交于
      journal_start_commit() returns 1 if either a transaction is committing or
      the function has queued a transaction commit.  But it returns 0 if we
      raced with somebody queueing the transaction commit as well.  This
      resulted in ext3_sync_fs() not functioning correctly (description from
      Arthur Jones): In the case of a data=ordered umount with pending long
      symlinks which are delayed due to a long list of other I/O on the backing
      block device, this causes the buffer associated with the long symlinks to
      not be moved to the inode dirty list in the second phase of fsync_super.
      Then, before they can be dirtied again, kjournald exits, seeing the UMOUNT
      flag and the dirty pages are never written to the backing block device,
      causing long symlink corruption and exposing new or previously freed block
      data to userspace.
      
      This can be reproduced with a script created by Eric Sandeen
      <sandeen@redhat.com>:
      
              #!/bin/bash
      
              umount /mnt/test2
              mount /dev/sdb4 /mnt/test2
              rm -f /mnt/test2/*
              dd if=/dev/zero of=/mnt/test2/bigfile bs=1M count=512
              touch /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename
              ln -s /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename
              /mnt/test2/link
              umount /mnt/test2
              mount /dev/sdb4 /mnt/test2
              ls /mnt/test2/
      
      This patch fixes journal_start_commit() to always return 1 when there's
      a transaction committing or queued for commit.
      
      Cc: Eric Sandeen <sandeen@redhat.com>
      Cc: Mike Snitzer <snitzer@gmail.com>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NJan Kara <jack@suse.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      8fe4cd0d
  9. 23 10月, 2008 1 次提交
    • H
      jbd: fix error handling for checkpoint io · 4afe9785
      Hidehiro Kawai 提交于
      When a checkpointing IO fails, current JBD code doesn't check the error
      and continue journaling.  This means latest metadata can be lost from both
      the journal and filesystem.
      
      This patch leaves the failed metadata blocks in the journal space and
      aborts journaling in the case of log_do_checkpoint().  To achieve this, we
      need to do:
      
      1. don't remove the failed buffer from the checkpoint list where in
         the case of __try_to_free_cp_buf() because it may be released or
         overwritten by a later transaction
      2. log_do_checkpoint() is the last chance, remove the failed buffer
         from the checkpoint list and abort the journal
      3. when checkpointing fails, don't update the journal super block to
         prevent the journaled contents from being cleaned.  For safety,
         don't update j_tail and j_tail_sequence either
      4. when checkpointing fails, notify this error to the ext3 layer so
         that ext3 don't clear the needs_recovery flag, otherwise the
         journaled contents are ignored and cleaned in the recovery phase
      5. if the recovery fails, keep the needs_recovery flag
      6. prevent cleanup_journal_tail() from being called between
         __journal_drop_transaction() and journal_abort() (a race issue
         between journal_flush() and __log_wait_for_space()
      Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Acked-by: NJan Kara <jack@suse.cz>
      Cc: <linux-ext4@vger.kernel.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      4afe9785
  10. 26 7月, 2008 2 次提交
  11. 28 4月, 2008 1 次提交
  12. 31 3月, 2008 1 次提交
  13. 20 3月, 2008 1 次提交
  14. 07 2月, 2008 1 次提交
  15. 20 10月, 2007 2 次提交
  16. 19 10月, 2007 1 次提交
  17. 18 10月, 2007 2 次提交
  18. 17 10月, 2007 1 次提交
    • M
      Group short-lived and reclaimable kernel allocations · e12ba74d
      Mel Gorman 提交于
      This patch marks a number of allocations that are either short-lived such as
      network buffers or are reclaimable such as inode allocations.  When something
      like updatedb is called, long-lived and unmovable kernel allocations tend to
      be spread throughout the address space which increases fragmentation.
      
      This patch groups these allocations together as much as possible by adding a
      new MIGRATE_TYPE.  The MIGRATE_RECLAIMABLE type is for allocations that can be
      reclaimed on demand, but not moved.  i.e.  they can be migrated by deleting
      them and re-reading the information from elsewhere.
      Signed-off-by: NMel Gorman <mel@csn.ul.ie>
      Cc: Andy Whitcroft <apw@shadowen.org>
      Cc: Christoph Lameter <clameter@sgi.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e12ba74d
  19. 20 7月, 2007 1 次提交
    • P
      mm: Remove slab destructors from kmem_cache_create(). · 20c2df83
      Paul Mundt 提交于
      Slab destructors were no longer supported after Christoph's
      c59def9f change. They've been
      BUGs for both slab and slub, and slob never supported them
      either.
      
      This rips out support for the dtor pointer from kmem_cache_create()
      completely and fixes up every single callsite in the kernel (there were
      about 224, not including the slab allocator definitions themselves,
      or the documentation references).
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      20c2df83
  20. 09 5月, 2007 2 次提交
  21. 08 12月, 2006 2 次提交
  22. 12 10月, 2006 1 次提交
  23. 04 10月, 2006 1 次提交
  24. 30 9月, 2006 1 次提交
  25. 27 9月, 2006 5 次提交
  26. 28 8月, 2006 1 次提交
  27. 28 6月, 2006 1 次提交
  28. 26 3月, 2006 2 次提交
  29. 23 3月, 2006 1 次提交
  30. 28 10月, 2005 1 次提交
    • A
      [PATCH] gfp_t: fs/* · 27496a8c
      Al Viro 提交于
       - ->releasepage() annotated (s/int/gfp_t), instances updated
       - missing gfp_t in fs/* added
       - fixed misannotation from the original sweep caught by bitwise checks:
         XFS used __nocast both for gfp_t and for flags used by XFS allocator.
         The latter left with unsigned int __nocast; we might want to add a
         different type for those but for now let's leave them alone.  That,
         BTW, is a case when __nocast use had been actively confusing - it had
         been used in the same code for two different and similar types, with
         no way to catch misuses.  Switch of gfp_t to bitwise had caught that
         immediately...
      
      One tricky bit is left alone to be dealt with later - mapping->flags is
      a mix of gfp_t and error indications.  Left alone for now.
      Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      27496a8c