1. 13 10月, 2008 1 次提交
  2. 11 10月, 2008 4 次提交
    • H
      ext4: add an option to control error handling on file data · 5bf5683a
      Hidehiro Kawai 提交于
      If the journal doesn't abort when it gets an IO error in file data
      blocks, the file data corruption will spread silently.  Because
      most of applications and commands do buffered writes without fsync(),
      they don't notice the IO error.  It's scary for mission critical
      systems.  On the other hand, if the journal aborts whenever it gets
      an IO error in file data blocks, the system will easily become
      inoperable.  So this patch introduces a filesystem option to
      determine whether it aborts the journal or just call printk() when
      it gets an IO error in file data.
      
      If you mount an ext4 fs with data_err=abort option, it aborts on file
      data write error.  If you mount it with data_err=ignore, it doesn't
      abort, just call printk().  data_err=ignore is the default.
      
      Here is the corresponding patch of the ext3 version:
      http://kerneltrap.org/mailarchive/linux-kernel/2008/9/9/3239374Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      5bf5683a
    • H
      jbd2: don't dirty original metadata buffer on abort · 7ad7445f
      Hidehiro Kawai 提交于
      Currently, original metadata buffers are dirtied when they are
      unfiled whether the journal has aborted or not.  Eventually these
      buffers will be written-back to the filesystem by pdflush.  This
      means some metadata buffers are written to the filesystem without
      journaling if the journal aborts.  So if both journal abort and
      system crash happen at the same time, the filesystem would become
      inconsistent state.  Additionally, replaying journaled metadata
      can overwrite the latest metadata on the filesystem partly.
      Because, if the journal gets aborted, journaled metadata are
      preserved and replayed during the next mount not to lose
      uncheckpointed metadata.  This would also break the consistency
      of the filesystem.
      
      This patch prevents original metadata buffers from being dirtied
      on abort by clearing BH_JBDDirty flag from those buffers.  Thus,
      no metadata buffers are written to the filesystem without journaling.
      Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      7ad7445f
    • H
      ext4: add checks for errors from jbd2 · 7ffe1ea8
      Hidehiro Kawai 提交于
      If the journal has aborted due to a checkpointing failure, we
      have to keep the contents of the journal space.  Otherwise, the
      filesystem will lose uncheckpointed metadata completely and
      become inconsistent.  To avoid this, we need to keep needs_recovery
      flag if checkpoint has failed.
      
      With this patch, ext4_put_super() detects a checkpointing failure
      from the return value of journal_destroy(), then it invokes
      ext4_abort() to make the filesystem read only and keep
      needs_recovery flag.  Errors from jbd2_journal_flush() are also
      handled by this patch in some places.
      Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      7ffe1ea8
    • H
      jbd2: fix error handling for checkpoint io · 44519faf
      Hidehiro Kawai 提交于
      When a checkpointing IO fails, current JBD2 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 jbd2_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. jbd2_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 ext4 layer so
         that ext4 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 jbd2_cleanup_journal_tail() from being called between
         __jbd2_journal_drop_transaction() and jbd2_journal_abort()
         (a possible race issue between jbd2_log_do_checkpoint()s called by
         jbd2_journal_flush() and __jbd2_log_wait_for_space())
      Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      44519faf
  3. 13 10月, 2008 1 次提交
    • H
      jbd2: abort when failed to log metadata buffers · 77e841de
      Hidehiro Kawai 提交于
      If we failed to write metadata buffers to the journal space and
      succeeded to write the commit record, stale data can be written
      back to the filesystem as metadata in the recovery phase.
      
      To avoid this, when we failed to write out metadata buffers,
      abort the journal before writing the commit record.
      
      We can also avoid this kind of corruption by using the journal
      checksum feature because it can detect invalid metadata blocks in the
      journal and avoid them from being replayed.  So we don't need to care
      about asynchronous commit record writeout with a checksum.
      Signed-off-by: NHidehiro Kawai <hidehiro.kawai.ez@hitachi.com>
      Signed-off-by: NTheodore Ts'o <tytso@mit.edu>
      77e841de
  4. 12 10月, 2008 14 次提交
    • L
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · fd048088
      Linus Torvalds 提交于
      * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (43 commits)
        ext4: Rename ext4dev to ext4
        ext4: Avoid double dirtying of super block in ext4_put_super()
        Update ext4 MAINTAINERS file
        Hook ext4 to the vfs fiemap interface.
        generic block based fiemap implementation
        ocfs2: fiemap support
        vfs: vfs-level fiemap interface
        ext4: fix xattr deadlock
        jbd2: Fix buffer head leak when writing the commit block
        ext4: Add debugging markers that can be used by systemtap
        jbd2: abort instead of waiting for nonexistent transaction
        ext4: fix initialization of UNINIT bitmap blocks
        ext4: Remove old legacy block allocator
        ext4: Use readahead when reading an inode from the inode table
        ext4: Improve the documentation for ext4's /proc tunables
        ext4: Combine proc file handling into a single set of functions
        ext4: move /proc setup and teardown out of mballoc.c
        ext4: Don't use 'struct dentry' for internal lookups
        ext4/jbd2: Avoid WARN() messages when failing to write to the superblock
        ext4: use percpu data structures for lg_prealloc_list
        ...
      fd048088
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · 5c3c4d9b
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (71 commits)
        ide: Remove ide_spin_wait_hwgroup() and use special requests instead
        ide: move IDE{FLOPPY,TAPE}_WAIT_CMD defines to <linux/ide.h>
        ide: add ide_do_test_unit_ready() helper
        ide: add ide_do_start_stop() helper
        ide: add ide_set_media_lock() helper
        ide-floppy: move floppy ioctls handling to ide-floppy_ioctl.c
        ide-floppy: ->{srfp,wp} -> IDE_AFLAG_{SRFP,WP}
        ide: add ide_queue_pc_tail() helper
        ide: add ide_queue_pc_head() helper
        ide: add ide_init_pc() helper
        ide-tape: add ide_tape_set_media_lock() helper
        ide-floppy: add ide_floppy_set_media_lock() helper
        ide: add ide_io_buffers() helper
        ide-scsi: cleanup ide_scsi_io_buffers()
        ide-floppy: remove MODE_SENSE_* defines
        ide-{floppy,tape}: remove packet command stack
        ide-{floppy,tape}: remove request stack
        ide-generic: handle probing of legacy io-ports v5
        ide-floppy: use scatterlists for pio transfers
        ide-tape: remove idetape_init_rq()
        ...
      5c3c4d9b
    • L
      Merge phase #4 (X2APIC, APIC unification, CPU identification unification) of... · ead9d23d
      Linus Torvalds 提交于
      Merge phase #4 (X2APIC, APIC unification, CPU identification unification) of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
      
      * 'x86-v28-for-linus-phase4-D' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (186 commits)
        x86, debug: print more information about unknown CPUs
        x86 setup: handle more than 8 CPU flag words
        x86: cpuid, fix typo
        x86: move transmeta cap read to early_init_transmeta()
        x86: identify_cpu_without_cpuid v2
        x86: extended "flags" to show virtualization HW feature in /proc/cpuinfo
        x86: move VMX MSRs to msr-index.h
        x86: centaur_64.c remove duplicated setting of CONSTANT_TSC
        x86: intel.c put workaround for old cpus together
        x86: let intel 64-bit use intel.c
        x86: make intel_64.c the same as intel.c
        x86: make intel.c have 64-bit support code
        x86: little clean up of intel.c/intel_64.c
        x86: make 64 bit to use amd.c
        x86: make amd_64 have 32 bit code
        x86: make amd.c have 64bit support code
        x86: merge header in amd_64.c
        x86: add srat_detect_node for amd64
        x86: remove duplicated force_mwait
        x86: cpu make amd.c more like amd_64.c v2
        ...
      ead9d23d
    • I
      Merge branch 'x86/unify-cpu-detect' into x86-v28-for-linus-phase4-D · 0afe2db2
      Ingo Molnar 提交于
      Conflicts:
      	arch/x86/kernel/cpu/common.c
      	arch/x86/kernel/signal_64.c
      	include/asm-x86/cpufeature.h
      0afe2db2
    • I
      Merge branch 'x86/apic' into x86-v28-for-linus-phase4-B · d8470596
      Ingo Molnar 提交于
      Conflicts:
      	arch/x86/kernel/apic_32.c
      	arch/x86/kernel/apic_64.c
      	arch/x86/kernel/setup.c
      	drivers/pci/intel-iommu.c
      	include/asm-x86/cpufeature.h
      	include/asm-x86/dma-mapping.h
      d8470596
    • L
      Merge phase #3 (IOMMU) of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · bf6f51e3
      Linus Torvalds 提交于
      * 'x86-v28-for-linus-phase3-B' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (74 commits)
        AMD IOMMU: use iommu_device_max_index, fix
        AMD IOMMU: use iommu_device_max_index
        x86: add PCI IDs for AMD Barcelona PCI devices
        x86/iommu: use __GFP_ZERO instead of memset for GART
        x86/iommu: convert GART need_flush to bool
        x86/iommu: make GART driver checkpatch clean
        x86 gart: remove unnecessary initialization
        x86: restore old GART alloc_coherent behavior
        revert "x86: make GART to respect device's dma_mask about virtual mappings"
        x86: export pci-nommu's alloc_coherent
        iommu: remove fullflush and nofullflush in IOMMU generic option
        x86: remove set_bit_string()
        iommu: export iommu_area_reserve helper function
        AMD IOMMU: use coherent_dma_mask in alloc_coherent
        add AMD IOMMU tree to MAINTAINERS file
        AMD IOMMU: use cmd_buf_size when freeing the command buffer
        AMD IOMMU: calculate IVHD size with a function
        AMD IOMMU: remove unnecessary cast to u64 in the init code
        AMD IOMMU: free domain bitmap with its allocation order
        AMD IOMMU: simplify dma_mask_to_pages
        ...
      bf6f51e3
    • L
      Merge phase #2 (PAT updates) of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip · ec8deffa
      Linus Torvalds 提交于
      * 'x86-v28-for-linus-phase2-B' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (27 commits)
        x86, cpa: make the kernel physical mapping initialization a two pass sequence, fix
        x86, pat: cleanups
        x86: fix pagetable init 64-bit breakage
        x86: track memtype for RAM in page struct
        x86, cpa: srlz cpa(), global flush tlb after splitting big page and before doing cpa
        x86, cpa: remove cpa pool code
        x86, cpa: no need to check alias for __set_pages_p/__set_pages_np
        x86, cpa: dont use large pages for kernel identity mapping with DEBUG_PAGEALLOC
        x86, cpa: make the kernel physical mapping initialization a two pass sequence
        x86, cpa: remove USER permission from the very early identity mapping attribute
        x86, cpa: rename PTE attribute macros for kernel direct mapping in early boot
        x86: make sure the CPA test code's use of _PAGE_UNUSED1 is obvious
        linux-next: fix x86 tree build failure
        x86: have set_memory_array_{uc,wb} coalesce memtypes, fix
        agp: enable optimized agp_alloc_pages methods
        x86: have set_memory_array_{uc,wb} coalesce memtypes.
        x86: {reverve,free}_memtype() take a physical address
        x86: fix pageattr-test
        agp: add agp_generic_destroy_pages()
        agp: generic_alloc_pages()
        ...
      ec8deffa
    • L
      Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm · 7cc4e87f
      Linus Torvalds 提交于
      * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (236 commits)
        [ARM] 5300/1: fixup spitz reset during boot
        [ARM] 5295/1: make ZONE_DMA optional
        [ARM] 5239/1: Palm Zire 72 power management support
        [ARM] 5298/1: Drop desc_handle_irq()
        [ARM] 5297/1: [KS8695] Fix two compile-time warnings
        [ARM] 5296/1: [KS8695] Replace macro's with trailing underscores.
        [ARM] pxa: allow multi-machine PCMCIA builds
        [ARM] pxa: add preliminary CPUFREQ support for PXA3xx
        [ARM] pxa: add missing ACCR bit definitions to pxa3xx-regs.h
        [ARM] pxa: rename cpu-pxa.c to cpufreq-pxa2xx.c
        [ARM] pxa/zylonite: add support for USB OHCI
        [ARM] ohci-pxa27x: use ioremap() and offset for register access
        [ARM] ohci-pxa27x: introduce pxa27x_clear_otgph()
        [ARM] ohci-pxa27x: use platform_get_{irq,resource} for the resource
        [ARM] ohci-pxa27x: move OHCI controller specific registers into the driver
        [ARM] ohci-pxa27x: introduce flags to avoid direct access to OHCI registers
        [ARM] pxa: move I2S register and bit definitions into pxa2xx-i2s.c
        [ARM] pxa: simplify DMA register definitions
        [ARM] pxa: make additional DCSR bits valid for PXA3xx
        [ARM] pxa: move i2c register and bit definitions into i2c-pxa.c
        ...
      
      Fixed up conflicts in
      	arch/arm/mach-versatile/core.c
      	sound/soc/pxa/pxa2xx-ac97.c
      	sound/soc/pxa/pxa2xx-i2s.c
      manually.
      7cc4e87f
    • A
      security: avoid calling a NULL function pointer in drivers/video/tvaudio.c · 5ba2f67a
      Arjan van de Ven 提交于
      NULL function pointers are very bad security wise. This one got caught by
      kerneloops.org quite a few times, so it's happening in the field....
      
      Fix is simple, check the function pointer for NULL, like 6 other places
      in the same function are already doing.
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      5ba2f67a
    • L
      net: fix dummy 'nf_conntrack_event_cache()' · 64f1b653
      Linus Torvalds 提交于
      The dummy version of 'nf_conntrack_event_cache()' (used when the
      NF_CONNTRACK_EVENTS config option is not enabled) had not been updated
      when the calling convention changed.
      
      This was introduced by commit a71996fc
      ("netfilter: netns nf_conntrack: pass conntrack to
      nf_conntrack_event_cache() not skb")
      
      Tssk.
      
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Patrick McHardy <kaber@trash.net>
      Cc: David Miller <davem@davemloft.net>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      64f1b653
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 · 4dd9ec49
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1075 commits)
        myri10ge: update driver version number to 1.4.3-1.369
        r8169: add shutdown handler
        r8169: preliminary 8168d support
        r8169: support additional 8168cp chipset
        r8169: change default behavior for mildly identified 8168c chipsets
        r8169: add a new 8168cp flavor
        r8169: add a new 8168c flavor (bis)
        r8169: add a new 8168c flavor
        r8169: sync existing 8168 device hardware start sequences with vendor driver
        r8169: 8168b Tx performance tweak
        r8169: make room for more specific 8168 hardware start procedure
        r8169: shuffle some registers handling around (8168 operation only)
        r8169: new phy init parameters for the 8168b
        r8169: update phy init parameters
        r8169: wake up the PHY of the 8168
        af_key: fix SADB_X_SPDDELETE response
        ath9k: Fix return code when ath9k_hw_setpower() fails on reset
        ath9k: remove nasty FAIL macro from ath9k_hw_reset()
        gre: minor cleanups in netlink interface
        gre: fix copy and paste error
        ...
      4dd9ec49
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6 · 86ed5a93
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
        [CIFS] Check that last search entry resume key is valid
        [CIFS] make sure we have the right resume info before calling CIFSFindNext
        [CIFS]  clean up error handling in cifs_unlink
        [CIFS] fix some settings of cifsAttrs after calling SetFileInfo and SetPathInfo
        cifs: explicitly revoke SPNEGO key after session setup
        cifs: Convert cifs to new aops.
        [CIFS] update DOS attributes in cifsInode if we successfully changed them
        cifs: remove NULL termination from rename target in CIFSSMBRenameOpenFIle
        cifs: work around samba returning -ENOENT on SetFileDisposition call
        cifs: fix inverted NULL check after kmalloc
        [CIFS] clean up upcall handling for dns_resolver keys
        [CIFS]  fix busy-file renames and refactor cifs_rename logic
        cifs: add function to set file disposition
        [CIFS] add constants for string lengths of keynames in SPNEGO upcall string
        cifs: move rename and delete-on-close logic into helper function
        cifs: have find_writeable_file prefer filehandles opened by same task
        cifs: don't use GFP_KERNEL with GFP_NOFS
        [CIFS] use common code for turning off ATTR_READONLY in cifs_unlink
        cifs: clean up variables in cifs_unlink
      86ed5a93
    • L
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · 835a1c09
      Linus Torvalds 提交于
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (49 commits)
        MIPS: RB532: provide GPIO_BUILTIN_NR and irq_to_gpio/gpio_to_irq
        MIPS: Move ptrace prototypes to ptrace.h
        MIPS: Ptrace support for HARDWARE_WATCHPOINTS
        MIPS: Scheduler support for HARDWARE_WATCHPOINTS.
        MIPS: Watch exception handling for HARDWARE_WATCHPOINTS.
        MIPS: Probe watch registers and report configuration.
        MIPS: Add HARDWARE_WATCHPOINTS definitions and support code.
        MIPS: Add HARDWARE_WATCHPOINTS configure option.
        MIPS: Replace use of <asm-generic/uaccess.h> with native implementations.
        MIPS: TXx9: Add TX4939 ATA support (v2)
        MIPS: Rewrite spinlocks to ticket locks.
        MIPS: IP checksums: Optimize adjust of sum on buffers of odd alignment.
        MIPS: IP checksums: Remove unncessary .set pseudos
        MIPS: IP checksums: Remove unncessary folding of sum to 16 bit.
        MIPS: Move headfiles to new location below arch/mips/include
        MIPS: Alchemy: rename directory
        MIPS: Optimize get_user and put_user for 64-bit
        MIPS: TXx9: Implement prom_free_prom_memory
        MIPS: TXx9: Add RBTX4939 board support
        MIPS: TXx9: Add TX4939 SoC support
        ...
      835a1c09
    • L
      Merge branch 'for-linus' of git://git.alsa-project.org/alsa-kernel · d3570a5a
      Linus Torvalds 提交于
      * 'for-linus' of git://git.alsa-project.org/alsa-kernel: (258 commits)
        ALSA: hda: VREF powerdown for headphones
        ALSA: hda: STAC_HP_M4
        ALSA: ASoC: Check for machine type in GTA01 machine driver
        ALSA: mtpav - Fix race in probe
        ALSA: usb-audio: dynamic detection of MIDI interfaces in uaxx-quirk
        ALSA: Add a note on dependency of RTC stuff
        ALSA: ASoC: add new param mux to dapm_mux_update_power
        ALSA: Increase components array size
        ALSA: ASoC: Correct inverted Mic PGA Switch control in wm8510 driver
        ALSA: hda: comment typo fix
        ALSA: hda: comment typo fix
        ALSA: hda - Fix PCI SSID for ASROCK K18N78FullHD-hSLI
        ALSA: snd-usb-audio: support for Edirol UA-4FX device
        ALSA: usb - Fix possible Oops at USB-MIDI disconnection
        ALSA: hda - Fix another ALC889A (rev 0x100101)
        ALSA: hda: add more board-specific information for Realtek ALC662 rev1
        ALSA: Correct Vladimir Barinov's e-mail address
        ALSA: cs46xx: Add PCI IDs for TerraTec and Hercules cards
        ALSA: hda: SPDIF stream muting support
        ALSA: hda: appletv support
        ...
      d3570a5a
  5. 11 10月, 2008 20 次提交