1. 09 1月, 2006 1 次提交
    • O
      [PATCH] Fix and add EXPORT_SYMBOL(filemap_write_and_wait) · 28fd1298
      OGAWA Hirofumi 提交于
      This patch add EXPORT_SYMBOL(filemap_write_and_wait) and use it.
      
      See mm/filemap.c:
      
      And changes the filemap_write_and_wait() and filemap_write_and_wait_range().
      
      Current filemap_write_and_wait() doesn't wait if filemap_fdatawrite()
      returns error.  However, even if filemap_fdatawrite() returned an
      error, it may have submitted the partially data pages to the device.
      (e.g. in the case of -ENOSPC)
      
      <quotation>
      Andrew Morton writes,
      
      If filemap_fdatawrite() returns an error, this might be due to some
      I/O problem: dead disk, unplugged cable, etc.  Given the generally
      crappy quality of the kernel's handling of such exceptions, there's a
      good chance that the filemap_fdatawait() will get stuck in D state
      forever.
      </quotation>
      
      So, this patch doesn't wait if filemap_fdatawrite() returns the -EIO.
      
      Trond, could you please review the nfs part?  Especially I'm not sure,
      nfs must use the "filemap_fdatawrite(inode->i_mapping) == 0", or not.
      Acked-by: NTrond Myklebust <trond.myklebust@fys.uio.no>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      28fd1298
  2. 01 11月, 2005 1 次提交
  3. 30 10月, 2005 1 次提交
    • H
      [PATCH] mm: split page table lock · 4c21e2f2
      Hugh Dickins 提交于
      Christoph Lameter demonstrated very poor scalability on the SGI 512-way, with
      a many-threaded application which concurrently initializes different parts of
      a large anonymous area.
      
      This patch corrects that, by using a separate spinlock per page table page, to
      guard the page table entries in that page, instead of using the mm's single
      page_table_lock.  (But even then, page_table_lock is still used to guard page
      table allocation, and anon_vma allocation.)
      
      In this implementation, the spinlock is tucked inside the struct page of the
      page table page: with a BUILD_BUG_ON in case it overflows - which it would in
      the case of 32-bit PA-RISC with spinlock debugging enabled.
      
      Splitting the lock is not quite for free: another cacheline access.  Ideally,
      I suppose we would use split ptlock only for multi-threaded processes on
      multi-cpu machines; but deciding that dynamically would have its own costs.
      So for now enable it by config, at some number of cpus - since the Kconfig
      language doesn't support inequalities, let preprocessor compare that with
      NR_CPUS.  But I don't think it's worth being user-configurable: for good
      testing of both split and unsplit configs, split now at 4 cpus, and perhaps
      change that to 8 later.
      
      There is a benefit even for singly threaded processes: kswapd can be attacking
      one part of the mm while another part is busy faulting.
      Signed-off-by: NHugh Dickins <hugh@veritas.com>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      4c21e2f2
  4. 29 10月, 2005 1 次提交
  5. 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
  6. 11 10月, 2005 1 次提交
  7. 04 10月, 2005 1 次提交
    • D
      JFS: make special inodes play nicely with page balancing · ac17b8b5
      Dave Kleikamp 提交于
      This patch fixes up a few problems with jfs's reserved inodes.
      
      1. There is no need for the jfs code setting the I_DIRTY bits in i_state.
         I am ashamed that the code ever did this, and surprised it hasn't been
         noticed until now.
      
      2. Make sure special inodes are on an inode hash list.  If the inodes are
         unhashed, __mark_inode_dirty will fail to put the inode on the
         superblock's dirty list, and the data will not be flushed under memory
         pressure.
      
      3. Force writing journal data to disk when metapage_writepage is unable to
         write a metadata page due to pending journal I/O.
      Signed-off-by: NDave Kleikamp <shaggy@austin.ibm.com>
      ac17b8b5
  8. 21 9月, 2005 1 次提交
  9. 16 9月, 2005 1 次提交
  10. 10 9月, 2005 1 次提交
  11. 08 9月, 2005 1 次提交
    • M
      [PATCH] disk quotas fail when /etc/mtab is symlinked to /proc/mounts · 8fc2751b
      Mark Bellon 提交于
      If /etc/mtab is a regular file all of the mount options (of a file system)
      are written to /etc/mtab by the mount command.  The quota tools look there
      for the quota strings for their operation.  If, however, /etc/mtab is a
      symlink to /proc/mounts (a "good thing" in some environments) the tools
      don't write anything - they assume the kernel will take care of things.
      
      While the quota options are sent down to the kernel via the mount system
      call and the file system codes handle them properly unfortunately there is
      no code to echo the quota strings into /proc/mounts and the quota tools
      fail in the symlink case.
      
      The attached patchs modify the EXT[2|3] and JFS codes to add the necessary
      hooks.  The show_options function of each file system in these patches
      currently deal with only those things that seemed related to quotas;
      especially in the EXT3 case more can be done (later?).
      
      Jan Kara also noted the difficulty in moving these changes above the FS
      codes responding similarly to myself to Andrew's comment about possible
      VFS migration. Issue summary:
      
       - FS codes have to process the entire string of options anyway.
      
       - Only FS codes that use quotas must have a show_options function (for
         quotas to work properly) however quotas are only used in a small number
         of FS.
      
       - Since most of the quota using FS support other options these FS codes
         should have the a show_options function to show those options - and the
         quota echoing becomes virtually negligible.
      
      Based on feedback I have modified my patches from the original:
      
         JFS a missing patch has been restored to the posting
         EXT[2|3] and JFS always use the show_options function
             - Each FS has at least one FS specific option displayed
             - QUOTA output is under a CONFIG_QUOTA ifdef
             - a follow-on patch will add a multitude of options for each FS
         EXT[2|3] and JFS "quota" is treated as "usrquota"
         EXT3 journalled data check for journalled quota removed
         EXT[2|3] mount when quota specified but not compiled in
      
       - no changes from my original patch.  I tested the patch and the codes
         warn but
      
       - still mount.  With all due respection I believe the comments
         otherwise were a
      
       - misread of the patch.  Please reread/test and comment.  XFS patch
         removed - the XFS team already made the necessary changes EXT3 mixing
         old and new quotas are handled differently (not purely exclusive)
      
       - if old and new quotas for the same type are used together the old
         type is silently depricated for compatability (e.g.  usrquota and
         usrjquota)
      
       - mixing of old and new quotas is an error (e.g.  usrjquota and
         grpquota)
      Signed-off-by: NMark Bellon <mbellon@mvista.com>
      Acked-by: NDave Kleikamp <shaggy@austin.ibm.com>
      Cc: Jan Kara <jack@ucw.cz>
      Signed-off-by: NAndrew Morton <akpm@osdl.org>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      8fc2751b
  12. 01 9月, 2005 2 次提交
  13. 31 8月, 2005 1 次提交
  14. 20 8月, 2005 1 次提交
  15. 18 8月, 2005 1 次提交
  16. 11 8月, 2005 1 次提交
  17. 02 8月, 2005 1 次提交
  18. 27 7月, 2005 1 次提交
    • D
      JFS: Improve sync barrier processing · cbc3d65e
      Dave Kleikamp 提交于
      Under heavy load, hot metadata pages are often locked by non-committed
      transactions, making them difficult to flush to disk.  This prevents
      the sync point from advancing past a transaction that had modified the
      page.
      
      There is a point during the sync barrier processing where all
      outstanding transactions have been committed to disk, but no new
      transaction have been allowed to proceed.  This is the best time
      to write the metadata.
      Signed-off-by: NDave Kleikamp <shaggy@austin.ibm.com>
      cbc3d65e
  19. 26 7月, 2005 1 次提交
  20. 25 7月, 2005 1 次提交
  21. 23 7月, 2005 1 次提交
  22. 15 7月, 2005 3 次提交
  23. 13 7月, 2005 2 次提交
  24. 28 6月, 2005 1 次提交
    • D
      JFS: Code cleanup - getting rid of never-used debug code · b38a3ab3
      Dave Kleikamp 提交于
      I'm finally getting around to cleaning out debug code that I've never used.
      There has always been code ifdef'ed out by _JFS_DEBUG_DMAP, _JFS_DEBUG_IMAP,
      _JFS_DEBUG_DTREE, and _JFS_DEBUG_XTREE, which I have personally never used,
      and I doubt that anyone has since the design stage back in OS/2.  There is
      also a function, xtGather, that has never been used, and I don't know why it
      was ever there.
      Signed-off-by: NDave Kleikamp <shaggy@austin.ibm.com>
      b38a3ab3
  25. 26 6月, 2005 1 次提交
    • C
      [PATCH] Cleanup patch for process freezing · 3e1d1d28
      Christoph Lameter 提交于
      1. Establish a simple API for process freezing defined in linux/include/sched.h:
      
         frozen(process)		Check for frozen process
         freezing(process)		Check if a process is being frozen
         freeze(process)		Tell a process to freeze (go to refrigerator)
         thaw_process(process)	Restart process
         frozen_process(process)	Process is frozen now
      
      2. Remove all references to PF_FREEZE and PF_FROZEN from all
         kernel sources except sched.h
      
      3. Fix numerous locations where try_to_freeze is manually done by a driver
      
      4. Remove the argument that is no longer necessary from two function calls.
      
      5. Some whitespace cleanup
      
      6. Clear potential race in refrigerator (provides an open window of PF_FREEZE
         cleared before setting PF_FROZEN, recalc_sigpending does not check
         PF_FROZEN).
      
      This patch does not address the problem of freeze_processes() violating the rule
      that a task may only modify its own flags by setting PF_FREEZE. This is not clean
      in an SMP environment. freeze(process) is therefore not SMP safe!
      Signed-off-by: NChristoph Lameter <christoph@lameter.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      3e1d1d28
  26. 24 6月, 2005 2 次提交
  27. 04 6月, 2005 1 次提交
    • D
      JFS: Fix compiler warning in jfs_logmgr.c · 72e3148a
      Dave Kleikamp 提交于
      fs/jfs/jfs_logmgr.c: In function `jfs_flush_journal':
      fs/jfs/jfs_logmgr.c:1632: warning: unused variable `mp'
      
      Some debug code in jfs_flush_journal does nothing when CONFIG_JFS_DEBUG
      is not defined.  Place the whole code segment within an ifdef to avoid
      unnecessary code to be compiled and the warning to be issued.
      Signed-off-by: NDave Kleikamp <shaggy@austin.ibm.com>
      72e3148a
  28. 03 6月, 2005 1 次提交
  29. 09 5月, 2005 1 次提交
  30. 05 5月, 2005 3 次提交
  31. 04 5月, 2005 1 次提交
  32. 03 5月, 2005 2 次提交