1. 21 11月, 2007 1 次提交
    • J
      [CIFS] Fix potential data corruption when writing out cached dirty pages · cea21805
      Jeff Layton 提交于
      Fix RedHat bug 329431
      
      The idea here is separate "conscious" from "unconscious" flushes.
      Conscious flushes are those due to a fsync() or close(). Unconscious
      ones are flushes that occur as a side effect of some other operation or
      due to memory pressure.
      
      Currently, when an error occurs during an unconscious flush (ENOSPC or
      EIO), we toss out the page and don't preserve that error to report to
      the user when a conscious flush occurs. If after the unconscious flush,
      there are no more dirty pages for the inode, the conscious flush will
      simply return success even though there were previous errors when writing
      out pages. This can lead to data corruption.
      
      The easiest way to reproduce this is to mount up a CIFS share that's
      very close to being full or where the user is very close to quota. mv
      a file to the share that's slightly larger than the quota allows. The
      writes will all succeed (since they go to pagecache). The mv will do a
      setattr to set the new file's attributes. This calls
      filemap_write_and_wait,
      which will return an error since all of the pages can't be written out.
      Then later, when the flush and release ops occur, there are no more
      dirty pages in pagecache for the file and those operations return 0. mv
      then assumes that the file was written out correctly and deletes the
      original.
      
      CIFS already has a write_behind_rc variable where it stores the results
      from earlier flushes, but that value is only reported in cifs_close.
      Since the VFS ignores the return value from the release operation, this
      isn't helpful. We should be reporting this error during the flush
      operation.
      
      This patch does the following:
      
      1) changes cifs_fsync to use filemap_write_and_wait and cifs_flush and also
      sync to check its return code. If it returns successful, they then check
      the value of write_behind_rc to see if an earlier flush had reported any
      errors. If so, they return that error and clear write_behind_rc.
      
      2) sets write_behind_rc in a few other places where pages are written
      out as a side effect of other operations and the code waits on them.
      
      3) changes cifs_setattr to only call filemap_write_and_wait for
      ATTR_SIZE changes.
      
      4) makes cifs_writepages accurately distinguish between EIO and ENOSPC
      errors when writing out pages.
      
      Some simple testing indicates that the patch works as expected and that
      it fixes the reproduceable known problem.
      Acked-by: NDave Kleikamp <shaggy@austin.rr.com>
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      cea21805
  2. 20 11月, 2007 1 次提交
  3. 17 11月, 2007 7 次提交
  4. 14 11月, 2007 6 次提交
    • S
      [CIFS] Fix buffer overflow if server sends corrupt response to small · 133672ef
      Steve French 提交于
      request
      
      In SendReceive() function in transport.c - it memcpy's
      message payload into a buffer passed via out_buf param. The function
      assumes that all buffers are of size (CIFSMaxBufSize +
      MAX_CIFS_HDR_SIZE) , unfortunately it is also called with smaller
      (MAX_CIFS_SMALL_BUFFER_SIZE) buffers.  There are eight callers
      (SMB worker functions) which are primarily affected by this change:
      
      TreeDisconnect, uLogoff, Close, findClose, SetFileSize, SetFileTimes,
      Lock and PosixLock
      
      CC: Dave Kleikamp <shaggy@austin.ibm.com>
      CC: Przemyslaw Wegrzyn <czajnik@czajsoft.pl>
      Acked-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NSteve French <sfrench@us.ibm.com>
      133672ef
    • L
      Merge branch 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6 · 9418d5dc
      Linus Torvalds 提交于
      * 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6:
        hwmon: (i5k_amb) Convert macros to C functions
        hwmon: (w83781d) Add missing curly braces
        hwmon: (abituguru3) Identify ABit IP35 Pro as such
        hwmon: (f75375s) pwmX_mode sysfs files writable for f75375 variant
        hwmon: (f75375s) On n2100 systems, set fans to full speed on boot
        hwmon: (f75375s) Allow setting up fans with platform_data
        hwmon: (f75375s) Add new style bindings
        hwmon: (lm70) Convert semaphore to mutex
        hwmon: (applesmc) Add support for Mac Pro 2 x Quad-Core
        hwmon: (abituguru3) Add support for 2 new motherboards
        hwmon: (ibmpex) Change printk to dev_{info,err} macros
        hwmon: (i5k_amb) New memory temperature sensor driver
        hwmon: (f75375s) fix pwm mode setting
        hwmon: (ibmpex.c) fix NULL dereference
        hwmon: (sis5595) Split sis5595_attributes_opt
        hwmon: (sis5595) Add individual alarm files
        hwmon: (w83627hf) push nr+1 offset into *_REG_FAN macros and simplify
        hwmon: (w83627hf) hoist nr-1 offset out of show-store-temp-X
        hwmon: Add power meter spec to Documentation/hwmon/sysfs-interface
      9418d5dc
    • L
      Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 · 31083eba
      Linus Torvalds 提交于
      * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: (45 commits)
        [NETFILTER]: xt_time should not assume CONFIG_KTIME_SCALAR
        [NET]: Move unneeded data to initdata section.
        [NET]: Cleanup pernet operation without CONFIG_NET_NS
        [TEHUTI]: Fix incorrect usage of strncat in bdx_get_drvinfo()
        [MYRI_SBUS]: Prevent that myri_do_handshake lies about ticks.
        [NETFILTER]: bridge: fix double POSTROUTING hook invocation
        [NETFILTER]: Consolidate nf_sockopt and compat_nf_sockopt
        [NETFILTER]: nf_nat: fix memset error
        [INET]: Use list_head-s in inetpeer.c
        [IPVS]: Remove unused exports.
        [NET]: Unexport sysctl_{r,w}mem_max.
        [TG3]: Update version to 3.86
        [TG3]: MII => TP
        [TG3]: Add A1 revs
        [TG3]: Increase the PCI MRRS
        [TG3]: Prescaler fix
        [TG3]: Limit 5784 / 5764 to MAC LED mode
        [TG3]: Disable GPHY autopowerdown
        [TG3]: CPMU adjustments for loopback tests
        [TG3]: Fix nvram selftest failures
        ...
      31083eba
    • L
      Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · a7fe7716
      Linus Torvalds 提交于
      * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
        [POWERPC] Silence an annoying boot message
        [POWERPC] Fix early btext debug on PowerMac
        [POWERPC] Demote clockevent printk to KERN_DEBUG
        [POWERPC] Fix CONFIG_SMP=n build error on ppc64
        [POWERPC] Avoid unpaired stwcx. on some processors
        [POWERPC] Fix oops related to 4xx flush_tlb_page modification
        [POWERPC] cpm: Fix a couple minor issues in cpm_common.c.
        [POWERPC] Add -mno-spe for ARCH=powerpc builds
      a7fe7716
    • A
      ACPI: Battery: remove cycle from battery removal. · 9104476e
      Alexey Starikovskiy 提交于
      get_property() should not call battery_update(), it also should call
      get_status() only if battery is present to avoid cycle and oops.
      Signed-off-by: NAlexey Starikovskiy <astarikovskiy@suse.de>
      Tested-by: NRolf Eike Beer <eike-kernel@sf-tec.de>
      Acked-by: NJohannes Weiner <hannes@saeurebad.de>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9104476e
    • L
      Revert "ext2/ext3/ext4: add block bitmap validation" · 0b832a4b
      Linus Torvalds 提交于
      This reverts commit 7c9e69fa, fixing up
      conflicts in fs/ext4/balloc.c manually.
      
      The cost of doing the bitmap validation on each lookup - even when the
      bitmap is cached - is absolutely prohibitive.  We could, and probably
      should, do it only when adding the bitmap to the buffer cache.  However,
      right now we are better off just reverting it.
      
      Peter Zijlstra measured the cost of this extra validation as a 85%
      decrease in cached iozone, and while I had a patch that took it down to
      just 17% by not being _quite_ so stupid in the validation, it was still
      a big slowdown that could have been avoided by just doing it right.
      
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com>
      Cc: Andreas Dilger <adilger@clusterfs.com>
      Cc: Mingming Cao <cmm@us.ibm.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      0b832a4b
  5. 13 11月, 2007 25 次提交
新手
引导
客服 返回
顶部