03 Apr, 2013

2 commits


01 Apr, 2013

5 commits

  • Linus Torvalds
     
  • Pull slave-dmaengine fixes from Vinod Koul:
    "Two fixes for slave-dmaengine.

    The first one is for making slave_id value correct for dw_dmac and
    the other one fixes the endieness in DT parsing"

    * 'fixes' of git://git.infradead.org/users/vkoul/slave-dma:
    dw_dmac: adjust slave_id accordingly to request line base
    dmaengine: dw_dma: fix endianess for DT xlate function

    Linus Torvalds
     
  • Pull media fixes from Mauro Carvalho Chehab:
    "For a some fixes for Kernel 3.9:
    - subsystem build fix when VIDEO_DEV=y, VIDEO_V4L2=m and I2C=m
    - compilation fix for arm multiarch preventing IR_RX51 to be selected
    - regression fix at bttv crop logic
    - s5p-mfc/m5mols/exynos: a few fixes for cameras on exynos hardware"

    * 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
    [media] [REGRESSION] bt8xx: Fix too large height in cropcap
    [media] fix compilation with both V4L2 and I2C as 'm'
    [media] m5mols: Fix bug in stream on handler
    [media] s5p-fimc: Do not attempt to disable not enabled media pipeline
    [media] s5p-mfc: Fix encoder control 15 issue
    [media] s5p-mfc: Fix frame skip bug
    [media] s5p-fimc: send valid m2m ctx to fimc_m2m_job_finish
    [media] exynos-gsc: send valid m2m ctx to gsc_m2m_job_finish
    [media] fimc-lite: Fix the variable type to avoid possible crash
    [media] fimc-lite: Initialize 'step' field in fimc_lite_ctrl structure
    [media] ir: IR_RX51 only works on OMAP2

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "Alright, this time from 10K up in the air.

    Collection of fixes that have been queued up since the merge window
    opened, hence postponed until later in the cycle. The pull request
    contains:

    - A bunch of fixes for the xen blk front/back driver.

    - A round of fixes for the new IBM RamSan driver, fixing various
    nasty issues.

    - Fixes for multiple drives from Wei Yongjun, bad handling of return
    values and wrong pointer math.

    - A fix for loop properly killing partitions when being detached."

    * tag 'for-linus-20130331' of git://git.kernel.dk/linux-block: (25 commits)
    mg_disk: fix error return code in mg_probe()
    rsxx: remove unused variable
    rsxx: enable error return of rsxx_eeh_save_issued_dmas()
    block: removes dynamic allocation on stack
    Block: blk-flush: Fixed indent code style
    cciss: fix invalid use of sizeof in cciss_find_cfgtables()
    loop: cleanup partitions when detaching loop device
    loop: fix error return code in loop_add()
    mtip32xx: fix error return code in mtip_pci_probe()
    xen-blkfront: remove frame list from blk_shadow
    xen-blkfront: pre-allocate pages for requests
    xen-blkback: don't store dev_bus_addr
    xen-blkfront: switch from llist to list
    xen-blkback: fix foreach_grant_safe to handle empty lists
    xen-blkfront: replace kmalloc and then memcpy with kmemdup
    xen-blkback: fix dispatch_rw_block_io() error path
    rsxx: fix missing unlock on error return in rsxx_eeh_remap_dmas()
    Adding in EEH support to the IBM FlashSystem 70/80 device driver
    block: IBM RamSan 70/80 error message bug fix.
    block: IBM RamSan 70/80 branding changes.
    ...

    Linus Torvalds
     
  • This reverts commit 6aa9707099c4b25700940eb3d016f16c4434360d.

    Commit 6aa9707099c4 ("lockdep: check that no locks held at freeze time")
    causes problems with NFS root filesystems. The failures were noticed on
    OMAP2 and 3 boards during kernel init:

    [ BUG: swapper/0/1 still has locks held! ]
    3.9.0-rc3-00344-ga937536 #1 Not tainted
    -------------------------------------
    1 lock held by swapper/0/1:
    #0: (&type->s_umount_key#13/1){+.+.+.}, at: [] sget+0x248/0x574

    stack backtrace:
    rpc_wait_bit_killable
    __wait_on_bit
    out_of_line_wait_on_bit
    __rpc_execute
    rpc_run_task
    rpc_call_sync
    nfs_proc_get_root
    nfs_get_root
    nfs_fs_mount_common
    nfs_try_mount
    nfs_fs_mount
    mount_fs
    vfs_kern_mount
    do_mount
    sys_mount
    do_mount_root
    mount_root
    prepare_namespace
    kernel_init_freeable
    kernel_init

    Although the rootfs mounts, the system is unstable. Here's a transcript
    from a PM test:

    http://www.pwsan.com/omap/testlogs/test_v3.9-rc3/20130317194234/pm/37xxevm/37xxevm_log.txt

    Here's what the test log should look like:

    http://www.pwsan.com/omap/testlogs/test_v3.8/20130218214403/pm/37xxevm/37xxevm_log.txt

    Mailing list discussion is here:

    http://lkml.org/lkml/2013/3/4/221

    Deal with this for v3.9 by reverting the problem commit, until folks can
    figure out the right long-term course of action.

    Signed-off-by: Paul Walmsley
    Cc: Mandeep Singh Baines
    Cc: Jeff Layton
    Cc: Shawn Guo
    Cc:
    Cc: Fengguang Wu
    Cc: Trond Myklebust
    Cc: Ingo Molnar
    Cc: Ben Chan
    Cc: Oleg Nesterov
    Cc: Tejun Heo
    Cc: Rafael J. Wysocki
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Paul Walmsley
     

31 Mar, 2013

1 commit

  • Pull SCSI target fixes from Nicholas Bellinger:
    "This includes the bug-fix for a >= v3.8-rc1 regression specific to
    iscsi-target persistent reservation conflict handling (CC'ed to
    stable), and a tcm_vhost patch to drop VIRTIO_RING_F_EVENT_IDX usage
    so that in-flight qemu vhost-scsi-pci device code can detect the
    proper vhost feature bits.

    Also, there are two more tcm_vhost patches still being discussed by
    MST and Asias for v3.9 that will be required for the in-flight qemu
    vhost-scsi-pci device patch to function properly, and that should
    (hopefully) be the last target fixes for this round."

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target: Fix RESERVATION_CONFLICT status regression for iscsi-target special case
    tcm_vhost: Avoid VIRTIO_RING_F_EVENT_IDX feature bit

    Linus Torvalds
     

30 Mar, 2013

8 commits

  • On some hardware configurations we have got the request line with the offset.
    The patch introduces convert_slave_id() helper for that cases. The request line
    base is came from the driver data provided by the platform_device_id table.

    Signed-off-by: Mika Westerberg
    Signed-off-by: Andy Shevchenko
    Cc: Viresh Kumar
    Acked-by: Viresh Kumar
    Signed-off-by: Vinod Koul

    Andy Shevchenko
     
  • As reported by Wu Fengguang's build robot tracking sparse warnings, the
    dma_spec arguments in the dw_dma_xlate are already byte swapped on
    little-endian platforms and must not get swapped again. This code is
    currently not used anywhere, but will be used in Linux 3.10 when the
    ARM SPEAr platform starts using the generic DMA DT binding.

    Signed-off-by: Arnd Bergmann
    Reported-by: Fengguang Wu
    Acked-by: Viresh Kumar
    Signed-off-by: Vinod Koul

    Arnd Bergmann
     
  • The Adam Belay's e-mail address in MAINTAINERS under PNP SUPPORT
    is not valid any more and I started to maintain that code in the
    meantime as a matter of fact, so list myself as a maintainer of it
    along with Bjorn and remove the Adam's entry from it.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • Pull ceph fix from Sage Weil:
    "This fixes a regression introduced during the last merge window when
    mapping non-existent images."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    rbd: don't zero-fill non-image object requests

    Linus Torvalds
     
  • A result of ENOENT from a read request for an object that's part of
    an rbd image indicates that there is a hole in that portion of the
    image. Similarly, a short read for such an object indicates that
    the remainder of the read should be interpreted a full read with
    zeros filling out the end of the request.

    This behavior is not correct for objects that are not backing rbd
    image data. Currently rbd_img_obj_request_callback() assumes it
    should be done for all objects.

    Change rbd_img_obj_request_callback() so it only does this zeroing
    for image objects. Encapsulate that special handling in its own
    function. Add an assertion that the image object request is a bio
    request, since we assume that (and we currently don't support any
    other types).

    This resolves a problem identified here:
    http://tracker.ceph.com/issues/4559

    The regression was introduced by bf0d5f503dc11d6314c0503591d258d60ee9c944.

    Reported-by: Dan van der Ster
    Signed-off-by: Alex Elder
    Reviewed-off-by: Sage Weil

    Alex Elder
     
  • Pull btrfs fixes from Chris Mason:
    "We've had a busy two weeks of bug fixing. The biggest patches in here
    are some long standing early-enospc problems (Josef) and a very old
    race where compression and mmap combine forces to lose writes (me).
    I'm fairly sure the mmap bug goes all the way back to the introduction
    of the compression code, which is proof that fsx doesn't trigger every
    possible mmap corner after all.

    I'm sure you'll notice one of these is from this morning, it's a small
    and isolated use-after-free fix in our scrub error reporting. I
    double checked it here."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
    Btrfs: don't drop path when printing out tree errors in scrub
    Btrfs: fix wrong return value of btrfs_lookup_csum()
    Btrfs: fix wrong reservation of csums
    Btrfs: fix double free in the btrfs_qgroup_account_ref()
    Btrfs: limit the global reserve to 512mb
    Btrfs: hold the ordered operations mutex when waiting on ordered extents
    Btrfs: fix space accounting for unlink and rename
    Btrfs: fix space leak when we fail to reserve metadata space
    Btrfs: fix EIO from btrfs send in is_extent_unchanged for punched holes
    Btrfs: fix race between mmap writes and compression
    Btrfs: fix memory leak in btrfs_create_tree()
    Btrfs: fix locking on ROOT_REPLACE operations in tree mod log
    Btrfs: fix missing qgroup reservation before fallocating
    Btrfs: handle a bogus chunk tree nicely
    Btrfs: update to use fs_state bit

    Linus Torvalds
     
  • Commit 3e7fc708eb41 ("ia64 idle: delete pm_idle") in 3.9-rc1 didn't
    finish the job, leaving an un-initialized reference to (*idle)().

    [ Haven't seen a crash from this - but seems like we are just being
    lucky that "idle" is zero so it does get initialized before we jump to
    randomland - Len ]

    Reported-by: Lars-Peter Clausen
    Signed-off-by: Len Brown
    Signed-off-by: Tony Luck
    Signed-off-by: Linus Torvalds

    Len Brown
     
  • Pull arc architecture fixes from Vineet Gupta:
    "This includes fix for a serious bug in DMA mapping API, make
    allyesconfig wreckage, removal of bogus email-list placeholder in
    MAINTAINERS, a typo in ptrace helper code and last remaining changes
    for syscall ABI v3 which we are finally starting to transition-to
    internally.

    The request is late than I intended to - but I was held up with
    debugging a timer link list corruption, for which a proposed fix to
    generic timer code was sent out to lkml/tglx earlier today."

    * 'for-curr' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: Fix the typo in event identifier flags used by ptrace
    arc: fix dma_address assignment during dma_map_sg()
    ARC: Remove SET_PERSONALITY (tracks cross-arch change)
    ARC: ABIv3: fork/vfork wrappers not needed in "no-legacy-syscall" ABI
    ARC: ABIv3: Print the correct ABI ver
    ARC: make allyesconfig build breakages
    ARC: MAINTAINERS update for ARC

    Linus Torvalds
     

29 Mar, 2013

14 commits

  • A user reported a panic where we were panicing somewhere in
    tree_backref_for_extent from scrub_print_warning. He only captured the trace
    but looking at scrub_print_warning we drop the path right before we mess with
    the extent buffer to print out a bunch of stuff, which isn't right. So fix this
    by dropping the path after we use the eb if we need to. Thanks,

    Cc: stable@vger.kernel.org
    Signed-off-by: Josef Bacik
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • This patch fixes a regression introduced in v3.8-rc1 code where a failed
    target_check_reservation() check in target_setup_cmd_from_cdb() was causing
    an incorrect SAM_STAT_GOOD status to be returned during a WRITE operation
    performed by an unregistered / unreserved iscsi initiator port.

    This regression is only effecting iscsi-target due to a special case check
    for TCM_RESERVATION_CONFLICT within iscsi_target_erl1.c:iscsit_execute_cmd(),
    and was still correctly disallowing WRITE commands from backend submission
    for unregistered / unreserved initiator ports, while returning the incorrect
    SAM_STAT_GOOD status due to the missing SAM_STAT_RESERVATION_CONFLICT
    assignment.

    This regression was first introduced with:

    commit de103c93aff0bed0ae984274e5dc8b95899badab
    Author: Christoph Hellwig
    Date: Tue Nov 6 12:24:09 2012 -0800

    target: pass sense_reason as a return value

    Go ahead and re-add the missing SAM_STAT_RESERVATION_CONFLICT assignment
    during a target_check_reservation() failure, so that iscsi-target code
    sends the correct SCSI status.

    All other fabrics using target_submit_cmd_*() with a RESERVATION_CONFLICT
    call to transport_generic_request_failure() are not effected by this bug.

    Reported-by: Jeff Leung
    Cc: Christoph Hellwig
    Cc:
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This patch adds a VHOST_SCSI_FEATURES mask minus VIRTIO_RING_F_EVENT_IDX
    so that vhost-scsi-pci userspace will strip this feature bit once
    GET_FEATURES reports it as being unsupported on the host.

    This is to avoid a bug where ->handle_kicks() are missed when EVENT_IDX
    is enabled by default in userspace code.

    (mst: Rename to VHOST_SCSI_FEATURES + add comment)

    Acked-by: Michael S. Tsirkin
    Reviewed-by: Asias He
    Cc: Paolo Bonzini
    Signed-off-by: Nicholas Bellinger

    Nicholas Bellinger
     
  • This reverts commit 186930500985 ("mm: introduce VM_POPULATE flag to
    better deal with racy userspace programs").

    VM_POPULATE only has any effect when userspace plays racy games with
    vmas by trying to unmap and remap memory regions that mmap or mlock are
    operating on.

    Also, the only effect of VM_POPULATE when userspace plays such games is
    that it avoids populating new memory regions that get remapped into the
    address range that was being operated on by the original mmap or mlock
    calls.

    Let's remove VM_POPULATE as there isn't any strong argument to mandate a
    new vm_flag.

    Signed-off-by: Michel Lespinasse
    Signed-off-by: Hugh Dickins
    Signed-off-by: Linus Torvalds

    Michel Lespinasse
     
  • Pull USB fixes from Greg Kroah-Hartman:
    "Here are some USB fixes to resolve issues reported recently, as well
    as a new device id for the ftdi_sio driver."

    * tag 'usb-3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: ftdi_sio: Add support for Mitsubishi FX-USB-AW/-BD
    usb: Fix compile error by selecting USB_OTG_UTILS
    USB: serial: fix hang when opening port
    USB: EHCI: fix bug in iTD/siTD DMA pool allocation
    xhci: Don't warn on empty ring for suspended devices.
    usb: xhci: Fix TRB transfer length macro used for Event TRB.
    usb/acpi: binding xhci root hub usb port with ACPI
    usb: add find_raw_port_number callback to struct hc_driver()
    usb: xhci: fix build warning

    Linus Torvalds
     
  • Pull TTY/serial fixes from Greg Kroah-Hartman:
    "Here are some tty/serial driver fixes for 3.9.

    The big thing here is the fix for the huge mess we caused renaming the
    8250 driver accidentally in the 3.7 kernel release, without realizing
    that there were users of the module options that suddenly broke. This
    is now resolved, and, to top the injury off, we have a backwards-
    compatible option for those users who got used to the new name since
    3.7. Ugh, sorry about that.

    Other than that, some other minor fixes for issues that have been
    reported by users."

    * tag 'tty-3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    Xilinx: ARM: UART: clear pending irqs before enabling irqs
    TTY: 8250, deprecated 8250_core.* options
    TTY: 8250, revert module name change
    serial: 8250_pci: Add WCH CH352 quirk to avoid Xscale detection
    tty: atmel_serial_probe(): index of atmel_ports[] fix

    Linus Torvalds
     
  • Pull staging driver fixes from Greg Kroah-Hartman:
    "Here are two tiny staging driver fixes to resolve issues that have
    been reported."

    * tag 'staging-3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    staging: comedi: s626: fix continuous acquisition
    staging: zcache: fix typo "64_BIT"

    Linus Torvalds
     
  • Pull sysfs fixes from Greg Kroah-Hartman:
    "Here are two fixes for sysfs that resolve issues that have been found
    by the Trinity fuzz tool, causing oopses in sysfs. They both have
    been in linux-next for a while to ensure that they do not cause any
    other problems."

    * tag 'driver-core-3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    sysfs: handle failure path correctly for readdir()
    sysfs: fix race between readdir and lseek

    Linus Torvalds
     
  • Pull char/misc driver fixes from Greg Kroah-Hartman:
    "Here are some small char/misc driver fixes that resolve issues
    recently reported against the 3.9-rc kernels. All have been in
    linux-next for a while."

    * tag 'char-misc-3.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    VMCI: Fix process-to-process DRGAMs.
    mei: ME hardware reset needs to be synchronized
    mei: add mei_stop function to stop mei device
    extcon: max77693: Initialize register of MUIC device to bring up it without platform data
    extcon: max77693: Fix bug of wrong pointer when platform data is not used
    extcon: max8997: Check the pointer of platform data to protect null pointer error

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

    - Fix for a recent cpufreq regression related to acpi-cpufreq and
    suspend/resume from Viresh Kumar.

    - cpufreq stats reference counting fix from Viresh Kumar.

    - intel_pstate driver fixes from Dirk Brandewie and Konrad Rzeszutek
    Wilk.

    - New ACPI suspend blacklist entry for Sony Vaio VGN-FW21M from Fabio
    Valentini.

    - ACPI Platform Error Interface (APEI) fix from Chen Gong.

    - PCI root bridge hotplug locking fix from Yinghai Lu.

    * tag 'pm+acpi-3.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    PCI / ACPI: hold acpi_scan_lock during root bus hotplug
    ACPI / APEI: fix error status check condition for CPER
    ACPI / PM: fix suspend and resume on Sony Vaio VGN-FW21M
    cpufreq: acpi-cpufreq: Don't set policy->related_cpus from .init()
    cpufreq: stats: do cpufreq_cpu_put() corresponding to cpufreq_cpu_get()
    intel-pstate: Use #defines instead of hard-coded values.
    cpufreq / intel_pstate: Fix calculation of current frequency
    cpufreq / intel_pstate: Add function to check that all MSRs are valid

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "This removes IPsec ESN support from the talitos/caam drivers since
    they were implemented incorrectly, causing interoperability problems
    if ESN is used with them."

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    Revert "crypto: caam - add IPsec ESN support"
    Revert "crypto: talitos - add IPsec ESN support"

    Linus Torvalds
     
  • Pull arm64 fix from Catalin Marinas:
    "Fix IS_ENABLED() usage typo (missing CONFIG_ prefix)."

    * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
    ARM64: early_printk: Fix check for CONFIG_ARM64_64K_PAGES

    Linus Torvalds
     
  • Pull fbdev fixes from Tomi Valkeinen:
    "Since Florian is still away/inactive, I volunteered to collect fbdev
    fixes for 3.9 and changes for 3.10. I didn't receive any other fbdev
    fixes than OMAP yet, but I didn't want to delay this further as
    there's a compilation fix for OMAP1. So there could be still some
    fbdev fixes on the way a bit later.

    This contains:

    - Fix OMAP1 compilation
    - OMAP display fixes"

    * tag 'fbdev-fixes-3.9-rc4' of git://gitorious.org/linux-omap-dss2/linux:
    omapdss: features: fix supported outputs for OMAP4
    OMAPDSS: tpo-td043 panel: fix data passing between SPI/DSS parts
    omapfb: fix broken build on OMAP1

    Linus Torvalds
     
  • Pull userns fixes from Eric W Biederman:
    "The bulk of the changes are fixing the worst consequences of the user
    namespace design oversight in not considering what happens when one
    namespace starts off as a clone of another namespace, as happens with
    the mount namespace.

    The rest of the changes are just plain bug fixes.

    Many thanks to Andy Lutomirski for pointing out many of these issues."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
    userns: Restrict when proc and sysfs can be mounted
    ipc: Restrict mounting the mqueue filesystem
    vfs: Carefully propogate mounts across user namespaces
    vfs: Add a mount flag to lock read only bind mounts
    userns: Don't allow creation if the user is chrooted
    yama: Better permission check for ptraceme
    pid: Handle the exit of a multi-threaded init.
    scm: Require CAP_SYS_ADMIN over the current pidns to spoof pids.

    Linus Torvalds
     

28 Mar, 2013

10 commits

  • It enhances the driver for FTDI-based USB serial adapters
    to recognize Mitsubishi Electric Corp. USB/RS422 Converters
    as FT232BM chips and support them.
    https://search.meau.com/?q=FX-USB-AW

    Signed-off-by: Konstantin Holoborodko
    Tested-by: Konstantin Holoborodko
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Konstantin Holoborodko
     
  • Fix to return a negative error code from the error handling
    case instead of 0, as returned elsewhere in this function.

    Signed-off-by: Wei Yongjun
    Reviewed-by: Jingoo Han
    Signed-off-by: Jens Axboe

    Wei Yongjun
     
  • If we don't find the expected csum item, but find a csum item which is
    adjacent to the specified extent, we should return -EFBIG, or we should
    return -ENOENT. But btrfs_lookup_csum() return -EFBIG even the csum item
    is not adjacent to the specified extent. Fix it.

    Signed-off-by: Miao Xie
    Signed-off-by: Josef Bacik

    Miao Xie
     
  • We reserve the space for csums only when we write data into a file, in
    the other cases, such as tree log, log replay, we don't do reservation,
    so we can use the reservation of the transaction handle just for the former.
    And for the latter, we should use the tree's own reservation. But the
    function - btrfs_csum_file_blocks() didn't differentiate between these
    two types of the cases, fix it.

    Signed-off-by: Miao Xie
    Signed-off-by: Josef Bacik

    Miao Xie
     
  • The function btrfs_find_all_roots is responsible to allocate
    memory for 'roots' and free it if errors happen,so the caller should not
    free it again since the work has been done.

    Besides,'tmp' is allocated after the function btrfs_find_all_roots,
    so we can return directly if btrfs_find_all_roots() fails.

    Signed-off-by: Wang Shilong
    Reviewed-by: Miao Xie
    Reviewed-by: Jan Schmidt
    Signed-off-by: Josef Bacik

    Wang Shilong
     
  • A user reported a problem where he was getting early ENOSPC with hundreds of
    gigs of free data space and 6 gigs of free metadata space. This is because the
    global block reserve was taking up the entire free metadata space. This is
    ridiculous, we have infrastructure in place to throttle if we start using too
    much of the global reserve, so instead of letting it get this huge just limit it
    to 512mb so that users can still get work done. This allowed the user to
    complete his rsync without issues. Thanks

    Cc: stable@vger.kernel.org
    Reported-and-tested-by: Stefan Priebe
    Signed-off-by: Josef Bacik

    Josef Bacik
     
  • We need to hold the ordered_operations mutex while waiting on ordered extents
    since we splice and run the ordered extents list. We need to make sure anybody
    else who wants to wait on ordered extents does actually wait for them to be
    completed. This will keep us from bailing out of flushing in case somebody is
    already waiting on ordered extents to complete. Thanks,

    Signed-off-by: Josef Bacik

    Josef Bacik
     
  • We are way over-reserving for unlink and rename. Rename is just some random
    huge number and unlink accounts for tree log operations that don't actually
    happen during unlink, not to mention the tree log doesn't take from the trans
    block rsv anyway so it's completely useless. Thanks,

    Signed-off-by: Josef Bacik

    Josef Bacik
     
  • Dave reported a warning when running xfstest 275. We have been leaking delalloc
    metadata space when our reservations fail. This is because we were improperly
    calculating how much space to free for our checksum reservations. The problem
    is we would sometimes free up space that had already been freed in another
    thread and we would end up with negative usage for the delalloc space. This
    patch fixes the problem by calculating how much space the other threads would
    have already freed, and then calculate how much space we need to free had we not
    done the reservation at all, and then freeing any excess space. This makes
    xfstests 275 no longer have leaked space. Thanks

    Cc: stable@vger.kernel.org
    Reported-by: David Sterba
    Signed-off-by: Josef Bacik

    Josef Bacik
     
  • When you take a snapshot, punch a hole where there has been data, then take
    another snapshot and try to send an incremental stream, btrfs send would
    give you EIO. That is because is_extent_unchanged had no support for holes
    being punched. With this patch, instead of returning EIO we just return
    0 (== the extent is not unchanged) and we're good.

    Signed-off-by: Jan Schmidt
    Cc: Alexander Block
    Signed-off-by: Josef Bacik

    Jan Schmidt