1. 01 12月, 2009 9 次提交
  2. 24 11月, 2009 3 次提交
  3. 23 11月, 2009 1 次提交
  4. 21 11月, 2009 3 次提交
    • D
      FS-Cache: Provide nop fscache_stat_d() if CONFIG_FSCACHE_STATS=n · 4fa9f4ed
      David Howells 提交于
      Provide nop fscache_stat_d() macro if CONFIG_FSCACHE_STATS=n lest errors like
      the following occur:
      
      	fs/fscache/cache.c: In function 'fscache_withdraw_cache':
      	fs/fscache/cache.c:386: error: implicit declaration of function 'fscache_stat_d'
      	fs/fscache/cache.c:386: error: 'fscache_n_cop_sync_cache' undeclared (first use in this function)
      	fs/fscache/cache.c:386: error: (Each undeclared identifier is reported only once
      	fs/fscache/cache.c:386: error: for each function it appears in.)
      	fs/fscache/cache.c:392: error: 'fscache_n_cop_dissociate_pages' undeclared (first use in this function)
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      4fa9f4ed
    • D
      SLOW_WORK: Fix GFS2 to #include <linux/module.h> before using THIS_MODULE · 1c2ea8a2
      David Howells 提交于
      GFS2 has been altered to pass THIS_MODULE to slow_work_register_user(), but
      hasn't been altered to #include <linux/module.h> to provide it, resulting in
      the following error:
      
      	fs/gfs2/recovery.c:596: error: 'THIS_MODULE' undeclared here (not in a function)
      
      Add the missing #include.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      1c2ea8a2
    • D
      SLOW_WORK: Fix CIFS to pass THIS_MODULE to slow_work_register_user() · 0109d7e6
      David Howells 提交于
      As of the patch:
      
      	SLOW_WORK: Wait for outstanding work items belonging to a module to clear
      
      	Wait for outstanding slow work items belonging to a module to clear
      	when unregistering that module as a user of the facility.  This
      	prevents the put_ref code of a work item from being taken away before
      	it returns.
      
      slow_work_register_user() takes a module pointer as an argument.  CIFS must now
      pass THIS_MODULE as that argument, lest the following error be observed:
      
      	fs/cifs/cifsfs.c: In function 'init_cifs':
      	fs/cifs/cifsfs.c:1040: error: too few arguments to function 'slow_work_register_user'
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      0109d7e6
  5. 20 11月, 2009 24 次提交
    • S
      kconfig: Fix make O=<dir> local{mod,yes}config · 463bf900
      Steven Rostedt 提交于
      When the output directory is something other than the kernel source,
      the streamline_config script gets confused. This patch passes in the
      source directory to the script so that it can find the proper files.
      Reported-by: NPeter Zijlstra <peterz@infradead.org>
      Tested-by: NPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: NSteven Rostedt <rostedt@goodmis.org>
      463bf900
    • D
      ioat3: fix pq completion versus channel deallocation race · 49954c15
      Dan Williams 提交于
      The completion of a pq operation is notified with a null descriptor
      appended to the end of the chain.  This descriptor needs to be visible
      to dma clients otherwise the client is precluded from ensuring all
      operations are quiesced before freeing channel resources, i.e. due to
      descriptor polling it may get the completion notification ahead of the
      interrupt delivered by the null descriptor.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      49954c15
    • D
      async_tx: build-time toggling of async_{syndrome,xor}_val dma support · 7b3cc2b1
      Dan Williams 提交于
      ioat3.2 does not support asynchronous error notifications which makes
      the driver experience latencies when non-zero pq validate results are
      expected.  Provide a mechanism for turning off async_xor_val and
      async_syndrome_val via Kconfig.  This approach is generally useful for
      any driver that specifies ASYNC_TX_DISABLE_CHANNEL_SWITCH and would like
      to force the async_tx api to fall back to the synchronous path for
      certain operations.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      7b3cc2b1
    • D
      dmaengine: include xor/pq validate in device_has_all_tx_types() · 4499a24d
      Dan Williams 提交于
      A channel must include these capabilities to satisfy
      ASYNC_TX_DISABLE_CHANNEL_SWITCH.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      4499a24d
    • D
      ioat2,3: report all uncorrectable errors · b57014de
      Dan Williams 提交于
      Modify is_ioat_bug() to catch all errors that are uncorrectable, or not
      currently handled.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      b57014de
    • L
      Merge branch 'i2c-pnx-fixes' of git://git.fluff.org/bjdooks/linux · a8a8a669
      Linus Torvalds 提交于
      * 'i2c-pnx-fixes' of git://git.fluff.org/bjdooks/linux:
        i2c: i2c-pnx: Added missing mach/i2c.h and linux/io.h header file includes
        i2c: i2c-pnx: Made buf type unsigned to prevent sign extension
        i2c: i2c-pnx: Limit minimum jiffie timeout to 2
      a8a8a669
    • L
      Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2 · 931ed944
      Linus Torvalds 提交于
      * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jlbec/ocfs2:
        ocfs2: Trivial cleanup of jbd compatibility layer removal
        ocfs2: Refresh documentation
        ocfs2: return f_fsid info in ocfs2_statfs()
        ocfs2: duplicate inline data properly during reflink.
        ocfs2: Move ocfs2_complete_reflink to the right place.
        ocfs2: Return -EINVAL when a device is not ocfs2.
      931ed944
    • K
      i2c: i2c-pnx: Added missing mach/i2c.h and linux/io.h header file includes · a7d73d8c
      Kevin Wells 提交于
      Added missing mach/i2c.h and linux/io.h header file includes
      Signed-off-by: NKevin Wells <kevin.wells@nxp.com>
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      a7d73d8c
    • K
      i2c: i2c-pnx: Made buf type unsigned to prevent sign extension · 4ced24c8
      Kevin Wells 提交于
      Made buf type unsigned to prevent sign extension
      Signed-off-by: NKevin Wells <kevin.wells@nxp.com>
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      4ced24c8
    • K
      i2c: i2c-pnx: Limit minimum jiffie timeout to 2 · b2f125bc
      Kevin Wells 提交于
      Limit minimum jiffie timeout to 2 to prevent early timeout on systems
      with low tick rates
      Signed-off-by: NKevin Wells <kevin.wells@nxp.com>
      Signed-off-by: NBen Dooks <ben-linux@fluff.org>
      b2f125bc
    • D
      ioat3: specify valid address for disabled-Q or disabled-P · de581b65
      Dan Williams 提交于
      Although disabled, hardware still checks address validity, so duplicate
      the known address.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      de581b65
    • D
      ioat2,3: disable asynchronous error notifications · 6f82b83b
      Dan Williams 提交于
      Error interrupts and error completions may cause channel hangs, so
      poll the channel status register after a timeout.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      6f82b83b
    • D
      ioat3: dca and raid operations are incompatible · 228c4f5c
      Dan Williams 提交于
      RAID operations cause a system hang on platforms with DCA
      (Direct-Cache-Access) enabled.  So turn off RAID capabilities in this
      case.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      228c4f5c
    • J
      sata_fsl: Split hard and soft reset · a0a74d1e
      Jiang Yutang 提交于
      Split sata_fsl_softreset() into hard and soft resets to make
      error-handling more efficient & device and PMP detection more
      reliable.
      
      Also includes fix for PMP support, driver tested with Sil3726,
      Sil4726 & Exar PMP controllers.
      
      [AV: Also fixes resuming from deep sleep on MPC8315 CPUs]
      Signed-off-by: NJiang Yutang <b14898@freescale.com>
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      a0a74d1e
    • L
      Linux 2.6.32-rc8 · 648f4e3e
      Linus Torvalds 提交于
      648f4e3e
    • L
      Merge branch 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6 · e6236f78
      Linus Torvalds 提交于
      * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
        SUNRPC: Address buffer overrun in rpc_uaddr2sockaddr()
        NFSv4: Fix a cache validation bug which causes getcwd() to return ENOENT
      e6236f78
    • A
      vt: Fix use of "new" in a struct field · 308efab5
      Alan Cox 提交于
      As this struct is exposed to user space and the API was added for this
      release it's a bit of a pain for the C++ world and we still have time to
      fix it. Rename the fields before we end up with that pain in an actual
      release.
      Signed-off-by: NAlan Cox <alan@linux.intel.com>
      Reported-by: Olivier Goffart
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      308efab5
    • D
      Fix handling of the HP/Acer 'DMAR at zero' BIOS error for machines with <4GiB RAM. · 5854d9c8
      David Woodhouse 提交于
      Commit 86cf898e ("intel-iommu: Check for
      'DMAR at zero' BIOS error earlier.") was supposed to work by pretending
      not to detect an IOMMU if it was actually being reported by the BIOS at
      physical address zero.
      
      However, the intel_iommu_init() function is called unconditionally, as
      are the corresponding functions for other IOMMU hardware.
      
      So the patch only worked if you have RAM above the 4GiB boundary. It
      caused swiotlb to be initialised when no IOMMU was detected during early
      boot, and thus the later IOMMU init would refuse to run.
      
      But if you have less RAM than that, swiotlb wouldn't get set up and the
      IOMMU _would_ still end up being initialised, even though we never
      claimed to detect it.
      
      This patch also sets the dmar_disabled flag when the error is detected
      during the initial detection phase -- so that the later call to
      intel_iommu_init() will return without doing anything, regardless of
      whether swiotlb is used or not.
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5854d9c8
    • D
      CacheFiles: Don't log lookup/create failing with ENOBUFS · 14e69647
      David Howells 提交于
      Don't log the CacheFiles lookup/create object routined failing with ENOBUFS as
      under high memory load or high cache load they can do this quite a lot.  This
      error simply means that the requested object cannot be created on disk due to
      lack of space, or due to failure of the backing filesystem to find sufficient
      resources.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      14e69647
    • D
      CacheFiles: Catch an overly long wait for an old active object · fee096de
      David Howells 提交于
      Catch an overly long wait for an old, dying active object when we want to
      replace it with a new one.  The probability is that all the slow-work threads
      are hogged, and the delete can't get a look in.
      
      What we do instead is:
      
       (1) if there's nothing in the slow work queue, we sleep until either the dying
           object has finished dying or there is something in the slow work queue
           behind which we can queue our object.
      
       (2) if there is something in the slow work queue, we return ETIMEDOUT to
           fscache_lookup_object(), which then puts us back on the slow work queue,
           presumably behind the deletion that we're blocked by.  We are then
           deferred for a while until we work our way back through the queue -
           without blocking a slow-work thread unnecessarily.
      
      A backtrace similar to the following may appear in the log without this patch:
      
      	INFO: task kslowd004:5711 blocked for more than 120 seconds.
      	"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
      	kslowd004     D 0000000000000000     0  5711      2 0x00000080
      	 ffff88000340bb80 0000000000000046 ffff88002550d000 0000000000000000
      	 ffff88002550d000 0000000000000007 ffff88000340bfd8 ffff88002550d2a8
      	 000000000000ddf0 00000000000118c0 00000000000118c0 ffff88002550d2a8
      	Call Trace:
      	 [<ffffffff81058e21>] ? trace_hardirqs_on+0xd/0xf
      	 [<ffffffffa011c4d8>] ? cachefiles_wait_bit+0x0/0xd [cachefiles]
      	 [<ffffffffa011c4e1>] cachefiles_wait_bit+0x9/0xd [cachefiles]
      	 [<ffffffff81353153>] __wait_on_bit+0x43/0x76
      	 [<ffffffff8111ae39>] ? ext3_xattr_get+0x1ec/0x270
      	 [<ffffffff813531ef>] out_of_line_wait_on_bit+0x69/0x74
      	 [<ffffffffa011c4d8>] ? cachefiles_wait_bit+0x0/0xd [cachefiles]
      	 [<ffffffff8104c125>] ? wake_bit_function+0x0/0x2e
      	 [<ffffffffa011bc79>] cachefiles_mark_object_active+0x203/0x23b [cachefiles]
      	 [<ffffffffa011c209>] cachefiles_walk_to_object+0x558/0x827 [cachefiles]
      	 [<ffffffffa011a429>] cachefiles_lookup_object+0xac/0x12a [cachefiles]
      	 [<ffffffffa00aa1e9>] fscache_lookup_object+0x1c7/0x214 [fscache]
      	 [<ffffffffa00aafc5>] fscache_object_state_machine+0xa5/0x52d [fscache]
      	 [<ffffffffa00ab4ac>] fscache_object_slow_work_execute+0x5f/0xa0 [fscache]
      	 [<ffffffff81082093>] slow_work_execute+0x18f/0x2d1
      	 [<ffffffff8108239a>] slow_work_thread+0x1c5/0x308
      	 [<ffffffff8104c0f1>] ? autoremove_wake_function+0x0/0x34
      	 [<ffffffff810821d5>] ? slow_work_thread+0x0/0x308
      	 [<ffffffff8104be91>] kthread+0x7a/0x82
      	 [<ffffffff8100beda>] child_rip+0xa/0x20
      	 [<ffffffff8100b87c>] ? restore_args+0x0/0x30
      	 [<ffffffff8104be17>] ? kthread+0x0/0x82
      	 [<ffffffff8100bed0>] ? child_rip+0x0/0x20
      	1 lock held by kslowd004/5711:
      	 #0:  (&sb->s_type->i_mutex_key#7/1){+.+.+.}, at: [<ffffffffa011be64>] cachefiles_walk_to_object+0x1b3/0x827 [cachefiles]
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      fee096de
    • D
      CacheFiles: Better showing of debugging information in active object problems · d0e27b78
      David Howells 提交于
      Show more debugging information if cachefiles_mark_object_active() is asked to
      activate an active object.
      
      This may happen, for instance, if the netfs tries to register an object with
      the same key multiple times.
      
      The code is changed to (a) get the appropriate object lock to protect the
      cookie pointer whilst we dereference it, and (b) get and display the cookie key
      if available.
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      d0e27b78
    • D
      CacheFiles: Mark parent directory locks as I_MUTEX_PARENT to keep lockdep happy · 6511de33
      David Howells 提交于
      Mark parent directory locks as I_MUTEX_PARENT in the callers of
      cachefiles_bury_object() so that lockdep doesn't complain when that invokes
      vfs_unlink():
      
      =============================================
      [ INFO: possible recursive locking detected ]
      2.6.32-rc6-cachefs #47
      ---------------------------------------------
      kslowd002/3089 is trying to acquire lock:
       (&sb->s_type->i_mutex_key#7){+.+.+.}, at: [<ffffffff810bbf72>] vfs_unlink+0x8b/0x128
      
      but task is already holding lock:
       (&sb->s_type->i_mutex_key#7){+.+.+.}, at: [<ffffffffa00e4e61>] cachefiles_walk_to_object+0x1b0/0x831 [cachefiles]
      
      other info that might help us debug this:
      1 lock held by kslowd002/3089:
       #0:  (&sb->s_type->i_mutex_key#7){+.+.+.}, at: [<ffffffffa00e4e61>] cachefiles_walk_to_object+0x1b0/0x831 [cachefiles]
      
      stack backtrace:
      Pid: 3089, comm: kslowd002 Not tainted 2.6.32-rc6-cachefs #47
      Call Trace:
       [<ffffffff8105ad7b>] __lock_acquire+0x1649/0x16e3
       [<ffffffff8118170e>] ? inode_has_perm+0x5f/0x61
       [<ffffffff8105ae6c>] lock_acquire+0x57/0x6d
       [<ffffffff810bbf72>] ? vfs_unlink+0x8b/0x128
       [<ffffffff81353ac3>] mutex_lock_nested+0x54/0x292
       [<ffffffff810bbf72>] ? vfs_unlink+0x8b/0x128
       [<ffffffff8118179e>] ? selinux_inode_permission+0x8e/0x90
       [<ffffffff8117e271>] ? security_inode_permission+0x1c/0x1e
       [<ffffffff810bb4fb>] ? inode_permission+0x99/0xa5
       [<ffffffff810bbf72>] vfs_unlink+0x8b/0x128
       [<ffffffff810adb19>] ? kfree+0xed/0xf9
       [<ffffffffa00e3f00>] cachefiles_bury_object+0xb6/0x420 [cachefiles]
       [<ffffffff81058e21>] ? trace_hardirqs_on+0xd/0xf
       [<ffffffffa00e7e24>] ? cachefiles_check_object_xattr+0x233/0x293 [cachefiles]
       [<ffffffffa00e51b0>] cachefiles_walk_to_object+0x4ff/0x831 [cachefiles]
       [<ffffffff81032238>] ? finish_task_switch+0x0/0xb2
       [<ffffffffa00e3429>] cachefiles_lookup_object+0xac/0x12a [cachefiles]
       [<ffffffffa00741e9>] fscache_lookup_object+0x1c7/0x214 [fscache]
       [<ffffffffa0074fc5>] fscache_object_state_machine+0xa5/0x52d [fscache]
       [<ffffffffa00754ac>] fscache_object_slow_work_execute+0x5f/0xa0 [fscache]
       [<ffffffff81082093>] slow_work_execute+0x18f/0x2d1
       [<ffffffff8108239a>] slow_work_thread+0x1c5/0x308
       [<ffffffff8104c0f1>] ? autoremove_wake_function+0x0/0x34
       [<ffffffff810821d5>] ? slow_work_thread+0x0/0x308
       [<ffffffff8104be91>] kthread+0x7a/0x82
       [<ffffffff8100beda>] child_rip+0xa/0x20
       [<ffffffff8100b87c>] ? restore_args+0x0/0x30
       [<ffffffff8104be17>] ? kthread+0x0/0x82
       [<ffffffff8100bed0>] ? child_rip+0x0/0x20
      Signed-off-by: NDaivd Howells <dhowells@redhat.com>
      6511de33
    • D
      CacheFiles: Handle truncate unlocking the page we're reading · 5e929b33
      David Howells 提交于
      Handle truncate unlocking the page we're attempting to read from the backing
      device before the read has completed.
      
      This was causing reports like the following to occur:
      
      	Pid: 4765, comm: kslowd Not tainted 2.6.30.1 #1
      	Call Trace:
      	 [<ffffffffa0331d7a>] ? cachefiles_read_waiter+0xd9/0x147 [cachefiles]
      	 [<ffffffff804b74bd>] ? __wait_on_bit+0x60/0x6f
      	 [<ffffffff8022bbbb>] ? __wake_up_common+0x3f/0x71
      	 [<ffffffff8022cc32>] ? __wake_up+0x30/0x44
      	 [<ffffffff8024a41f>] ? __wake_up_bit+0x28/0x2d
      	 [<ffffffffa003a793>] ? ext3_truncate+0x4d7/0x8ed [ext3]
      	 [<ffffffff80281f90>] ? pagevec_lookup+0x17/0x1f
      	 [<ffffffff8028c2ff>] ? unmap_mapping_range+0x59/0x1ff
      	 [<ffffffff8022cc32>] ? __wake_up+0x30/0x44
      	 [<ffffffff8028e286>] ? vmtruncate+0xc2/0xe2
      	 [<ffffffff802b82cf>] ? inode_setattr+0x22/0x10a
      	 [<ffffffffa003baa5>] ? ext3_setattr+0x17b/0x1e6 [ext3]
      	 [<ffffffff802b853d>] ? notify_change+0x186/0x2c9
      	 [<ffffffffa032d9de>] ? cachefiles_attr_changed+0x133/0x1cd [cachefiles]
      	 [<ffffffffa032df7f>] ? cachefiles_lookup_object+0xcf/0x12a [cachefiles]
      	 [<ffffffffa0318165>] ? fscache_lookup_object+0x110/0x122 [fscache]
      	 [<ffffffffa03188c3>] ? fscache_object_slow_work_execute+0x590/0x6bc
      	[fscache]
      	 [<ffffffff80278f82>] ? slow_work_thread+0x285/0x43a
      	 [<ffffffff8024a446>] ? autoremove_wake_function+0x0/0x2e
      	 [<ffffffff80278cfd>] ? slow_work_thread+0x0/0x43a
      	 [<ffffffff8024a317>] ? kthread+0x54/0x81
      	 [<ffffffff8020c93a>] ? child_rip+0xa/0x20
      	 [<ffffffff8024a2c3>] ? kthread+0x0/0x81
      	 [<ffffffff8020c930>] ? child_rip+0x0/0x20
      	CacheFiles: I/O Error: Readpage failed on backing file 200000000000810
      	FS-Cache: Cache cachefiles stopped due to I/O error
      Reported-by: NChristian Kujau <lists@nerdbynature.de>
      Reported-by: NTakashi Iwai <tiwai@suse.de>
      Reported-by: NDuc Le Minh <duclm.vn@gmail.com>
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      5e929b33
    • D
      CacheFiles: Don't write a full page if there's only a partial page to cache · a17754fb
      David Howells 提交于
      cachefiles_write_page() writes a full page to the backing file for the last
      page of the netfs file, even if the netfs file's last page is only a partial
      page.
      
      This causes the EOF on the backing file to be extended beyond the EOF of the
      netfs, and thus the backing file will be truncated by cachefiles_attr_changed()
      called from cachefiles_lookup_object().
      
      So we need to limit the write we make to the backing file on that last page
      such that it doesn't push the EOF too far.
      
      Also, if a backing file that has a partial page at the end is expanded, we
      discard the partial page and refetch it on the basis that we then have a hole
      in the file with invalid data, and should the power go out...  A better way to
      deal with this could be to record a note that the partial page contains invalid
      data until the correct data is written into it.
      
      This isn't a problem for netfs's that discard the whole backing file if the
      file size changes (such as NFS).
      Signed-off-by: NDavid Howells <dhowells@redhat.com>
      a17754fb