13 Oct, 2012

40 commits

  • Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Michael Kerrisk
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     
  • It seems that was linux/blk_types.h incorrectly exported to fix up some missing
    bits required by the exported parts of linux/fs.h (READ, WRITE, READA, etc.).

    So unexport linux/blk_types.h and unexport the relevant bits of linux/fs.h.

    Signed-off-by: David Howells
    cc: Jens Axboe
    cc: Tejun Heo
    cc: Al Viro

    David Howells
     
  • Unexport part of linux/ppp-comp.h as userspace can't make use of that bit.

    Signed-off-by: David Howells
    cc: Paul Mackerras
    cc: David Miller

    David Howells
     
  • Pull TPM bugfixes from James Morris.

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
    tpm: Propagate error from tpm_transmit to fix a timeout hang
    driver/char/tpm: fix regression causesd by ppi

    Linus Torvalds
     
  • Pull ACPI & Thermal updates from Len Brown:
    "The generic Linux thermal layer is gaining some new capabilities
    (generic cooling via cpufreq) and some new customers (ARM).

    Also, an ACPI EC bug fix plus a regression fix."

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (30 commits)
    tools/power/acpi/acpidump: remove duplicated include from acpidump.c
    ACPI idle, CPU hotplug: Fix NULL pointer dereference during hotplug
    cpuidle / ACPI: fix potential NULL pointer dereference
    ACPI: EC: Add a quirk for CLEVO M720T/M730T laptop
    ACPI: EC: Make the GPE storm threshold a module parameter
    thermal: Exynos: Fix NULL pointer dereference in exynos_unregister_thermal()
    Thermal: Fix bug on cpu_cooling, cooling device's id conflict problem.
    thermal: exynos: Use devm_* functions
    ARM: exynos: add thermal sensor driver platform data support
    thermal: exynos: register the tmu sensor with the kernel thermal layer
    thermal: exynos5: add exynos5250 thermal sensor driver support
    hwmon: exynos4: move thermal sensor driver to driver/thermal directory
    thermal: add generic cpufreq cooling implementation
    Fix a build error.
    thermal: Fix potential NULL pointer accesses
    thermal: add Renesas R-Car thermal sensor support
    thermal: fix potential out-of-bounds memory access
    Thermal: Introduce locking for cdev.thermal_instances list.
    Thermal: Unify the code for both active and passive cooling
    Thermal: Introduce simple arbitrator for setting device cooling state
    ...

    Linus Torvalds
     
  • Pull OpenRISC updates from Jonas Bonn:
    "Fixups for some corner cases, build issues, and some obvious bugs in
    IRQ handling. No major changes."

    * tag 'for-3.7' of git://openrisc.net/jonas/linux:
    openrisc: mask interrupts in irq_mask_ack function
    openrisc: fix typos in comments and warnings
    openrisc: PIC should act on domain-local irqs
    openrisc: Make cpu_relax() invoke barrier()
    audit: define AUDIT_ARCH_OPENRISC
    openrisc: delay: fix handling of counter overflow
    openrisc: delay: fix loops calculation for __const_udelay

    Linus Torvalds
     
  • …howells/linux-headers

    Pull UAPI disintegration for misc arches from David Howells:
    "UAPI disintegration for MN10300, FRV and AVR32 arches"

    * tag 'disintegrate-misc-arches-20121010' of git://git.infradead.org/users/dhowells/linux-headers:
    UAPI: (Scripted) Disintegrate arch/mn10300/include/asm
    UAPI: (Scripted) Disintegrate arch/frv/include/asm
    UAPI: (Scripted) Disintegrate arch/avr32/include/asm

    Linus Torvalds
     
  • Pull powerpc uapi disintegration from Benjamin Herrenschmidt.

    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    UAPI: (Scripted) Disintegrate arch/powerpc/include/asm

    Linus Torvalds
     
  • Pull arm64 uapi disintegration from Catalin Marinas:
    "UAPI headers for arm64 together with some clean-up to make it
    possible:
    - Do not export the COMPAT_* definitions to user
    - Simplify the compat unistd32.h definitions and remove the
    __SYSCALL_COMPAT guard
    - Disintegrate the arch/arm64/include/asm/* headers"

    * tag 'arm64-uapi' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
    UAPI: (Scripted) Disintegrate arch/arm64/include/asm
    arm64: Do not export the compat-specific definitions to the user
    arm64: Do not include asm/unistd32.h in asm/unistd.h
    arm64: Remove unused definitions from asm/unistd32.h

    Linus Torvalds
     
  • Pull C6X UAPI disintegration from Mark Salter:

    - scripted UAPI disintegration by David Howells.

    * tag 'for-linus' of git://linux-c6x.org/git/projects/linux-c6x-upstreaming:
    UAPI: (Scripted) Disintegrate arch/c6x/include/asm

    Linus Torvalds
     
  • Pull KGDB/KDB fixes and cleanups from Jason Wessel:
    "Cleanups
    - Clean up compile warnings in kgdboc.c and x86/kernel/kgdb.c
    - Add module event hooks for simplified debugging with gdb
    Fixes
    - Fix kdb to stop paging with 'q' on bta and dmesg
    - Fix for data that scrolls off the vga console due to line wrapping
    when using the kdb pager
    New
    - The debug core registers for kernel module events which allows a
    kernel aware gdb to automatically load symbols and break on entry
    to a kernel module
    - Allow kgdboc=kdb to setup kdb on the vga console"

    * tag 'for_linus-3.7' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/kgdb:
    tty/console: fix warnings in drivers/tty/serial/kgdboc.c
    kdb,vt_console: Fix missed data due to pager overruns
    kdb: Fix dmesg/bta scroll to quit with 'q'
    kgdboc: Accept either kbd or kdb to activate the vga + keyboard kdb shell
    kgdb,x86: fix warning about unused variable
    mips,kgdb: fix recursive page fault with CONFIG_KPROBES
    kgdb: Add module event hooks

    Linus Torvalds
     
  • …kernel/git/konrad/xen

    Pull Xen UAPI disintegration from Konrad Rzeszutek Wilk:
    "This has the UAPI disintegration work done by David Howells"

    * tag 'stable/for-linus-3.7-uapi-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen:
    UAPI: (Scripted) Disintegrate include/xen

    Linus Torvalds
     
  • Pull two more mmc changes from Chris Ball:

    - Disintegrate UAPI

    - fix a mismerge that caused a build error.

    * tag 'mmc-merge-for-3.7-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc:
    UAPI: (Scripted) Disintegrate include/linux/mmc
    mmc: mxs-mmc: Fix merge issue causing build error

    Linus Torvalds
     
  • Pull device-mapper changes from Alasdair G Kergon:
    "Remove the power-of-2 block size constraint on discards in dm thin
    provisioning and factor the bio_prison code out into a separate module
    (for sharing with the forthcoming cache target).

    Use struct bio's front_pad to eliminate the use of one separate
    mempool by bio-based devices.

    A few other tiny clean-ups."

    * tag 'dm-3.7-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm:
    dm: store dm_target_io in bio front_pad
    dm thin: move bio_prison code to separate module
    dm thin: prepare to separate bio_prison code
    dm thin: support discard with non power of two block size
    dm persistent data: convert to use le32_add_cpu
    dm: use ACCESS_ONCE for sysfs values
    dm bufio: use list_move
    dm mpath: fix check for null mpio in end_io fn

    Linus Torvalds
     
  • Pull misc SCSI updates from James Bottomley:
    "This is an assorted set of stragglers into the merge window with
    driver updates for megaraid_sas, lpfc, bfi and mvumi. It also
    includes some fairly major fixes for virtio-scsi (scatterlist init),
    scsi_debug (off by one error), storvsc (use after free) and qla2xxx
    (potential deadlock).

    Signed-off-by: James Bottomley "

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (49 commits)
    [SCSI] storvsc: Account for in-transit packets in the RESET path
    [SCSI] qla2xxx: fix potential deadlock on ha->hardware_lock
    [SCSI] scsi_debug: Fix off-by-one bug when unmapping region
    [SCSI] Shorten the path length of scsi_cmd_to_driver()
    [SCSI] virtio-scsi: support online resizing of disks
    [SCSI] virtio-scsi: fix LUNs greater than 255
    [SCSI] virtio-scsi: initialize scatterlist structure
    [SCSI] megaraid_sas: Version, Changelog, Copyright update
    [SCSI] megaraid_sas: Remove duplicate code
    [SCSI] megaraid_sas: Add SystemPD FastPath support
    [SCSI] megaraid_sas: Add array boundary check for SystemPD
    [SCSI] megaraid_sas: Load io_request DataLength in bytes
    [SCSI] megaraid_sas: Add module param for configurable MSI-X vector count
    [SCSI] megaraid_sas: Remove un-needed completion_lock spinlock calls
    [SCSI] lpfc 8.3.35: Update lpfc version for 8.3.35 driver release
    [SCSI] lpfc 8.3.35: Fixed not reporting logical link speed to SCSI midlayer when QoS not on
    [SCSI] lpfc 8.3.35: Fix error with fabric service parameters causing performance issues
    [SCSI] lpfc 8.3.35: Fixed SCSI host create showing wrong link speed on SLI3 HBA ports
    [SCSI] lpfc 8.3.35: Fixed not checking solicition in progress bit when verifying FCF record for use
    [SCSI] lpfc 8.3.35: Fixed messages for misconfigured port errors
    ...

    Linus Torvalds
     
  • Pull input layer updates from Dmitry Torokhov:
    "2nd round of updates for the input subsystem. With it input core no
    longer limits number of character devices per event handler (such as
    evdev) to 32, but switches to dynamic minors once legacy range is
    exhausted. This should get multi-seat installations that currently
    run our of event devices very quickly.

    You will also get an update for Wacom driver and a couple of driver
    fixes."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: extend the number of event (and other) devices
    Input: mousedev - mark mousedev interfaces as non-seekable
    Input: mousedev - rename mixdev_open to opened_by_mixdev
    Input: mousedev - reformat structure initializers
    Input: mousedev - factor out psaux code to reduce #ifdefery
    Input: samsung-keypad - add clk_prepare and clk_unprepare
    Input: atmel_mxt_ts - simplify mxt_dump_message
    Input: wacom - clean up wacom_query_tablet_data
    Input: wacom - introduce wacom_fix_phy_from_hid
    Input: wacom - allow any multi-input Intuos device to set prox
    Input: wacom - report correct touch contact size for I5/Bamboo

    Linus Torvalds
     
  • Pull nfsd update from J Bruce Fields:
    "Another relatively quiet cycle. There was some progress on my
    remaining 4.1 todo's, but a couple of them were just of the form
    "check that we do X correctly", so didn't have much affect on the
    code.

    Other than that, a bunch of cleanup and some bugfixes (including an
    annoying NFSv4.0 state leak and a busy-loop in the server that could
    cause it to peg the CPU without making progress)."

    * 'for-3.7' of git://linux-nfs.org/~bfields/linux: (46 commits)
    UAPI: (Scripted) Disintegrate include/linux/sunrpc
    UAPI: (Scripted) Disintegrate include/linux/nfsd
    nfsd4: don't allow reclaims of expired clients
    nfsd4: remove redundant callback probe
    nfsd4: expire old client earlier
    nfsd4: separate session allocation and initialization
    nfsd4: clean up session allocation
    nfsd4: minor free_session cleanup
    nfsd4: new_conn_from_crses should only allocate
    nfsd4: separate connection allocation and initialization
    nfsd4: reject bad forechannel attrs earlier
    nfsd4: enforce per-client sessions/no-sessions distinction
    nfsd4: set cl_minorversion at create time
    nfsd4: don't pin clientids to pseudoflavors
    nfsd4: fix bind_conn_to_session xdr comment
    nfsd4: cast readlink() bug argument
    NFSD: pass null terminated buf to kstrtouint()
    nfsd: remove duplicate init in nfsd4_cb_recall
    nfsd4: eliminate redundant nfs4_free_stateid
    fs/nfsd/nfs4idmap.c: adjust inconsistent IS_ERR and PTR_ERR
    ...

    Linus Torvalds
     
  • Pull networking updates from David Miller:

    1) Alexey Kuznetsov noticed we routed TCP resets improperly in the
    assymetric routing case, fix this by reverting a change that made us
    use the incoming interface in the outgoing route key when we didn't
    have a socket context to work with.

    2) TCP sysctl kernel memory leakage to userspace fix from Alan Cox.

    3) Move UAPI bits from David Howells, WIMAX and CAN this time.

    4) Fix TX stalls in e1000e wrt. Byte Queue Limits, from Hiroaki
    SHIMODA, Denys Fedoryshchenko, and Jesse Brandeburg.

    5) Fix IPV6 crashes in packet generator module, from Amerigo Wang.

    6) Tidies and fixes in the new VXLAN driver from Stephen Hemminger.

    7) Bridge IP options parse doesn't check first if SKB header has at
    least an IP header's worth of content present. Fix from Sarveshwar
    Bandi.

    8) The kernel now generates compound pages on transmit and the Xen
    netback drivers needs some adjustments in order to handle this. Fix
    from Ian Campbell.

    9) Turn off ASPM in JME driver, from Kevin Bardon and Matthew Garrett.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (43 commits)
    mcs7830: Fix link state detection
    net: add doc for in4_pton()
    net: add doc for in6_pton()
    vti: fix sparse bit endian warnings
    tcp: resets are misrouted
    usbnet: Support devices reporting idleness
    Add CDC-ACM support for the CX93010-2x UCMxx USB Modem
    net/ethernet/jme: disable ASPM
    tcp: sysctl interface leaks 16 bytes of kernel memory
    kaweth: print correct debug ptr
    e1000e: Change wthresh to 1 to avoid possible Tx stalls
    ipv4: fix route mark sparse warning
    xen: netback: handle compound page fragments on transmit.
    bridge: Pull ip header into skb->data before looking into ip header.
    isdn: fix a wrapping bug in isdn_ppp_ioctl()
    vxlan: fix oops when give unknown ifindex
    vxlan: fix receive checksum handling
    vxlan: add additional headroom
    vxlan: allow configuring port range
    vxlan: associate with tunnel socket on transmit
    ...

    Linus Torvalds
     
  • Pull Sparc updates from David Miller:

    1) Updated syscall tracing fix from Al Viro.

    2) SUN4V error reporting was deficient in several areas.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc64: fix ptrace interaction with force_successful_syscall_return()
    sparc64: Fix deficiencies in sun4v error reporting.

    Linus Torvalds
     
  • Pull tile arch update from Chris Metcalf:
    "The bulk of this change is the tile uapi disintegration. There is
    also a one-line change in here to enable interrupts in
    do_work_pending() to avoid a WARN_ON in _local_bh_enable_ip()."

    * git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
    arch/tile: enable interrupts in do_work_pending()
    UAPI: (Scripted) Disintegrate arch/tile/include/asm
    UAPI: (Scripted) Disintegrate arch/tile/include/arch

    Linus Torvalds
     
  • Pull ia64 UAPI changes from Tony Luck:
    "ia64 pieces of David Howells great UAPI include file move"

    * tag 'please-pull-dhowells-uapi' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    UAPI: (Scripted) Disintegrate arch/ia64/include/asm

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "This tree includes some late late perf items that missed the first
    round:

    tools:

    - Bash auto completion improvements, now we can auto complete the
    tools long options, tracepoint event names, etc, from Namhyung Kim.

    - Look up thread using tid instead of pid in 'perf sched'.

    - Move global variables into a perf_kvm struct, from David Ahern.

    - Hists refactorings, preparatory for improved 'diff' command, from
    Jiri Olsa.

    - Hists refactorings, preparatory for event group viewieng work, from
    Namhyung Kim.

    - Remove double negation on optional feature macro definitions, from
    Namhyung Kim.

    - Remove several cases of needless global variables, on most
    builtins.

    - misc fixes

    kernel:

    - sysfs support for IBS on AMD CPUs, from Robert Richter.

    - Support for an upcoming Intel CPU, the Xeon-Phi / Knights Corner
    HPC blade PMU, from Vince Weaver.

    - misc fixes"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (46 commits)
    perf: Fix perf_cgroup_switch for sw-events
    perf: Clarify perf_cpu_context::active_pmu usage by renaming it to ::unique_pmu
    perf/AMD/IBS: Add sysfs support
    perf hists: Add more helpers for hist entry stat
    perf hists: Move he->stat.nr_events initialization to a template
    perf hists: Introduce struct he_stat
    perf diff: Removing the total_period argument from output code
    perf tool: Add hpp interface to enable/disable hpp column
    perf tools: Removing hists pair argument from output path
    perf hists: Separate overhead and baseline columns
    perf diff: Refactor diff displacement possition info
    perf hists: Add struct hists pointer to struct hist_entry
    perf tools: Complete tracepoint event names
    perf/x86: Add support for Intel Xeon-Phi Knights Corner PMU
    perf evlist: Remove some unused methods
    perf evlist: Introduce add_newtp method
    perf kvm: Move global variables into a perf_kvm struct
    perf tools: Convert to BACKTRACE_SUPPORT
    perf tools: Long option completion support for each subcommands
    perf tools: Complete long option names of perf command
    ...

    Linus Torvalds
     
  • Perf build fails with the new rbtree implementation:

    ../../lib/rbtree.c:24:36: fatal error: linux/rbtree_augmented.h: No such file or directory compilation terminated.

    Fix by updating the Makefile and adding a btree_augmented.h
    wrapper.

    Reported-and-tested-by: Borislav Petkov
    Signed-off-by: Markus Trippelsdorf
    Cc: Arnaldo Carvalho de Melo
    Cc: Borislav Petkov
    Link: http://lkml.kernel.org/r/20121009180156.GA245@x4
    Signed-off-by: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Markus Trippelsdorf
     
  • Pull third pile of kernel_execve() patches from Al Viro:
    "The last bits of infrastructure for kernel_thread() et.al., with
    alpha/arm/x86 use of those. Plus sanitizing the asm glue and
    do_notify_resume() on alpha, fixing the "disabled irq while running
    task_work stuff" breakage there.

    At that point the rest of kernel_thread/kernel_execve/sys_execve work
    can be done independently for different architectures. The only
    pending bits that do depend on having all architectures converted are
    restrictred to fs/* and kernel/* - that'll obviously have to wait for
    the next cycle.

    I thought we'd have to wait for all of them done before we start
    eliminating the longjump-style insanity in kernel_execve(), but it
    turned out there's a very simple way to do that without flagday-style
    changes."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
    alpha: switch to saner kernel_execve() semantics
    arm: switch to saner kernel_execve() semantics
    x86, um: convert to saner kernel_execve() semantics
    infrastructure for saner ret_from_kernel_thread semantics
    make sure that kernel_thread() callbacks call do_exit() themselves
    make sure that we always have a return path from kernel_execve()
    ppc: eeh_event should just use kthread_run()
    don't bother with kernel_thread/kernel_execve for launching linuxrc
    alpha: get rid of switch_stack argument of do_work_pending()
    alpha: don't bother passing switch_stack separately from regs
    alpha: take SIGPENDING/NOTIFY_RESUME loop into signal.c
    alpha: simplify TIF_NEED_RESCHED handling

    Linus Torvalds
     
  • Pull third pile of VFS updates from Al Viro:
    "Stuff from Jeff Layton, mostly. Sanitizing interplay between audit
    and namei, removing a lot of insanity from audit_inode() mess and
    getting things ready for his ESTALE patchset."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    procfs: don't need a PATH_MAX allocation to hold a string representation of an int
    vfs: embed struct filename inside of names_cache allocation if possible
    audit: make audit_inode take struct filename
    vfs: make path_openat take a struct filename pointer
    vfs: turn do_path_lookup into wrapper around struct filename variant
    audit: allow audit code to satisfy getname requests from its names_list
    vfs: define struct filename and have getname() return it
    vfs: unexport getname and putname symbols
    acct: constify the name arg to acct_on
    vfs: allocate page instead of names_cache buffer in mount_block_root
    audit: overhaul __audit_inode_child to accomodate retrying
    audit: optimize audit_compare_dname_path
    audit: make audit_compare_dname_path use parent_len helper
    audit: remove dirlen argument to audit_compare_dname_path
    audit: set the name_len in audit_inode for parent lookups
    audit: add a new "type" field to audit_names struct
    audit: reverse arguments to audit_inode_child
    audit: no need to walk list in audit_inode if name is NULL
    audit: pass in dentry to audit_copy_inode wherever possible
    audit: remove unnecessary NULL ptr checks from do_path_lookup

    Linus Torvalds
     
  • Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • In the common case where a name is much smaller than PATH_MAX, an extra
    allocation for struct filename is unnecessary. Before allocating a
    separate one, try to embed the struct filename inside the buffer first. If
    it turns out that that's not long enough, then fall back to allocating a
    separate struct filename and redoing the copy.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Keep a pointer to the audit_names "slot" in struct filename.

    Have all of the audit_inode callers pass a struct filename ponter to
    audit_inode instead of a string pointer. If the aname field is already
    populated, then we can skip walking the list altogether and just use it
    directly.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • ...and fix up the callers. For do_file_open_root, just declare a
    struct filename on the stack and fill out the .name field. For
    do_filp_open, make it also take a struct filename pointer, and fix up its
    callers to call it appropriately.

    For filp_open, add a variant that takes a struct filename pointer and turn
    filp_open into a wrapper around it.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • ...and make the user_path callers use that variant instead.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Currently, if we call getname() on a userland string more than once,
    we'll get multiple copies of the string and multiple audit_names
    records.

    Add a function that will allow the audit_names code to satisfy getname
    requests using info from the audit_names list, avoiding a new allocation
    and audit_names records.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • getname() is intended to copy pathname strings from userspace into a
    kernel buffer. The result is just a string in kernel space. It would
    however be quite helpful to be able to attach some ancillary info to
    the string.

    For instance, we could attach some audit-related info to reduce the
    amount of audit-related processing needed. When auditing is enabled,
    we could also call getname() on the string more than once and not
    need to recopy it from userspace.

    This patchset converts the getname()/putname() interfaces to return
    a struct instead of a string. For now, the struct just tracks the
    string in kernel space and the original userland pointer for it.

    Later, we'll add other information to the struct as it becomes
    convenient.

    Signed-off-by: Jeff Layton
    Signed-off-by: Al Viro

    Jeff Layton
     
  • Use the recently-added bio front_pad field to allocate struct dm_target_io.

    Prior to this patch, dm_target_io was allocated from a mempool. For each
    dm_target_io, there is exactly one bio allocated from a bioset.

    This patch merges these two allocations into one allocation: we create a
    bioset with front_pad equal to the size of dm_target_io so that every
    bio allocated from the bioset has sizeof(struct dm_target_io) bytes
    before it. We allocate a bio and use the bytes before the bio as
    dm_target_io.

    _tio_cache is removed and the tio_pool mempool is now only used for
    request-based devices.

    This idea was introduced by Kent Overstreet.

    Signed-off-by: Mikulas Patocka
    Cc: Kent Overstreet
    Cc: Jens Axboe
    Cc: tj@kernel.org
    Cc: Vivek Goyal
    Cc: Bill Pemberton
    Signed-off-by: Alasdair G Kergon

    Mikulas Patocka
     
  • The bio prison code will be useful to other future DM targets so
    move it to a separate module.

    Signed-off-by: Mike Snitzer
    Signed-off-by: Joe Thornber
    Signed-off-by: Alasdair G Kergon

    Mike Snitzer
     
  • The bio prison code will be useful to share with future DM targets.

    Prepare to move this code into a separate module, adding a dm prefix
    to structures and functions that will be exported.

    Signed-off-by: Mike Snitzer
    Signed-off-by: Joe Thornber
    Signed-off-by: Alasdair G Kergon

    Mike Snitzer
     
  • Support discards when the pool's block size is not a power of 2.
    The block layer assumes discard_granularity is a power of 2 (in
    blkdev_issue_discard), so we set this to the largest power of 2 that is
    a divides into the number of sectors in each block, but never less than
    DATA_DEV_BLOCK_SIZE_MIN_SECTORS.

    This patch eliminates the "Discard support must be disabled when the
    block size is not a power of 2" constraint that was imposed in commit
    55f2b8b ("dm thin: support for non power of 2 pool blocksize"). That
    commit was incomplete: using a block size that is not a power of 2
    shouldn't mean disabling discard support on the device completely.

    Signed-off-by: Mike Snitzer
    Signed-off-by: Joe Thornber
    Signed-off-by: Alasdair G Kergon

    Mike Snitzer
     
  • All the called functions expect interrupts to be enabled, and
    now one of them has started to warn about it, so make it correct.

    Signed-off-by: Chris Metcalf

    Chris Metcalf
     
  • UAPI Disintegration 2012-10-09

    Chris Metcalf
     
  • The device had an undocumented "feature": it can provide a sequence of
    spurious link-down status data even if the link is up all the time.
    A sequence of 10 was seen so update the link state only after the device
    reports the same link state 20 times.

    Signed-off-by: Ondrej Zary
    Reported-by: Michael Leun
    Tested-by: Michael Leun
    Signed-off-by: David S. Miller

    Ondrej Zary
     
  • It is not easy to use in4_pton() correctly without reading
    its definition, so add some doc for it.

    Cc: David S. Miller
    Signed-off-by: Cong Wang
    Signed-off-by: David S. Miller

    Amerigo Wang