1. 05 Jun, 2018 5 commits
    • Linus Torvalds's avatar
      Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1b246d22
      Linus Torvalds authored
      Pull x86 asm updates from Ingo Molnar:
      
       - better support (non-atomic) 64-bit readq()/writeq() variants (Andy
         Shevchenko)
      
       - __clear_user() micro-optimization (Alexey Dobriyan)
      
      * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/io: Define readq()/writeq() to use 64-bit type
        x86/asm/64: Micro-optimize __clear_user() - Use immediate constants
      1b246d22
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5cef8c2a
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
      
       - Centaur CPU updates (David Wang)
      
       - AMD and other CPU topology enumeration improvements and fixes
         (Borislav Petkov, Thomas Gleixner, Suravee Suthikulpanit)
      
       - Continued 5-level paging work (Kirill A. Shutemov)
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Mark __pgtable_l5_enabled __initdata
        x86/mm: Mark p4d_offset() __always_inline
        x86/mm: Introduce the 'no5lvl' kernel parameter
        x86/mm: Stop pretending pgtable_l5_enabled is a variable
        x86/mm: Unify pgtable_l5_enabled usage in early boot code
        x86/boot/compressed/64: Fix trampoline page table address calculation
        x86/CPU: Move x86_cpuinfo::x86_max_cores assignment to detect_num_cpu_cores()
        x86/Centaur: Report correct CPU/cache topology
        x86/CPU: Move cpu_detect_cache_sizes() into init_intel_cacheinfo()
        x86/CPU: Make intel_num_cpu_cores() generic
        x86/CPU: Move cpu local function declarations to local header
        x86/CPU/AMD: Derive CPU topology from CPUID function 0xB when available
        x86/CPU: Modify detect_extended_topology() to return result
        x86/CPU/AMD: Calculate last level cache ID from number of sharing threads
        x86/CPU: Rename intel_cacheinfo.c to cacheinfo.c
        perf/events/amd/uncore: Fix amd_uncore_llc ID to use pre-defined cpu_llc_id
        x86/CPU/AMD: Have smp_num_siblings and cpu_llc_id always be present
        x86/Centaur: Initialize supported CPU features properly
      5cef8c2a
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f7f4e7fc
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
      
       - power-aware scheduling improvements (Patrick Bellasi)
      
       - NUMA balancing improvements (Mel Gorman)
      
       - vCPU scheduling fixes (Rohit Jain)
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        sched/fair: Update util_est before updating schedutil
        sched/cpufreq: Modify aggregate utilization to always include blocked FAIR utilization
        sched/deadline/Documentation: Add overrun signal and GRUB-PA documentation
        sched/core: Distinguish between idle_cpu() calls based on desired effect, introduce available_idle_cpu()
        sched/wait: Include <linux/wait.h> in <linux/swait.h>
        sched/numa: Stagger NUMA balancing scan periods for new threads
        sched/core: Don't schedule threads on pre-empted vCPUs
        sched/fair: Avoid calling sync_entity_load_avg() unnecessarily
        sched/fair: Rearrange select_task_rq_fair() to optimize it
      f7f4e7fc
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d9b446e2
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "Kernel side changes:
      
         - x86 Intel uncore driver cleanups and enhancements (Kan Liang)
      
         - group scheduling and other fixes (Song Liu
      
         - store frame pointer in the sample traces for better profiling
           (Alexey Budankov)
      
         - compat fixes/enhancements (Eugene Syromiatnikov)
      
        Tooling side changes, which you can build and install in a single step
        via:
      
            make -C tools/perf clean install
      
        perf annotate:
      
         - Support 'perf annotate --group' for non-explicit recorded event
           "groups", showing multiple columns, one for each event, just like
           when dealing with explicit event groups (those enclosed with {})
           (Jin Yao)
      
         - Record min/max LBR cycles (>= Skylake) and add 'perf annotate' TUI
           hotkey to show it (c) (Jin Yao)
      
        perf bpf:
      
         - Add infrastructure to help in writing eBPF C programs to be used
           with '-e name.c' type events in tools such as 'record' and 'trace',
           with headers for common constructs and an examples directory that
           will get populated as we add more such helpers and the 'perf bpf'
           (Arnaldo Carvalho de Melo)
      
        perf stat:
      
         - Display time in precision based on std deviation (Jiri Olsa)
      
         - Add --table option to display time of each run (Jiri Olsa)
      
         - Display length strings of each run for --table option (Jiri Olsa)
      
        perf buildid-cache:
      
         - Add --list and --purge-all options (Ravi Bangoria)
      
        perf test:
      
         - Let 'perf test list' display subtests (Hendrik Brueckner)
      
        perf pti:
      
         - Create extra kernel maps to help in decoding samples in x86 PTI
           entry trampolines (Adrian Hunter)
      
         - Copy x86 PTI entry trampoline sections in the kcore copy used for
           annotation and intel_pt CPU traces decoding (Adrian Hunter)
      
        ... and a lot of other fixes, enhancements and cleanups I did not
        list, see the shortlog and git log for details"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (111 commits)
        perf/x86/intel/uncore: Clean up client IMC uncore
        perf/x86/intel/uncore: Expose uncore_pmu_event*() functions
        perf/x86/intel/uncore: Support IIO free-running counters on SKX
        perf/x86/intel/uncore: Add infrastructure for free running counters
        perf/x86/intel/uncore: Add new data structures for free running counters
        perf/x86/intel/uncore: Correct fixed counter index check in generic code
        perf/x86/intel/uncore: Correct fixed counter index check for NHM
        perf/x86/intel/uncore: Introduce customized event_read() for client IMC uncore
        perf/x86: Store user space frame-pointer value on a sample
        perf/core: Wire up compat PERF_EVENT_IOC_QUERY_BPF, PERF_EVENT_IOC_MODIFY_ATTRIBUTES
        perf/core: Fix bad use of igrab()
        perf/core: Fix group scheduling with mixed hw and sw events
        perf kcore_copy: Amend the offset of sections that remap kernel text
        perf kcore_copy: Copy x86 PTI entry trampoline sections
        perf kcore_copy: Get rid of kernel_map
        perf kcore_copy: Iterate phdrs
        perf kcore_copy: Layout sections
        perf kcore_copy: Calculate offset from phnum
        perf kcore_copy: Keep a count of phdrs
        perf kcore_copy: Keep phdr data in a list
        ...
      d9b446e2
    • Linus Torvalds's avatar
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7a1b4373
      Linus Torvalds authored
      Pull perf tooling fixes from Ingo Molnar:
       "Leftover perf tooling fixes from the v4.17 cycle: they sync up updated
        ABI headers with their tooling versions"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf tools intel-pt-decoder: Update insn.h from the kernel sources
        tools headers: Sync x86 cpufeatures.h with the kernel sources
        tools headers: Synchronize prctl.h ABI header
        perf trace beauty prctl: Default header_dir to cwd to work without parms
      7a1b4373
  2. 04 Jun, 2018 35 commits
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 92400b8c
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
      
       - Lots of tidying up changes all across the map for Linux's formal
         memory/locking-model tooling, by Alan Stern, Akira Yokosawa, Andrea
         Parri, Paul E. McKenney and SeongJae Park.
      
         Notable changes beyond an overall update in the tooling itself is the
         tidying up of spin_is_locked() semantics, which spills over into the
         kernel proper as well.
      
       - qspinlock improvements: the locking algorithm now guarantees forward
         progress whereas the previous implementation in mainline could starve
         threads indefinitely in cmpxchg() loops. Also other related cleanups
         to the qspinlock code (Will Deacon)
      
       - misc smaller improvements, cleanups and fixes all across the locking
         subsystem
      
      * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (51 commits)
        locking/rwsem: Simplify the is-owner-spinnable checks
        tools/memory-model: Add reference for 'Simplifying ARM concurrency'
        tools/memory-model: Update ASPLOS information
        MAINTAINERS, tools/memory-model: Update e-mail address for Andrea Parri
        tools/memory-model: Fix coding style in 'lock.cat'
        tools/memory-model: Remove out-of-date comments and code from lock.cat
        tools/memory-model: Improve mixed-access checking in lock.cat
        tools/memory-model: Improve comments in lock.cat
        tools/memory-model: Remove duplicated code from lock.cat
        tools/memory-model: Flag "cumulativity" and "propagation" tests
        tools/memory-model: Add model support for spin_is_locked()
        tools/memory-model: Add scripts to test memory model
        tools/memory-model: Fix coding style in 'linux-kernel.def'
        tools/memory-model: Model 'smp_store_mb()'
        tools/memory-order: Update the cheat-sheet to show that smp_mb__after_atomic() orders later RMW operations
        tools/memory-order: Improve key for SELF and SV
        tools/memory-model: Fix cheat sheet typo
        tools/memory-model: Update required version of herdtools7
        tools/memory-model: Redefine rb in terms of rcu-fence
        tools/memory-model: Rename link and rcu-path to rcu-link and rb
        ...
      92400b8c
    • Linus Torvalds's avatar
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 31a85cb3
      Linus Torvalds authored
      Pull EFI updates from Ingo Molnar:
      
       - decode x86 CPER data (Yazen Ghannam)
      
       - ignore unrealistically large option ROMs (Hans de Goede)
      
       - initialize UEFI secure boot state during Xen dom0 boot (Daniel Kiper)
      
       - additional minor tweaks and fixes.
      
      * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi/capsule-loader: Don't output reset log when reset flags are not set
        efi/x86: Ignore unrealistically large option ROMs
        efi/x86: Fold __setup_efi_pci32() and __setup_efi_pci64() into one function
        efi: Align efi_pci_io_protocol typedefs to type naming convention
        efi/libstub/tpm: Make function efi_retrieve_tpm2_eventlog_1_2() static
        efi: Decode IA32/X64 Context Info structure
        efi: Decode IA32/X64 MS Check structure
        efi: Decode additional IA32/X64 Bus Check fields
        efi: Decode IA32/X64 Cache, TLB, and Bus Check structures
        efi: Decode UEFI-defined IA32/X64 Error Structure GUIDs
        efi: Decode IA32/X64 Processor Error Info Structure
        efi: Decode IA32/X64 Processor Error Section
        efi: Fix IA32/X64 Processor Error Record definition
        efi/cper: Remove the INDENT_SP silliness
        x86/xen/efi: Initialize UEFI secure boot state during dom0 boot
      31a85cb3
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4057adaf
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
      
       - updates to the handling of expedited grace periods
      
       - updates to reduce lock contention in the rcu_node combining tree
      
         [ These are in preparation for the consolidation of RCU-bh,
           RCU-preempt, and RCU-sched into a single flavor, which was
           requested by Linus in response to a security flaw whose root cause
           included confusion between the multiple flavors of RCU ]
      
       - torture-test updates that save their users some time and effort
      
       - miscellaneous fixes
      
      * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (44 commits)
        rcu/x86: Provide early rcu_cpu_starting() callback
        torture: Make kvm-find-errors.sh find build warnings
        rcutorture: Abbreviate kvm.sh summary lines
        rcutorture: Print end-of-test state in kvm.sh summary
        rcutorture: Print end-of-test state
        torture: Fold parse-torture.sh into parse-console.sh
        torture: Add a script to edit output from failed runs
        rcu: Update list of rcu_future_grace_period() trace events
        rcu: Drop early GP request check from rcu_gp_kthread()
        rcu: Simplify and inline cpu_needs_another_gp()
        rcu: The rcu_gp_cleanup() function does not need cpu_needs_another_gp()
        rcu: Make rcu_start_this_gp() check for out-of-range requests
        rcu: Add funnel locking to rcu_start_this_gp()
        rcu: Make rcu_start_future_gp() caller select grace period
        rcu: Inline rcu_start_gp_advanced() into rcu_start_future_gp()
        rcu: Clear request other than RCU_GP_FLAG_INIT at GP end
        rcu: Cleanup, don't put ->completed into an int
        rcu: Switch __rcu_process_callbacks() to rcu_accelerate_cbs()
        rcu: Avoid __call_rcu_core() root rcu_node ->lock acquisition
        rcu: Make rcu_migrate_callbacks wake GP kthread when needed
        ...
      4057adaf
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v4.18-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 137f5ae4
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - a few time-related fixes:
           - off-by-one calendar month on some classes of machines
           - Y2038 preparation
      
       - build fix for ndelay() being called with a 64-bit type
      
       - revive 64-bit get_user(), which is used by some Android code
      
       - defconfig updates
      
       - fix for a long-standing fatal bug in iounmap() on '020/030, which was
         actually fixed in 2.4.23, but never in 2.5.x and later
      
       - default DMA mask to avoid warning splats
      
       - minor fixes and cleanups
      
      * tag 'm68k-for-v4.18-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Set default dma mask for platform devices
        m68k/mm: Adjust VM area to be unmapped by gap size for __iounmap()
        m68k/defconfig: Update defconfigs for v4.17-rc3
        m68k/uaccess: Revive 64-bit get_user()
        m68k: Implement ndelay() as an inline function to force type checking/casting
        zorro: Add a blank line after declarations
        m68k: Use read_persistent_clock64() consistently
        m68k: Fix off-by-one calendar month
        m68k: Fix style, spelling, and grammar in siginfo_build_tests()
        m68k/mac: Fix SWIM memory resource end address
      137f5ae4
    • Linus Torvalds's avatar
      Merge branch 'siginfo-linus' of... · 93e95fa5
      Linus Torvalds authored
      Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull siginfo updates from Eric Biederman:
       "This set of changes close the known issues with setting si_code to an
        invalid value, and with not fully initializing struct siginfo. There
        remains work to do on nds32, arc, unicore32, powerpc, arm, arm64, ia64
        and x86 to get the code that generates siginfo into a simpler and more
        maintainable state. Most of that work involves refactoring the signal
        handling code and thus careful code review.
      
        Also not included is the work to shrink the in kernel version of
        struct siginfo. That depends on getting the number of places that
        directly manipulate struct siginfo under control, as it requires the
        introduction of struct kernel_siginfo for the in kernel things.
      
        Overall this set of changes looks like it is making good progress, and
        with a little luck I will be wrapping up the siginfo work next
        development cycle"
      
      * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (46 commits)
        signal/sh: Stop gcc warning about an impossible case in do_divide_error
        signal/mips: Report FPE_FLTUNK for undiagnosed floating point exceptions
        signal/um: More carefully relay signals in relay_signal.
        signal: Extend siginfo_layout with SIL_FAULT_{MCEERR|BNDERR|PKUERR}
        signal: Remove unncessary #ifdef SEGV_PKUERR in 32bit compat code
        signal/signalfd: Add support for SIGSYS
        signal/signalfd: Remove __put_user from signalfd_copyinfo
        signal/xtensa: Use force_sig_fault where appropriate
        signal/xtensa: Consistenly use SIGBUS in do_unaligned_user
        signal/um: Use force_sig_fault where appropriate
        signal/sparc: Use force_sig_fault where appropriate
        signal/sparc: Use send_sig_fault where appropriate
        signal/sh: Use force_sig_fault where appropriate
        signal/s390: Use force_sig_fault where appropriate
        signal/riscv: Replace do_trap_siginfo with force_sig_fault
        signal/riscv: Use force_sig_fault where appropriate
        signal/parisc: Use force_sig_fault where appropriate
        signal/parisc: Use force_sig_mceerr where appropriate
        signal/openrisc: Use force_sig_fault where appropriate
        signal/nios2: Use force_sig_fault where appropriate
        ...
      93e95fa5
    • Linus Torvalds's avatar
      Merge branch 'userns-linus' of... · d8aed841
      Linus Torvalds authored
      Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull userns updates from Eric Biederman:
       "This is the last couple of vfs bits to enable root in a user namespace
        to mount and manipulate a filesystem with backing store (AKA not a
        virtual filesystem like proc, but a filesystem where the unprivileged
        user controls the content). The target filesystem for this work is
        fuse, and Miklos should be sending you the pull request for the fuse
        bits this merge window.
      
        The two key patches are "evm: Don't update hmacs in user ns mounts"
        and "vfs: Don't allow changing the link count of an inode with an
        invalid uid or gid". Those close small gaps in the vfs that would be a
        problem if an unprivileged fuse filesystem is mounted.
      
        The rest of the changes are things that are now safe to allow a root
        user in a user namespace to do with a filesystem they have mounted.
        The most interesting development is that remount is now safe"
      
      * 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        fs: Allow CAP_SYS_ADMIN in s_user_ns to freeze and thaw filesystems
        capabilities: Allow privileged user in s_user_ns to set security.* xattrs
        fs: Allow superblock owner to access do_remount_sb()
        fs: Allow superblock owner to replace invalid owners of inodes
        vfs: Allow userns root to call mknod on owned filesystems.
        vfs: Don't allow changing the link count of an inode with an invalid uid or gid
        evm: Don't update hmacs in user ns mounts
      d8aed841
    • Linus Torvalds's avatar
      Merge tag '4.18-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 32552014
      Linus Torvalds authored
      Pull cifs updates from Steve French:
      
       - smb3 fixes for stable
      
       - addition of ftrace hooks for cifs.ko
      
       - improvements in compounding and smbdirect (rdma)
      
      * tag '4.18-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6: (38 commits)
        CIFS: Add support for direct pages in wdata
        CIFS: Use offset when reading pages
        CIFS: Add support for direct pages in rdata
        cifs: update multiplex loop to handle compounded responses
        cifs: remove header_preamble_size where it is always 0
        cifs: remove struct smb2_hdr
        CIFS: 511c54a2 adds a check for session expiry, status STATUS_NETWORK_SESSION_EXPIRED, however the server can also respond with STATUS_USER_SESSION_DELETED in cases where the session has been idle for some time and the server reaps the session to recover resources.
        cifs: change smb2_get_data_area_len to take a smb2_sync_hdr as argument
        cifs: update smb2_calc_size to use smb2_sync_hdr instead of smb2_hdr
        cifs: remove struct smb2_oplock_break_rsp
        cifs: remove rfc1002 header from all SMB2 response structures
        smb3: on reconnect set PreviousSessionId field
        smb3: Add posix create context for smb3.11 posix mounts
        smb3: add tracepoints for smb2/smb3 open
        cifs: add debug output to show nocase mount option
        smb3: add define for id for posix create context and corresponding struct
        cifs: update smb2_check_message to handle PDUs without a 4 byte length header
        smb3: allow "posix" mount option to enable new SMB311 protocol extensions
        smb3: add support for posix negotiate context
        cifs: allow disabling less secure legacy dialects
        ...
      32552014
    • Linus Torvalds's avatar
      Merge tag 'gfs2-4.18.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 1e43938b
      Linus Torvalds authored
      Pull gfs2 updates from Bob Peterson:
       "We've got nine more patches for this merge window.
      
         - remove sd_jheightsize to greatly simplify some code (Andreas
           Gruenbacher)
      
         - fix some comments (Andreas)
      
         - fix a glock recursion bug when allocation errors occur (Andreas)
      
         - improve the hole_size function so it returns the entire hole rather
           than figuring it out piecemeal (Andreas)
      
         - clean up gfs2_stuffed_write_end to remove a lot of redundancy
           (Andreas)
      
         - clarify code with regard to the way ordered writes are processed
           (Andreas)
      
         - a bunch of improvements and cleanups of the iomap code to pave the
           way for iomap writes, which is a future patch set (Andreas)
      
         - fix a bug where block reservations can run off the end of a bitmap
           (Bob Peterson)
      
         - add Andreas to the MAINTAINERS file (Bob Peterson)"
      
      * tag 'gfs2-4.18.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        MAINTAINERS: Add Andreas Gruenbacher as a maintainer for gfs2
        gfs2: Iomap cleanups and improvements
        gfs2: Remove ordered write mode handling from gfs2_trans_add_data
        gfs2: gfs2_stuffed_write_end cleanup
        gfs2: hole_size improvement
        GFS2: gfs2_free_extlen can return an extent that is too long
        GFS2: Fix allocation error bug with recursive rgrp glocking
        gfs2: Update find_metapath comment
        gfs2: Remove sdp->sd_jheightsize
      1e43938b
    • Linus Torvalds's avatar
      Merge tag 'dlm-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 8a463114
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
       "These three commits fix and clean up the flags dlm was using on its
        SCTP sockets. This improves performance and fixes some bad connection
        delays"
      
      * tag 'dlm-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: remove O_NONBLOCK flag in sctp_connect_to_sock
        dlm: make sctp_connect_to_sock() return in specified time
        dlm: fix a clerical error when set SCTP_NODELAY
      8a463114
    • Linus Torvalds's avatar
      Merge tag 'for-4.18-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 70499656
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "User visible features:
      
         - added support for the ioctl FS_IOC_FSGETXATTR, per-inode flags,
           successor of GET/SETFLAGS; now supports only existing flags:
           append, immutable, noatime, nodump, sync
      
         - 3 new unprivileged ioctls to allow users to enumerate subvolumes
      
         - dedupe syscall implementation does not restrict the range to 16MiB,
           though it still splits the whole range to 16MiB chunks
      
         - on user demand, rmdir() is able to delete an empty subvolume,
           export the capability in sysfs
      
         - fix inode number types in tracepoints, other cleanups
      
         - send: improved speed when dealing with a large removed directory,
           measurements show decrease from 2000 minutes to 2 minutes on a
           directory with 2 million entries
      
         - pre-commit check of superblock to detect a mysterious in-memory
           corruption
      
         - log message updates
      
        Other changes:
      
         - orphan inode cleanup improved, does no keep long-standing
           reservations that could lead up to early ENOSPC in some cases
      
         - slight improvement of handling snapshotted NOCOW files by avoiding
           some unnecessary tree searches
      
         - avoid OOM when dealing with many unmergeable small extents at flush
           time
      
         - speedup conversion of free space tree representations from/to
           bitmap/tree
      
         - code refactoring, deletion, cleanups:
            + delayed refs
            + delayed iput
            + redundant argument removals
            + memory barrier cleanups
            + remove a redundant mutex supposedly excluding several ioctls to
              run in parallel
      
         - new tracepoints for blockgroup manipulation
      
         - more sanity checks of compressed headers"
      
      * tag 'for-4.18-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (183 commits)
        btrfs: Add unprivileged version of ino_lookup ioctl
        btrfs: Add unprivileged ioctl which returns subvolume's ROOT_REF
        btrfs: Add unprivileged ioctl which returns subvolume information
        Btrfs: clean up error handling in btrfs_truncate()
        btrfs: Factor out write portion of btrfs_get_blocks_direct
        btrfs: Factor out read portion of btrfs_get_blocks_direct
        btrfs: return ENOMEM if path allocation fails in btrfs_cross_ref_exist
        btrfs: raid56: Remove VLA usage
        btrfs: return error value if create_io_em failed in cow_file_range
        btrfs: drop useless member qgroup_reserved of btrfs_pending_snapshot
        btrfs: drop unused parameter qgroup_reserved
        btrfs: balance dirty metadata pages in btrfs_finish_ordered_io
        btrfs: lift some btrfs_cross_ref_exist checks in nocow path
        btrfs: Remove fs_info argument from btrfs_uuid_tree_rem
        btrfs: Remove fs_info argument from btrfs_uuid_tree_add
        Btrfs: remove unused check of skip_locking
        Btrfs: remove always true check in unlock_up
        Btrfs: grab write lock directly if write_lock_level is the max level
        Btrfs: move get root out of btrfs_search_slot to a helper
        Btrfs: use more straightforward extent_buffer_uptodate check
        ...
      70499656
    • Linus Torvalds's avatar
      Merge tag 'affs-for-4.18-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · e3a44fd7
      Linus Torvalds authored
      Pull affs fix from David Sterba:
       "A potential memory leak fix for AFFS"
      
      * tag 'affs-for-4.18-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        affs: fix potential memory leak when parsing option 'prefix'
      e3a44fd7
    • Linus Torvalds's avatar
      Merge branch 'work.aio-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 408afb8d
      Linus Torvalds authored
      Pull aio updates from Al Viro:
       "Majority of AIO stuff this cycle. aio-fsync and aio-poll, mostly.
      
        The only thing I'm holding back for a day or so is Adam's aio ioprio -
        his last-minute fixup is trivial (missing stub in !CONFIG_BLOCK case),
        but let it sit in -next for decency sake..."
      
      * 'work.aio-1' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (46 commits)
        aio: sanitize the limit checking in io_submit(2)
        aio: fold do_io_submit() into callers
        aio: shift copyin of iocb into io_submit_one()
        aio_read_events_ring(): make a bit more readable
        aio: all callers of aio_{read,write,fsync,poll} treat 0 and -EIOCBQUEUED the same way
        aio: take list removal to (some) callers of aio_complete()
        aio: add missing break for the IOCB_CMD_FDSYNC case
        random: convert to ->poll_mask
        timerfd: convert to ->poll_mask
        eventfd: switch to ->poll_mask
        pipe: convert to ->poll_mask
        crypto: af_alg: convert to ->poll_mask
        net/rxrpc: convert to ->poll_mask
        net/iucv: convert to ->poll_mask
        net/phonet: convert to ->poll_mask
        net/nfc: convert to ->poll_mask
        net/caif: convert to ->poll_mask
        net/bluetooth: convert to ->poll_mask
        net/sctp: convert to ->poll_mask
        net/tipc: convert to ->poll_mask
        ...
      408afb8d
    • Linus Torvalds's avatar
      Merge branch 'work.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · b058efc1
      Linus Torvalds authored
      Pull dcache lookup cleanups from Al Viro:
       "Cleaning ->lookup() instances up - mostly d_splice_alias() conversions"
      
      * 'work.lookup' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (29 commits)
        switch the rest of procfs lookups to d_splice_alias()
        procfs: switch instantiate_t to d_splice_alias()
        don't bother with tid_fd_revalidate() in lookups
        proc_lookupfd_common(): don't bother with instantiate unless the file is open
        procfs: get rid of ancient BS in pid_revalidate() uses
        cifs_lookup(): switch to d_splice_alias()
        cifs_lookup(): cifs_get_inode_...() never returns 0 with *inode left NULL
        9p: unify paths in v9fs_vfs_lookup()
        ncp_lookup(): use d_splice_alias()
        hfsplus: switch to d_splice_alias()
        hfs: don't allow mounting over .../rsrc
        hfs: use d_splice_alias()
        omfs_lookup(): report IO errors, use d_splice_alias()
        orangefs_lookup: simplify
        openpromfs: switch to d_splice_alias()
        xfs_vn_lookup: simplify a bit
        adfs_lookup: do not fail with ENOENT on negatives, use d_splice_alias()
        adfs_lookup_byname: .. *is* taken care of in fs/namei.c
        romfs_lookup: switch to d_splice_alias()
        qnx6_lookup: switch to d_splice_alias()
        ...
      b058efc1
    • Linus Torvalds's avatar
      Merge tag 'locks-v4.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 9214407d
      Linus Torvalds authored
      Pull fasync fix from Jeff Layton:
       "Just a single fix for a deadlock in the fasync handling code that
        Kirill observed while testing.
      
        The fix is to change the fa_lock to be rwlock_t, and use a read lock
        in kill_fasync_rcu"
      
      * tag 'locks-v4.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        fasync: Fix deadlock between task-context and interrupt-context kill_fasync()
      9214407d
    • Linus Torvalds's avatar
      Merge tag 'docs-4.18' of git://git.lwn.net/linux · eeee3149
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "There's been a fair amount of work in the docs tree this time around,
        including:
      
         - Extensive RST conversions and organizational work in the
           memory-management docs thanks to Mike Rapoport.
      
         - An update of Documentation/features from Andrea Parri and a script
           to keep it updated.
      
         - Various LICENSES updates from Thomas, along with a script to check
           SPDX tags.
      
         - Work to fix dangling references to documentation files; this
           involved a fair number of one-liner comment changes outside of
           Documentation/
      
        ... and the usual list of documentation improvements, typo fixes, etc"
      
      * tag 'docs-4.18' of git://git.lwn.net/linux: (103 commits)
        Documentation: document hung_task_panic kernel parameter
        docs/admin-guide/mm: add high level concepts overview
        docs/vm: move ksm and transhuge from "user" to "internals" section.
        docs: Use the kerneldoc comments for memalloc_no*()
        doc: document scope NOFS, NOIO APIs
        docs: update kernel versions and dates in tables
        docs/vm: transhuge: split userspace bits to admin-guide/mm/transhuge
        docs/vm: transhuge: minor updates
        docs/vm: transhuge: change sections order
        Documentation: arm: clean up Marvell Berlin family info
        Documentation: gpio: driver: Fix a typo and some odd grammar
        docs: ranoops.rst: fix location of ramoops.txt
        scripts/documentation-file-ref-check: rewrite it in perl with auto-fix mode
        docs: uio-howto.rst: use a code block to solve a warning
        mm, THP, doc: Add document for thp_swpout/thp_swpout_fallback
        w1: w1_io.c: fix a kernel-doc warning
        Documentation/process/posting: wrap text at 80 cols
        docs: admin-guide: add cgroup-v2 documentation
        Revert "Documentation/features/vm: Remove arch support status file for 'pte_special'"
        Documentation: refcount-vs-atomic: Update reference to LKMM doc.
        ...
      eeee3149
    • Linus Torvalds's avatar
      swait: strengthen language to discourage use · c5e7a7ea
      Linus Torvalds authored
      We already earlier discouraged people from using this interface in
      commit 88796e7e ("sched/swait: Document it clearly that the swait
      facilities are special and shouldn't be used"), but I just got a pull
      request with a new broken user.
      
      So make the comment *really* clear.
      
      The swait interfaces are bad, and should not be used unless you have
      some *very* strong reasons that include tons of hard performance numbers
      on just why you want to use them, and you show that you actually
      understand that they aren't at all like the normal wait/wakeup
      interfaces.
      
      So far, every single user has been suspect.  The main user is KVM, which
      is completely pointless (there is only ever one waiter, which avoids the
      interface subtleties, but also means that having a queue instead of a
      pointer is counter-productive and certainly not an "optimization").
      
      So make the comments much stronger.
      
      Not that anybody likely reads them anyway, but there's always some
      slight hope that it will cause somebody to think twice.
      
      I'd like to remove this interface entirely, but there is the theoretical
      possibility that it's actually the right thing to use in some situation,
      most likely some deep RT use.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c5e7a7ea
    • Linus Torvalds's avatar
      Merge tag 'regmap-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · a31895ad
      Linus Torvalds authored
      Pull regmap updates from Mark Brown:
       "This is another quiet release for regmap, there's one minor feature
        improvement for the recently added slimbus support and a few minor
        fixes and cleanups"
      
      * tag 'regmap-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: slimbus: allow register offsets up to 16 bits
        regmap: add missing prototype for devm_init_slimbus
        regmap: Skip clk_put for attached clocks when freeing context
        regmap: include <linux/ktime.h> from include/linux/regmap.h
      a31895ad
    • Linus Torvalds's avatar
      Merge tag 'spi-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · cfd12db4
      Linus Torvalds authored
      Pull spi updates from Mark Brown:
       "Quite a busy release for SPI, mainly as a result of Boris Brezillon's
        work on improving the integration with MTD for accelerated SPI flash
        controllers. He's added a new spi_mem interface which works a lot
        better with general hardware and converted the users over to it, as a
        result of this work we've got some MTD changes in here as well.
      
        Other highlights include:
      
         - Lots of spring cleaning for the s3c64xx driver.
      
         - Removal of the bcm53xx, the hardware is also supported by the mspi
           driver but SoC naming had caused people to miss the duplication.
      
         - Conversion of the pxa2xx driver to use the standard message
           processing loop rather than open coding.
      
         - A bunch of improvements to the runtime PM of the OMAP McSPI driver"
      
      * tag 'spi-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (47 commits)
        spi: Fix typo on SPI_MEM help text
        spi: sh-msiof: Fix setting SIRMDR1.SYNCAC to match SITMDR1.SYNCAC
        mtd: devices: m25p80: Use spi_mem_set_drvdata() instead of spi_set_drvdata()
        spi: omap2-mcspi: Remove unnecessary pm_runtime_force_suspend()
        spi: Add missing pm_runtime_put_noidle() after failed get
        spi: ti-qspi: Make sure res_mmap != NULL before dereferencing it
        spi: spi-s3c64xx: Fix system resume support
        spi: bcm-qspi: Fix build failure caused by spi_flash_read() API removal
        spi: Get rid of the spi_flash_read() API
        mtd: spi-nor: Use the spi_mem_xx() API
        spi: ti-qspi: Implement the spi_mem interface
        spi: bcm-qspi: Implement the spi_mem interface
        spi: Make support for regular transfers optional when ->mem_ops != NULL
        spi: Extend the core to ease integration of SPI memory controllers
        spi: remove forgotten CONFIG_SPI_BCM53XX
        spi: remove the older/duplicated bcm53xx driver
        spi: pxa2xx: check clk_prepare_enable() return value
        spi: lpspi: Switch to SPDX identifier
        spi: mxs: Switch to SPDX identifier
        spi: imx: Switch to SPDX identifier
        ...
      cfd12db4
    • Linus Torvalds's avatar
      Merge tag 'chrome-platform-for-linus-4.18' of... · 910470e0
      Linus Torvalds authored
      Merge tag 'chrome-platform-for-linus-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform
      
      Pull chrome platform updates from Benson Leung:
      
       - further changes from Dmitry related to the removal of platform data
         from atmel_mxt_ts and chromeos_laptop.
      
         This time, we have some changes that teach chromeos_laptop how to
         supply acpi properties for some input devices so that the peripheral
         driver doesn't have to do dmi matching on some Chromebook platforms.
      
       - new Chromebook Tablet switch driver, which is useful for x86
         convertible Chromebooks.
      
       - other misc cleanup
      
      * tag 'chrome-platform-for-linus-4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/bleung/chrome-platform:
        platform/chrome: Use to_cros_ec_dev more broadly
        platform/chrome: chromeos_laptop: fix touchpad button mapping on Celes
        platform: chrome: Add input dependency for tablet switch driver
        platform/chrome: chromeos_laptop - supply properties for ACPI devices
        platform/chrome: chromeos_tbmc - add SPDX identifier
        platform: chrome: Add Tablet Switch ACPI driver
        platform/chrome: cros_ec_lpc: do not try DMI match when ACPI device found
      910470e0
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-linus-v4.18' of... · bef82f81
      Linus Torvalds authored
      Merge tag 'hwmon-for-linus-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon updates from Guenter Roeck:
      
       - asus_atk0110 driver modified to use new API
      
       - k10temp supports new CPUs and reports both Tctl and Tdie
      
       - minor fixes in gpio-fan, ltc2990, fschmd, and mc13783 drivers
      
      * tag 'hwmon-for-linus-v4.18' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (asus_atk0110) Make use of device managed memory
        hwmon: (asus_atk0110) Replace deprecated device register call
        hwmon: (k10temp) Make function get_raw_temp static
        hwmon: (gpio-fan) Fix "#cooling-cells" property name in bindings
        MAINTAINERS: hwmon: Add Documentation/devicetree/bindings/hwmon
        hwmon: (ltc2990) support all measurement modes
        hwmon: (ltc2990) add devicetree binding
        hwmon: (ltc2990) Fix incorrect conversion of negative temperatures
        hwmon: (core) check parent dev != NULL when chip != NULL
        hwmon: (fschmd) fix typo 'can by' to 'can be'
        hwmon: (k10temp) Display both Tctl and Tdie
        hwmon: (k10temp) Add support for Stoney Ridge and Bristol Ridge CPUs
        hwmon: MC13783: Add uid and die temperature sensor inputs
      bef82f81
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-4.18' of git://git.infradead.org/users/hch/dma-mapping · e5a59464
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - replace the force_dma flag with a dma_configure bus method. (Nipun
         Gupta, although one patch is іncorrectly attributed to me due to a
         git rebase bug)
      
       - use GFP_DMA32 more agressively in dma-direct. (Takashi Iwai)
      
       - remove PCI_DMA_BUS_IS_PHYS and rely on the dma-mapping API to do the
         right thing for bounce buffering.
      
       - move dma-debug initialization to common code, and apply a few
         cleanups to the dma-debug code.
      
       - cleanup the Kconfig mess around swiotlb selection
      
       - swiotlb comment fixup (Yisheng Xie)
      
       - a trivial swiotlb fix. (Dan Carpenter)
      
       - support swiotlb on RISC-V. (based on a patch from Palmer Dabbelt)
      
       - add a new generic dma-noncoherent dma_map_ops implementation and use
         it for arc, c6x and nds32.
      
       - improve scatterlist validity checking in dma-debug. (Robin Murphy)
      
       - add a struct device quirk to limit the dma-mask to 32-bit due to
         bridge/system issues, and switch x86 to use it instead of a local
         hack for VIA bridges.
      
       - handle devices without a dma_mask more gracefully in the dma-direct
         code.
      
      * tag 'dma-mapping-4.18' of git://git.infradead.org/users/hch/dma-mapping: (48 commits)
        dma-direct: don't crash on device without dma_mask
        nds32: use generic dma_noncoherent_ops
        nds32: implement the unmap_sg DMA operation
        nds32: consolidate DMA cache maintainance routines
        x86/pci-dma: switch the VIA 32-bit DMA quirk to use the struct device flag
        x86/pci-dma: remove the explicit nodac and allowdac option
        x86/pci-dma: remove the experimental forcesac boot option
        Documentation/x86: remove a stray reference to pci-nommu.c
        core, dma-direct: add a flag 32-bit dma limits
        dma-mapping: remove unused gfp_t parameter to arch_dma_alloc_attrs
        dma-debug: check scatterlist segments
        c6x: use generic dma_noncoherent_ops
        arc: use generic dma_noncoherent_ops
        arc: fix arc_dma_{map,unmap}_page
        arc: fix arc_dma_sync_sg_for_{cpu,device}
        arc: simplify arc_dma_sync_single_for_{cpu,device}
        dma-mapping: provide a generic dma-noncoherent implementation
        dma-mapping: simplify Kconfig dependencies
        riscv: add swiotlb support
        riscv: only enable ZONE_DMA32 for 64-bit
        ...
      e5a59464
    • Linus Torvalds's avatar
      Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · f956d08a
      Linus Torvalds authored
      Pull misc vfs updates from Al Viro:
       "Misc bits and pieces not fitting into anything more specific"
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: delete unnecessary assignment in vfs_listxattr
        Documentation: filesystems: update filesystem locking documentation
        vfs: namei: use path_equal() in follow_dotdot()
        fs.h: fix outdated comment about file flags
        __inode_security_revalidate() never gets NULL opt_dentry
        make xattr_getsecurity() static
        vfat: simplify checks in vfat_lookup()
        get rid of dead code in d_find_alias()
        it's SB_BORN, not MS_BORN...
        msdos_rmdir(): kill BS comment
        remove rpc_rmdir()
        fs: avoid fdput() after failed fdget() in vfs_dedupe_file_range()
      f956d08a
    • Linus Torvalds's avatar
      Merge branch 'hch.procfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · cf626b0d
      Linus Torvalds authored
      Pull procfs updates from Al Viro:
       "Christoph's proc_create_... cleanups series"
      
      * 'hch.procfs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (44 commits)
        xfs, proc: hide unused xfs procfs helpers
        isdn/gigaset: add back gigaset_procinfo assignment
        proc: update SIZEOF_PDE_INLINE_NAME for the new pde fields
        tty: replace ->proc_fops with ->proc_show
        ide: replace ->proc_fops with ->proc_show
        ide: remove ide_driver_proc_write
        isdn: replace ->proc_fops with ->proc_show
        atm: switch to proc_create_seq_private
        atm: simplify procfs code
        bluetooth: switch to proc_create_seq_data
        netfilter/x_tables: switch to proc_create_seq_private
        netfilter/xt_hashlimit: switch to proc_create_{seq,single}_data
        neigh: switch to proc_create_seq_data
        hostap: switch to proc_create_{seq,single}_data
        bonding: switch to proc_create_seq_data
        rtc/proc: switch to proc_create_single_data
        drbd: switch to proc_create_single
        resource: switch to proc_create_seq_data
        staging/rtl8192u: simplify procfs code
        jfs: simplify procfs code
        ...
      cf626b0d
    • Linus Torvalds's avatar
      Merge branch 'work.rmdir' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 9c50eafc
      Linus Torvalds authored
      Pull rmdir update from Al Viro:
       "More shrink_dcache_parent()-related stuff - killing the main source of
        potentially contended calls of that on large subtrees"
      
      * 'work.rmdir' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        rmdir(),rename(): do shrink_dcache_parent() only on success
      9c50eafc
    • Linus Torvalds's avatar
      Merge branch 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 06c86e66
      Linus Torvalds authored
      Pull dcache updates from Al Viro:
       "This is the first part of dealing with livelocks etc around
        shrink_dcache_parent()."
      
      * 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        restore cond_resched() in shrink_dcache_parent()
        dput(): turn into explicit while() loop
        dcache: move cond_resched() into the end of __dentry_kill()
        d_walk(): kill 'finish' callback
        d_invalidate(): unhash immediately
      06c86e66
    • Linus Torvalds's avatar
      Merge tag 'for-4.18/block-20180603' of git://git.kernel.dk/linux-block · f459c345
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
      
       - clean up how we pass around gfp_t and
         blk_mq_req_flags_t (Christoph)
      
       - prepare us to defer scheduler attach (Christoph)
      
       - clean up drivers handling of bounce buffers (Christoph)
      
       - fix timeout handling corner cases (Christoph/Bart/Keith)
      
       - bcache fixes (Coly)
      
       - prep work for bcachefs and some block layer optimizations (Kent).
      
       - convert users of bio_sets to using embedded structs (Kent).
      
       - fixes for the BFQ io scheduler (Paolo/Davide/Filippo)
      
       - lightnvm fixes and improvements (Matias, with contributions from Hans
         and Javier)
      
       - adding discard throttling to blk-wbt (me)
      
       - sbitmap blk-mq-tag handling (me/Omar/Ming).
      
       - remove the sparc jsflash block driver, acked by DaveM.
      
       - Kyber scheduler improvement from Jianchao, making it more friendly
         wrt merging.
      
       - conversion of symbolic proc permissions to octal, from Joe Perches.
         Previously the block parts were a mix of both.
      
       - nbd fixes (Josef and Kevin Vigor)
      
       - unify how we handle the various kinds of timestamps that the block
         core and utility code uses (Omar)
      
       - three NVMe pull requests from Keith and Christoph, bringing AEN to
         feature completeness, file backed namespaces, cq/sq lock split, and
         various fixes
      
       - various little fixes and improvements all over the map
      
      * tag 'for-4.18/block-20180603' of git://git.kernel.dk/linux-block: (196 commits)
        blk-mq: update nr_requests when switching to 'none' scheduler
        block: don't use blocking queue entered for recursive bio submits
        dm-crypt: fix warning in shutdown path
        lightnvm: pblk: take bitmap alloc. out of critical section
        lightnvm: pblk: kick writer on new flush points
        lightnvm: pblk: only try to recover lines with written smeta
        lightnvm: pblk: remove unnecessary bio_get/put
        lightnvm: pblk: add possibility to set write buffer size manually
        lightnvm: fix partial read error path
        lightnvm: proper error handling for pblk_bio_add_pages
        lightnvm: pblk: fix smeta write error path
        lightnvm: pblk: garbage collect lines with failed writes
        lightnvm: pblk: rework write error recovery path
        lightnvm: pblk: remove dead function
        lightnvm: pass flag on graceful teardown to targets
        lightnvm: pblk: check for chunk size before allocating it
        lightnvm: pblk: remove unnecessary argument
        lightnvm: pblk: remove unnecessary indirection
        lightnvm: pblk: return NVM_ error on failed submission
        lightnvm: pblk: warn in case of corrupted write buffer
        ...
      f459c345
    • Bob Peterson's avatar
      MAINTAINERS: Add Andreas Gruenbacher as a maintainer for gfs2 · 6d1c2cf2
      Bob Peterson authored
      Add Andreas Gruenbacher as a maintainer for the gfs2 file system
      and remove Steve Whitehouse.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      6d1c2cf2
    • Andreas Gruenbacher's avatar
      gfs2: Iomap cleanups and improvements · 628e366d
      Andreas Gruenbacher authored
      Clean up gfs2_iomap_alloc and gfs2_iomap_get.  Document how
      gfs2_iomap_alloc works: it now needs to be called separately after
      gfs2_iomap_get where necessary; this will be used later by iomap write.
      Move gfs2_iomap_ops into bmap.c.
      
      Introduce a new gfs2_iomap_get_alloc helper and use it in
      fallocate_chunk: gfs2_iomap_begin will become unsuitable for fallocate
      with proper iomap write support.
      
      In gfs2_block_map and fallocate_chunk, zero-initialize struct iomap.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      628e366d
    • Andreas Gruenbacher's avatar
      gfs2: Remove ordered write mode handling from gfs2_trans_add_data · 845802b1
      Andreas Gruenbacher authored
      In journaled data mode, we need to add each buffer head to the current
      transaction.  In ordered write mode, we only need to add the inode to
      the ordered inode list.  So far, both cases are handled in
      gfs2_trans_add_data.  This makes the code look misleading and is
      inefficient for small block sizes as well.  Handle both cases separately
      instead.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      845802b1
    • Andreas Gruenbacher's avatar
      gfs2: gfs2_stuffed_write_end cleanup · d6382a35
      Andreas Gruenbacher authored
      First, change the sanity check in gfs2_stuffed_write_end to check for
      the actual write size instead of the requested write size.
      
      Second, use the existing teardown code in gfs2_write_end instead of
      duplicating it in gfs2_stuffed_write_end.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      d6382a35
    • Andreas Gruenbacher's avatar
      gfs2: hole_size improvement · 7841b9f0
      Andreas Gruenbacher authored
      Reimplement function hole_size based on a generic function for walking
      the metadata tree and rename hole_size to gfs2_hole_size.  While
      previously, multiple invocations of hole_size were sometimes needed to
      walk across the entire hole, the new implementation always returns the
      entire hole at once (provided that the caller is interested in the total
      size).
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      7841b9f0
    • Bob Peterson's avatar
      GFS2: gfs2_free_extlen can return an extent that is too long · dc8fbb03
      Bob Peterson authored
      Function gfs2_free_extlen calculates the length of an extent of
      free blocks that may be reserved. The end pointer was calculated as
      end = start + bh->b_size but b_size is incorrect because the
      bitmap usually stops prior to the end of the buffer data on
      the last bitmap.
      
      What this means is that when you do a write, you can reserve a
      chunk of blocks that runs off the end of the last bitmap. For
      example, I've got a file system where there is only one bitmap
      for each rgrp, so ri_length==1. I saw cases in which iozone
      tried to do a big write, grabbed a large block reservation,
      chose rgrp 5464152, which has ri_data0 5464153 and ri_data 8188.
      So 5464153 + 8188 = 5472341 which is the end of the rgrp.
      
      When it grabbed a reservation it got back: 5470936, length 7229.
      But 5470936 + 7229 = 5478165. So the reservation starts inside
      the rgrp but runs 5824 blocks past the end of the bitmap.
      
      This patch fixes the calculation so it won't exceed the last
      bitmap. It also adds a BUG_ON to guard against overflows in the
      future.
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      dc8fbb03
    • Andreas Gruenbacher's avatar
      GFS2: Fix allocation error bug with recursive rgrp glocking · 7b5747f4
      Andreas Gruenbacher authored
      Before this patch function gfs2_write_begin, upon discovering an
      error, called gfs2_trim_blocks while the rgrp glock was still held.
      That's because gfs2_inplace_release is not called until later.
      This patch reorganizes the logic a bit so gfs2_inplace_release
      is called to release the lock prior to the call to gfs2_trim_blocks,
      thus preventing the glock recursion.
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      7b5747f4
    • Andreas Gruenbacher's avatar
      07e23d68
    • Mark Brown's avatar