13 Jun, 2013

2 commits

  • Inode's data or non journaled quota may be written w/o jounral so we
    _must_ send a barrier at the end of ext4_sync_fs. But it can be
    skipped if journal commit will do it for us.

    Also fix data integrity for nojournal mode.

    Signed-off-by: Dmitry Monakhov
    Signed-off-by: "Theodore Ts'o"

    Dmitry Monakhov
     
  • Current implementation of jbd2_journal_force_commit() is suboptimal because
    result in empty and useless commits. But callers just want to force and wait
    any unfinished commits. We already have jbd2_journal_force_commit_nested()
    which does exactly what we want, except we are guaranteed that we do not hold
    journal transaction open.

    Signed-off-by: Dmitry Monakhov
    Signed-off-by: "Theodore Ts'o"

    Dmitry Monakhov
     

07 Jun, 2013

1 commit

  • Rename ext4_da_writepages() to ext4_writepages() and use it for all
    modes. We still need to iterate over all the pages in the case of
    data=journalling, but in the case of nodelalloc/data=ordered (which is
    what file systems mounted using ext3 backwards compatibility will use)
    this will allow us to use a much more efficient I/O submission path.

    Signed-off-by: "Theodore Ts'o"

    Theodore Ts'o
     

05 Jun, 2013

8 commits

  • There are two issues with current writeback path in ext4. For one we
    don't necessarily map complete pages when blocksize < pagesize and
    thus needn't do any writeback in one iteration. We always map some
    blocks though so we will eventually finish mapping the page. Just if
    writeback races with other operations on the file, forward progress is
    not really guaranteed. The second problem is that current code
    structure makes it hard to associate all the bios to some range of
    pages with one io_end structure so that unwritten extents can be
    converted after all the bios are finished. This will be especially
    difficult later when io_end will be associated with reserved
    transaction handle.

    We restructure the writeback path to a relatively simple loop which
    first prepares extent of pages, then maps one or more extents so that
    no page is partially mapped, and once page is fully mapped it is
    submitted for IO. We keep all the mapping and IO submission
    information in mpage_da_data structure to somewhat reduce stack usage.
    Resulting code is somewhat shorter than the old one and hopefully also
    easier to read.

    Reviewed-by: Zheng Liu
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • Reviewed-by: Zheng Liu
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • In some cases we cannot start a transaction because of locking
    constraints and passing started transaction into those places is not
    handy either because we could block transaction commit for too long.
    Transaction reservation is designed to solve these issues. It
    reserves a handle with given number of credits in the journal and the
    handle can be later attached to the running transaction without
    blocking on commit or checkpointing. Reserved handles do not block
    transaction commit in any way, they only reduce maximum size of the
    running transaction (because we have to always be prepared to
    accomodate request for attaching reserved handle).

    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • j_wait_logspace and j_wait_checkpoint are unused. Remove them.

    Reviewed-by: Zheng Liu
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • __jbd2_log_space_left() and jbd_space_needed() were kind of odd.
    jbd_space_needed() accounted also credits needed for currently
    committing transaction while it didn't account for credits needed for
    control blocks. __jbd2_log_space_left() then accounted for control
    blocks as a fraction of free space. Since results of these two
    functions are always only compared against each other, this works
    correct but is somewhat strange. Move the estimates so that
    jbd_space_needed() returns number of blocks needed for a transaction
    including control blocks and __jbd2_log_space_left() returns free
    space in the journal (with the committing transaction already
    subtracted). Rename functions to jbd2_log_space_left() and
    jbd2_space_needed() while we are changing them.

    Reviewed-by: Zheng Liu
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • Currently when we add a buffer to a transaction, we wait until the
    buffer is removed from BJ_Shadow list (so that we prevent any changes
    to the buffer that is just written to the journal). This can take
    unnecessarily long as a lot happens between the time the buffer is
    submitted to the journal and the time when we remove the buffer from
    BJ_Shadow list. (e.g. We wait for all data buffers in the
    transaction, we issue a cache flush, etc.) Also this creates a
    dependency of do_get_write_access() on transaction commit (namely
    waiting for data IO to complete) which we want to avoid when
    implementing transaction reservation.

    So we modify commit code to set new BH_Shadow flag when temporary
    shadowing buffer is created and we clear that flag once IO on that
    buffer is complete. This allows do_get_write_access() to wait only
    for BH_Shadow bit and thus removes the dependency on data IO
    completion.

    Reviewed-by: Zheng Liu
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • Similarly as for metadata buffers, also log descriptor buffers don't
    really need the journal head. So strip it and remove BJ_LogCtl list.

    Reviewed-by: Zheng Liu
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • When writing metadata to the journal, we create temporary buffer heads
    for that task. We also attach journal heads to these buffer heads but
    the only purpose of the journal heads is to keep buffers linked in
    transaction's BJ_IO list. We remove the need for journal heads by
    reusing buffer_head's b_assoc_buffers list for that purpose. Also
    since BJ_IO list is just a temporary list for transaction commit, we
    use a private list in jbd2_journal_commit_transaction() for that thus
    removing BJ_IO list from transaction completely.

    Reviewed-by: Zheng Liu
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     

28 May, 2013

2 commits

  • Currently punch hole is disabled in file systems with bigalloc
    feature enabled. However the recent changes in punch hole patch should
    make it easier to support punching holes on bigalloc enabled file
    systems.

    This commit changes partial_cluster handling in ext4_remove_blocks(),
    ext4_ext_rm_leaf() and ext4_ext_remove_space(). Currently
    partial_cluster is unsigned long long type and it makes sure that we
    will free the partial cluster if all extents has been released from that
    cluster. However it has been specifically designed only for truncate.

    With punch hole we can be freeing just some extents in the cluster
    leaving the rest untouched. So we have to make sure that we will notice
    cluster which still has some extents. To do this I've changed
    partial_cluster to be signed long long type. The only scenario where
    this could be a problem is when cluster_size == block size, however in
    that case there would not be any partial clusters so we're safe. For
    bigger clusters the signed type is enough. Now we use the negative value
    in partial_cluster to mark such cluster used, hence we know that we must
    not free it even if all other extents has been freed from such cluster.

    This scenario can be described in simple diagram:

    |FFF...FF..FF.UUU|
    ^----------^
    punch hole

    . - free space
    | - cluster boundary
    F - freed extent
    U - used extent

    Also update respective tracepoints to use signed long long type for
    partial_cluster.

    Signed-off-by: Lukas Czerner
    Reviewed-by: Jan Kara
    Signed-off-by: Theodore Ts'o

    Lukas Czerner
     
  • Add "end" variable.

    Signed-off-by: Lukas Czerner
    Reviewed-by: Jan Kara
    Signed-off-by: Theodore Ts'o

    Lukas Czerner
     

22 May, 2013

4 commits

  • ->invalidatepage() aop now accepts range to invalidate so we can make
    use of it in journal_invalidatepage() and all the users in ext3 file
    system. Also update ext3 trace point to print out length argument.

    Signed-off-by: Lukas Czerner
    Reviewed-by: Jan Kara

    Lukas Czerner
     
  • ->invalidatepage() aop now accepts range to invalidate so we can make
    use of it in all ext4 invalidatepage routines.

    Signed-off-by: Lukas Czerner
    Reviewed-by: Jan Kara

    Lukas Czerner
     
  • invalidatepage now accepts range to invalidate and there are two file
    system using jbd2 also implementing punch hole feature which can benefit
    from this. We need to implement the same thing for jbd2 layer in order to
    allow those file system take benefit of this functionality.

    This commit adds length argument to the jbd2_journal_invalidatepage()
    and updates all instances in ext4 and ocfs2.

    Signed-off-by: Lukas Czerner
    Reviewed-by: Jan Kara

    Lukas Czerner
     
  • Currently there is no way to truncate partial page where the end
    truncate point is not at the end of the page. This is because it was not
    needed and the functionality was enough for file system truncate
    operation to work properly. However more file systems now support punch
    hole feature and it can benefit from mm supporting truncating page just
    up to the certain point.

    Specifically, with this functionality truncate_inode_pages_range() can
    be changed so it supports truncating partial page at the end of the
    range (currently it will BUG_ON() if 'end' is not at the end of the
    page).

    This commit changes the invalidatepage() address space operation
    prototype to accept range to be invalidated and update all the instances
    for it.

    We also change the block_invalidatepage() in the same way and actually
    make a use of the new length argument implementing range invalidation.

    Actual file system implementations will follow except the file systems
    where the changes are really simple and should not change the behaviour
    in any way .Implementation for truncate_page_range() which will be able
    to accept page unaligned ranges will follow as well.

    Signed-off-by: Lukas Czerner
    Cc: Andrew Morton
    Cc: Hugh Dickins

    Lukas Czerner
     

20 May, 2013

1 commit

  • …it/linusw/linux-pinctrl

    Pull pinctrl fixes from Linus Walleij:

    - Three fixes to make the boot path for device tree work properly on
    the Nomadik pin controller.

    - Compile warning fix for the vt8500 driver.

    - Fix error path in pinctrl-single.

    - Free mappings in error path of the Lantiq controller.

    - Documentation fixes.

    * tag 'pinctrl-fixes-v3.10-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl/lantiq: Free mapping configs for both pin and groups
    pinctrl: single: fix error return code in pcs_parse_one_pinctrl_entry()
    pinctrl: generic: Fix typos and clarify comments
    pinctrl: vt8500: Fix incorrect data in WM8750 pinctrl table
    pinctrl: abx500: Rejiggle platform data and DT initialisation
    pinctrl: abx500: Specify failed sub-driver by ID instead of driver_data

    Linus Torvalds
     

19 May, 2013

1 commit

  • Pull device tree fixes from Grant Likely:
    "Device tree bug fixes and documentation updates for v3.10

    Nothing earth shattering here. A build failure fix, and fix for
    releasing nodes and some documenation updates."

    * tag 'devicetree-for-linus' of git://git.secretlab.ca/git/linux:
    Documentation/devicetree: make semantic of initrd-end more explicit
    of/base: release the node correctly in of_parse_phandle_with_args()
    of/documentation: move video device bindings to a common place
    : fix compilation warnings with DT disabled

    Linus Torvalds
     

17 May, 2013

2 commits

  • Pull drm fixes from Dave Airlie:
    "Fix for radeon nomodeset regression, old radeon interface cliprects
    fix, 2 qxl crasher fixes, and a couple of minor cleanups.

    I may have a new AMD hw support branch next week, its one of those
    doesn't affect anything existing just adds new support, I'll see how
    it shapes up and I might ask you to take it, just thought I'd warn in
    advance."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux:
    drm/radeon: restore nomodeset operation (v2)
    qxl: fix bug with object eviction and update area
    drm/qxl: drop active_user_framebuffer as its unneeded
    qxl: drop unused variable.
    drm/qxl: fix ioport interactions for kernel submitted commands.
    drm: remove unused wrapper macros
    drm/radeon: check incoming cliprects pointer

    Linus Torvalds
     
  • Pull power management and ACPI fixes from Rafael Wysocki:

    - intel_pstate driver fixes and cleanups from Dirk Brandewie and Wei
    Yongjun.

    - cpufreq fixes related to ARM big.LITTLE support and the cpufreq-cpu0
    driver from Viresh Kumar.

    - Assorted cpufreq fixes from Srivatsa S Bhat, Borislav Petkov, Wolfram
    Sang, Alexander Shiyan, and Nishanth Menon.

    - Assorted ACPI fixes from Catalin Marinas, Lan Tianyu, Alex Hung,
    Jan-Simon Möller, and Rafael J Wysocki.

    - Fix for a kfree() under spinlock in the PM core from Shuah Khan.

    - PM documentation updates from Borislav Petkov and Zhang Rui.

    * tag 'pm+acpi-3.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (30 commits)
    cpufreq: Preserve sysfs files across suspend/resume
    ACPI / scan: Fix memory leak on acpi_scan_init_hotplug() error path
    PM / hibernate: Correct documentation
    PM / Documentation: remove inaccurate suspend/hibernate transition lantency statement
    PM: Documentation update for freeze state
    cpufreq / intel_pstate: use vzalloc() instead of vmalloc()/memset(0)
    cpufreq, ondemand: Remove leftover debug line
    PM: Avoid calling kfree() under spinlock in dev_pm_put_subsys_data()
    cpufreq / kirkwood: don't check resource with devm_ioremap_resource
    cpufreq / intel_pstate: remove #ifdef MODULE compile fence
    cpufreq / intel_pstate: Remove idle mode PID
    cpufreq / intel_pstate: fix ffmpeg regression
    cpufreq / intel_pstate: use lowest requested max performance
    cpufreq / intel_pstate: remove idle time and duration from sample and calculations
    cpufreq: Fix incorrect dependecies for ARM SA11xx drivers
    cpufreq: ARM big LITTLE: Fix Kconfig entries
    cpufreq: cpufreq-cpu0: Free parent node for error cases
    cpufreq: cpufreq-cpu0: defer probe when regulator is not ready
    cpufreq: Issue CPUFREQ_GOV_POLICY_EXIT notifier before dropping policy refcount
    cpufreq: governors: Fix CPUFREQ_GOV_POLICY_{INIT|EXIT} notifiers
    ...

    Linus Torvalds
     

16 May, 2013

2 commits

  • Pull target fixes from Nicholas Bellinger:
    "A handful of fixes + minor changes this time around, along with one
    important >= v3.9 regression fix for IBLOCK backends. The highlights
    include:

    - Use FD_MAX_SECTORS in FILEIO for block_device as
    well as files (agrover)

    - Fix processing of out-of-order CmdSNs with
    iSBD driver (shlomo)

    - Close long-standing target_put_sess_cmd() vs.
    core_tmr_abort_task() race with the addition of
    kref_put_spinlock_irqsave() (joern + greg-kh)

    - Fix IBLOCK WCE=1 + DPOFUA=1 backend WRITE
    regression in >= v3.9 (nab + bootc)

    Note these four patches are CC'ed to stable.

    Also, there is still some work left to be done on the active I/O
    shutdown path in target_wait_for_sess_cmds() used by tcm_qla2xxx +
    ib_isert fabrics that is still being discussed on the list, and will
    hopefully be resolved soon."

    * 'queue' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target: close target_put_sess_cmd() vs. core_tmr_abort_task() race
    target: removed unused transport_state flag
    target/iblock: Fix WCE=1 + DPOFUA=1 backend WRITE regression
    MAINTAINERS: Update target git tree URL
    iscsi-target: Fix typos in RDMAEXTENSIONS macro usage
    target/rd: Add ramdisk bit for NULLIO operation
    iscsi-target: Fix processing of OOO commands
    iscsi-target: Make buf param of iscsit_do_crypto_hash_buf() const void *
    iscsi-target: Fix NULL pointer dereference in iscsit_send_reject
    target: Have dev/enable show if TCM device is configured
    target: Use FD_MAX_SECTORS/FD_BLOCKSIZE for blockdevs using fileio
    target: Remove unused struct members in se_dev_entry

    Linus Torvalds
     
  • Pull timer fixes from Thomas Gleixner:

    - Cure for not using zalloc in the first place, which leads to random
    crashes with CPUMASK_OFF_STACK.

    - Revert a user space visible change which broke udev

    - Add a missing cpu_online early return introduced by the new full
    dyntick conversions

    - Plug a long standing race in the timer wheel cpu hotplug code.
    Sigh...

    - Cleanup NOHZ per cpu data on cpu down to prevent stale data on cpu
    up.

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    time: Revert ALWAYS_USE_PERSISTENT_CLOCK compile time optimizaitons
    timer: Don't reinitialize the cpu base lock during CPU_UP_PREPARE
    tick: Don't invoke tick_nohz_stop_sched_tick() if the cpu is offline
    tick: Cleanup NOHZ per cpu data on cpu down
    tick: Use zalloc_cpumask_var for allocating offstack cpumasks

    Linus Torvalds
     

15 May, 2013

4 commits

  • It is possible for one thread to to take se_sess->sess_cmd_lock in
    core_tmr_abort_task() before taking a reference count on
    se_cmd->cmd_kref, while another thread in target_put_sess_cmd() drops
    se_cmd->cmd_kref before taking se_sess->sess_cmd_lock.

    This introduces kref_put_spinlock_irqsave() and uses it in
    target_put_sess_cmd() to close the race window.

    Signed-off-by: Joern Engel
    Acked-by: Greg Kroah-Hartman
    Cc:
    Signed-off-by: Nicholas Bellinger

    Joern Engel
     
  • Signed-off-by: Joern Engel
    Signed-off-by: Nicholas Bellinger

    Joern Engel
     
  • Kay Sievers noted that the ALWAYS_USE_PERSISTENT_CLOCK config,
    which enables some minor compile time optimization to avoid
    uncessary code in mostly the suspend/resume path could cause
    problems for userland.

    In particular, the dependency for RTC_HCTOSYS on
    !ALWAYS_USE_PERSISTENT_CLOCK, which avoids setting the time
    twice and simplifies suspend/resume, has the side effect
    of causing the /sys/class/rtc/rtcN/hctosys flag to always be
    zero, and this flag is commonly used by udev to setup the
    /dev/rtc symlink to /dev/rtcN, which can cause pain for
    older applications.

    While the udev rules could use some work to be less fragile,
    breaking userland should strongly be avoided. Additionally
    the compile time optimizations are fairly minor, and the code
    being optimized is likely to be reworked in the future, so
    lets revert this change.

    Reported-by: Kay Sievers
    Signed-off-by: John Stultz
    Cc: stable #3.9
    Cc: Feng Tang
    Cc: Jason Gunthorpe
    Link: http://lkml.kernel.org/r/1366828376-18124-1-git-send-email-john.stultz@linaro.org
    Signed-off-by: Thomas Gleixner

    John Stultz
     
  • Pull ext4 update from Ted Ts'o:
    "Fixed regressions (two stability regressions and a performance
    regression) introduced during the 3.10-rc1 merge window.

    Also included is a bug fix relating to allocating blocks after
    resizing an ext3 file system when using the ext4 file system driver"

    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    jbd,jbd2: fix oops in jbd2_journal_put_journal_head()
    ext4: revert "ext4: use io_end for multiple bios"
    ext4: limit group search loop for non-extent files
    ext4: fix fio regression

    Linus Torvalds
     

14 May, 2013

2 commits

  • Drive strength controls both sink and source currents, clarify the
    description accordingly.

    Signed-off-by: Laurent Pinchart
    Signed-off-by: Linus Walleij

    Laurent Pinchart
     
  • Pull networking fixes from David Miller:
    "Several small bug fixes all over:

    1) be2net driver uses wrong payload length when submitting MAC list
    get requests to the chip. From Sathya Perla.

    2) Fix mwifiex memory leak on driver unload, from Amitkumar Karwar.

    3) Prevent random memory access in batman-adv, from Marek Lindner.

    4) batman-adv doesn't check for pskb_trim_rcsum() errors, also from
    Marek Lindner.

    5) Fix fec crashes on rapid link up/down, from Frank Li.

    6) Fix inner protocol grovelling in GSO, from Pravin B Shelar.

    7) Link event validation fix in qlcnic from Rajesh Borundia.

    8) Not all FEC chips can support checksum offload, fix from Shawn
    Guo.

    9) EXPORT_SYMBOL + inline doesn't make any sense, from Denis Efremov.

    10) Fix race in passthru mode during device removal in macvlan, from
    Jiri Pirko.

    11) Fix RCU hash table lookup socket state race in ipv6, leading to
    NULL pointer derefs, from Eric Dumazet.

    12) Add several missing HAS_DMA kconfig dependencies, from Geert
    Uyttterhoeven.

    13) Fix bogus PCI resource management in 3c59x driver, from Sergei
    Shtylyov.

    14) Fix info leak in ipv6 GRE tunnel driver, from Amerigo Wang.

    15) Fix device leak in ipv6 IPSEC policy layer, from Cong Wang.

    16) DMA mapping leak fix in qlge from Thadeu Lima de Souza Cascardo.

    17) Missing iounmap on probe failure in bna driver, from Wei Yongjun."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (40 commits)
    bna: add missing iounmap() on error in bnad_init()
    qlge: fix dma map leak when the last chunk is not allocated
    xfrm6: release dev before returning error
    ipv6,gre: do not leak info to user-space
    virtio_net: use default napi weight by default
    emac: Fix EMAC soft reset on 460EX/GT
    3c59x: fix PCI resource management
    caif: CAIF_VIRTIO should depend on HAS_DMA
    net/ethernet: MACB should depend on HAS_DMA
    net/ethernet: ARM_AT91_ETHER should depend on HAS_DMA
    net/wireless: ATH9K should depend on HAS_DMA
    net/ethernet: STMMAC_ETH should depend on HAS_DMA
    net/ethernet: NET_CALXEDA_XGMAC should depend on HAS_DMA
    ipv6: do not clear pinet6 field
    macvlan: fix passthru mode race between dev removal and rx path
    ipv4: ip_output: remove inline marking of EXPORT_SYMBOL functions
    net/mlx4: Strengthen VLAN tags/priorities enforcement in VST mode
    net/mlx4_core: Add missing report on VST and spoof-checking dev caps
    net: fec: enable hardware checksum only on imx6q-fec
    qlcnic: Fix validation of link event command.
    ...

    Linus Torvalds
     

13 May, 2013

5 commits

  • Pull spi updates from Mark Brown:
    "A few driver specific fixes plus improved error handling in the
    generic DT GPIO chipselect handling - not exciting but useful."

    * tag 'spi-v3.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
    spi/spi-atmel: BUG: fix doesn' support 16 bits transfers using PIO
    spi/davinci: fix module build error
    spi: Return error from of_spi_register_master on bad "cs-gpios" property
    spi: Initialize cs_gpio and cs_gpios with -ENOENT
    spi/atmel: fix speed_hz check in atmel_spi_transfer()

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Just a few straggling fixes I hoovered up, and an intel fixes pull
    from Daniel which fixes some regressions, and some mgag200 fixes from
    Matrox."

    * 'drm-next' of git://people.freedesktop.org/~airlied/linux:
    drm/mgag200: Fix framebuffer base address programming
    drm/mgag200: Convert counter delays to jiffies
    drm/mgag200: Fix writes into MGA1064_PIX_CLK_CTL register
    drm/mgag200: Don't change unrelated registers during modeset
    drm: Only print a debug message when the polled connector has changed
    drm: Make the HPD status updates debug logs more readable
    drm: Use names of ioctls in debug traces
    drm: Remove pointless '-' characters from drm_fb_helper documentation
    drm: Add kernel-doc for drm_fb_helper_funcs->initial_config
    drm: refactor call to request_module
    drm: Don't prune modes loudly when a connector is disconnected
    drm: Add missing break in the command line mode parsing code
    drm/i915: clear the stolen fb before resuming
    Revert "drm/i915: Calculate correct stolen size for GEN7+"
    drm/i915: hsw: fix link training for eDP on port-A
    Revert "drm/i915: revert eDP bpp clamping code changes"
    drm: don't check modeset locks in panic handler
    drm/i915: Fix pipe enabled mask for pipe C in WM calculations
    drm/mm: fix dump table BUG
    drm/i915: Always normalize return timeout for wait_timeout_ioctl

    Linus Torvalds
     
  • Mark Brown
     
  • Commit ae4647fb (jbd2: reduce journal_head size) introduced a
    regression where we occasionally hit panic in
    jbd2_journal_put_journal_head() because of wrong b_jcount. The bug is
    caused by gcc making 64-bit access to 32-bit bitfield and thus
    clobbering b_jcount.

    At least for now, those 8 bytes saved in struct journal_head are not
    worth the trouble with gcc bitfield handling so revert that part of
    the patch.

    Reported-by: EUNBONG SONG
    Reported-by: Tony Luck
    Signed-off-by: Jan Kara
    Signed-off-by: "Theodore Ts'o"

    Jan Kara
     
  • We don't use these anymore so nuke them.

    Signed-off-by: Dave Airlie

    Dave Airlie
     

12 May, 2013

6 commits

  • Fixes warning during compilation with clang.

    [rjw: Subject and changelog]
    Signed-off-by: Jan-Simon Möller
    Signed-off-by: Rafael J. Wysocki

    Jan-Simon Möller
     
  • The system suspend routine of the ACPI processor driver saves
    the BUS_MASTER_RLD register and its resume routine restores it.
    However, there can be only one such register in the system and it
    really should be saved after non-boot CPUs have been offlined and
    restored before they are put back online during resume.

    For this reason, move the saving and restoration of BUS_MASTER_RLD
    to syscore suspend and syscore resume, respectively, and drop the no
    longer necessary suspend/resume callbacks from the ACPI processor
    driver.

    Signed-off-by: Rafael J. Wysocki

    Rafael J. Wysocki
     
  • Pull tracing/kprobes update from Steven Rostedt:
    "The majority of these changes are from Masami Hiramatsu bringing
    kprobes up to par with the latest changes to ftrace (multi buffering
    and the new function probes).

    He also discovered and fixed some bugs in doing so. When pulling in
    his patches, I also found a few minor bugs as well and fixed them.

    This also includes a compile fix for some archs that select the ring
    buffer but not tracing.

    I based this off of the last patch you took from me that fixed the
    merge conflict error, as that was the commit that had all the changes
    I needed for this set of changes."

    * tag 'trace-fixes-v3.10' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing/kprobes: Support soft-mode disabling
    tracing/kprobes: Support ftrace_event_file base multibuffer
    tracing/kprobes: Pass trace_probe directly from dispatcher
    tracing/kprobes: Increment probe hit-count even if it is used by perf
    tracing/kprobes: Use bool for retprobe checker
    ftrace: Fix function probe when more than one probe is added
    ftrace: Fix the output of enabled_functions debug file
    ftrace: Fix locking in register_ftrace_function_probe()
    tracing: Add helper function trace_create_new_event() to remove duplicate code
    tracing: Modify soft-mode only if there's no other referrer
    tracing: Indicate enabled soft-mode in enable file
    tracing/kprobes: Fix to increment return event probe hit-count
    ftrace: Cleanup regex_lock and ftrace_lock around hash updating
    ftrace, kprobes: Fix a deadlock on ftrace_regex_lock
    ftrace: Have ftrace_regex_write() return either read or error
    tracing: Return error if register_ftrace_function_probe() fails for event_enable_func()
    tracing: Don't succeed if event_enable_func did not register anything
    ring-buffer: Select IRQ_WORK

    Linus Torvalds
     
  • We have seen multiple NULL dereferences in __inet6_lookup_established()

    After analysis, I found that inet6_sk() could be NULL while the
    check for sk_family == AF_INET6 was true.

    Bug was added in linux-2.6.29 when RCU lookups were introduced in UDP
    and TCP stacks.

    Once an IPv6 socket, using SLAB_DESTROY_BY_RCU is inserted in a hash
    table, we no longer can clear pinet6 field.

    This patch extends logic used in commit fcbdf09d9652c891
    ("net: fix nulls list corruptions in sk_prot_alloc")

    TCP/UDP/UDPLite IPv6 protocols provide their own .clear_sk() method
    to make sure we do not clear pinet6 field.

    At socket clone phase, we do not really care, as cloning the parent (non
    NULL) pinet6 is not adding a fatal race.

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Make sure that the following steps are taken:

    - drop packets sent by the VF with vlan tag
    - block packets with vlan tag which are steered to the VF
    - drop/block tagged packets when the policy is priority-tagged
    - make sure VLAN stripping for received packets is set
    - make sure force UP bit for the VF QP is set

    Use enum values for all the above instead of numerical bit offsets.

    Signed-off-by: Rony Efraim
    Signed-off-by: Or Gerlitz
    Signed-off-by: David S. Miller

    Rony Efraim
     
  • Pull second SCSI update from James "Jaj B" Bottomley:
    "This is the final round of SCSI patches for the merge window. It
    consists mostly of driver updates (bnx2fc, ibmfc, fnic, lpfc,
    be2iscsi, pm80xx, qla4x and ipr).

    There's also the power management updates that complete the patches in
    Jens' tree, an iscsi refcounting problem fix from the last pull, some
    dif handling in scsi_debug fixes, a few nice code cleanups and an
    error handling busy bug fix."

    * tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (92 commits)
    [SCSI] qla2xxx: Update firmware link in Kconfig file.
    [SCSI] iscsi class, qla4xxx: fix sess/conn refcounting when find fns are used
    [SCSI] sas: unify the pointlessly separated enums sas_dev_type and sas_device_type
    [SCSI] pm80xx: thermal, sas controller config and error handling update
    [SCSI] pm80xx: NCQ error handling changes
    [SCSI] pm80xx: WWN Modification for PM8081/88/89 controllers
    [SCSI] pm80xx: Changed module name and debug messages update
    [SCSI] pm80xx: Firmware flash memory free fix, with addition of new memory region for it
    [SCSI] pm80xx: SPC new firmware changes for device id 0x8081 alone
    [SCSI] pm80xx: Added SPCv/ve specific hardware functionalities and relevant changes in common files
    [SCSI] pm80xx: MSI-X implementation for using 64 interrupts
    [SCSI] pm80xx: Updated common functions common for SPC and SPCv/ve
    [SCSI] pm80xx: Multiple inbound/outbound queue configuration
    [SCSI] pm80xx: Added SPCv/ve specific ids, variables and modify for SPC
    [SCSI] lpfc: fix up Kconfig dependencies
    [SCSI] Handle MLQUEUE busy response in scsi_send_eh_cmnd
    [SCSI] sd: change to auto suspend mode
    [SCSI] sd: use REQ_PM in sd's runtime suspend operation
    [SCSI] qla4xxx: Fix iocb_cnt calculation in qla4xxx_send_mbox_iocb()
    [SCSI] ufs: Correct the expected data transfersize
    ...

    Linus Torvalds