1. 01 2月, 2018 11 次提交
    • L
      Merge tag 'dmaengine-4.16-rc1' of git://git.infradead.org/users/vkoul/slave-dma · 2155e69a
      Linus Torvalds 提交于
      Pull dmaengine updates from Vinod Koul:
       "This time is smallish update with updates mainly to drivers:
      
         - updates to xilinx and zynqmp dma controllers
      
         - update reside calculation for rcar controller
      
         - more RSTify fixes for documentation
      
         - add support for race free transfer termination and updating for
           users for that
      
         - support for new rev of hidma with addition new APIs to get device
           match data in ACPI/OF
      
         - random updates to bunch of other drivers"
      
      * tag 'dmaengine-4.16-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (47 commits)
        dmaengine: dmatest: fix container_of member in dmatest_callback
        dmaengine: stm32-dmamux: Remove unnecessary platform_get_resource() error check
        dmaengine: sprd: statify 'sprd_dma_prep_dma_memcpy'
        dmaengine: qcom_hidma: simplify DT resource parsing
        dmaengine: xilinx_dma: Free BD consistent memory
        dmaengine: xilinx_dma: Fix warning variable prev set but not used
        dmaengine: xilinx_dma: properly configure the SG mode bit in the driver for cdma
        dmaengine: doc: format struct fields using monospace
        dmaengine: doc: fix bullet list formatting
        dmaengine: ti-dma-crossbar: Fix event mapping for TPCC_EVT_MUX_60_63
        dmaengine: cppi41: Fix channel queues array size check
        dmaengine: imx-sdma: Add MODULE_FIRMWARE
        dmaengine: xilinx_dma: Fix typos
        dmaengine: xilinx_dma: Differentiate probe based on the ip type
        dmaengine: xilinx_dma: fix style issues from checkpatch
        dmaengine: xilinx_dma: Fix kernel doc warnings
        dmaengine: xilinx_dma: Fix race condition in the driver for multiple descriptor scenario
        dmaeninge: xilinx_dma: Fix bug in multiple frame stores scenario in vdma
        dmaengine: xilinx_dma: Check for channel idle state before submitting dma descriptor
        dmaengine: zynqmp_dma: Fix race condition in the probe
        ...
      2155e69a
    • L
      Merge tag 'dma-mapping-4.16' of git://git.infradead.org/users/hch/dma-mapping · 2382dc9a
      Linus Torvalds 提交于
      Pull dma mapping updates from Christoph Hellwig:
       "Except for a runtime warning fix from Christian this is all about
        consolidation of the generic no-IOMMU code, a well as the glue code
        for swiotlb.
      
        All the code is based on the x86 implementation with hooks to allow
        all architectures that aren't cache coherent to use it.
      
        The x86 conversion itself has been deferred because the x86
        maintainers were a little busy in the last months"
      
      * tag 'dma-mapping-4.16' of git://git.infradead.org/users/hch/dma-mapping: (57 commits)
        MAINTAINERS: add the iommu list for swiotlb and xen-swiotlb
        arm64: use swiotlb_alloc and swiotlb_free
        arm64: replace ZONE_DMA with ZONE_DMA32
        mips: use swiotlb_{alloc,free}
        mips/netlogic: remove swiotlb support
        tile: use generic swiotlb_ops
        tile: replace ZONE_DMA with ZONE_DMA32
        unicore32: use generic swiotlb_ops
        ia64: remove an ifdef around the content of pci-dma.c
        ia64: clean up swiotlb support
        ia64: use generic swiotlb_ops
        ia64: replace ZONE_DMA with ZONE_DMA32
        swiotlb: remove various exports
        swiotlb: refactor coherent buffer allocation
        swiotlb: refactor coherent buffer freeing
        swiotlb: wire up ->dma_supported in swiotlb_dma_ops
        swiotlb: add common swiotlb_map_ops
        swiotlb: rename swiotlb_free to swiotlb_exit
        x86: rename swiotlb_dma_ops
        powerpc: rename swiotlb_dma_ops
        ...
      2382dc9a
    • L
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 28bc6fb9
      Linus Torvalds 提交于
      Pull SCSI updates from James Bottomley:
       "This is mostly updates of the usual driver suspects: arcmsr,
        scsi_debug, mpt3sas, lpfc, cxlflash, qla2xxx, aacraid, megaraid_sas,
        hisi_sas.
      
        We also have a rework of the libsas hotplug handling to make it more
        robust, a slew of 32 bit time conversions and fixes, and a host of the
        usual minor updates and style changes. The biggest potential for
        regressions is the libsas hotplug changes, but so far they seem stable
        under testing"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (313 commits)
        scsi: qla2xxx: Fix logo flag for qlt_free_session_done()
        scsi: arcmsr: avoid do_gettimeofday
        scsi: core: Add VENDOR_SPECIFIC sense code definitions
        scsi: qedi: Drop cqe response during connection recovery
        scsi: fas216: fix sense buffer initialization
        scsi: ibmvfc: Remove unneeded semicolons
        scsi: hisi_sas: fix a bug in hisi_sas_dev_gone()
        scsi: hisi_sas: directly attached disk LED feature for v2 hw
        scsi: hisi_sas: devicetree: bindings: add LED feature for v2 hw
        scsi: megaraid_sas: NVMe passthrough command support
        scsi: megaraid: use ktime_get_real for firmware time
        scsi: fnic: use 64-bit timestamps
        scsi: qedf: Fix error return code in __qedf_probe()
        scsi: devinfo: fix format of the device list
        scsi: qla2xxx: Update driver version to 10.00.00.05-k
        scsi: qla2xxx: Add XCB counters to debugfs
        scsi: qla2xxx: Fix queue ID for async abort with Multiqueue
        scsi: qla2xxx: Fix warning for code intentation in __qla24xx_handle_gpdb_event()
        scsi: qla2xxx: Fix warning during port_name debug print
        scsi: qla2xxx: Fix warning in qla2x00_async_iocb_timeout()
        ...
      28bc6fb9
    • L
      Merge tag 'for-4.16/dm-changes' of... · 0be600a5
      Linus Torvalds 提交于
      Merge tag 'for-4.16/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - DM core fixes to ensure that bio submission follows a depth-first
         tree walk; this is critical to allow forward progress without the
         need to use the bioset's BIOSET_NEED_RESCUER.
      
       - Remove DM core's BIOSET_NEED_RESCUER based dm_offload infrastructure.
      
       - DM core cleanups and improvements to make bio-based DM more efficient
         (e.g. reduced memory footprint as well leveraging per-bio-data more).
      
       - Introduce new bio-based mode (DM_TYPE_NVME_BIO_BASED) that leverages
         the more direct IO submission path in the block layer; this mode is
         used by DM multipath and also optimizes targets like DM thin-pool
         that stack directly on NVMe data device.
      
       - DM multipath improvements to factor out legacy SCSI-only (e.g.
         scsi_dh) code paths to allow for more optimized support for NVMe
         multipath.
      
       - A fix for DM multipath path selectors (service-time and queue-length)
         to select paths in a more balanced way; largely academic but doesn't
         hurt.
      
       - Numerous DM raid target fixes and improvements.
      
       - Add a new DM "unstriped" target that enables Intel to workaround
         firmware limitations in some NVMe drives that are striped internally
         (this target also works when stacked above the DM "striped" target).
      
       - Various Documentation fixes and improvements.
      
       - Misc cleanups and fixes across various DM infrastructure and targets
         (e.g. bufio, flakey, log-writes, snapshot).
      
      * tag 'for-4.16/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (69 commits)
        dm cache: Documentation: update default migration_throttling value
        dm mpath selector: more evenly distribute ties
        dm unstripe: fix target length versus number of stripes size check
        dm thin: fix trailing semicolon in __remap_and_issue_shared_cell
        dm table: fix NVMe bio-based dm_table_determine_type() validation
        dm: various cleanups to md->queue initialization code
        dm mpath: delay the retry of a request if the target responded as busy
        dm mpath: return DM_MAPIO_DELAY_REQUEUE if QUEUE_IO or PG_INIT_REQUIRED
        dm mpath: return DM_MAPIO_REQUEUE on blk-mq rq allocation failure
        dm log writes: fix max length used for kstrndup
        dm: backfill missing calls to mutex_destroy()
        dm snapshot: use mutex instead of rw_semaphore
        dm flakey: check for null arg_name in parse_features()
        dm thin: extend thinpool status format string with omitted fields
        dm thin: fixes in thin-provisioning.txt
        dm thin: document representation of <highest mapped sector> when there is none
        dm thin: fix documentation relative to low water mark threshold
        dm cache: be consistent in specifying sectors and SI units in cache.txt
        dm cache: delete obsoleted paragraph in cache.txt
        dm cache: fix grammar in cache-policies.txt
        ...
      0be600a5
    • L
      Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md · 040639b7
      Linus Torvalds 提交于
      Pull MD updates from Shaohua Li:
       "Some small fixes for MD:
      
         - fix raid5-cache potential problems if raid5 cache isn't fully
           recovered
      
         - fix a wait-within-wait warning in raid1/10
      
         - make raid5-PPL support disks with writeback cache enabled"
      
      * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md:
        raid5-ppl: PPL support for disks with write-back cache enabled
        md/r5cache: print more info of log recovery
        md/raid1,raid10: silence warning about wait-within-wait
        md: introduce new personality funciton start()
      040639b7
    • L
      Merge tag 'xfs-4.16-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 20c59c71
      Linus Torvalds 提交于
      Pull xfs updates from Darrick Wong:
       "This merge cycle, we're again some substantive changes to XFS.
      
        Metadata verifiers have been restructured to provide more detail about
        which part of a metadata structure failed checks, and we've enhanced
        the new online fsck feature to cross-reference extent allocation
        information with the other metadata structures. With this pull, the
        metadata verification part of online fsck is more or less finished,
        though the feature is still experimental and still disabled by
        default.
      
        We're also preparing to remove the EXPERIMENTAL tag from a couple of
        features this cycle. This week we're committing a bunch of space
        accounting fixes for reflink and removing the EXPERIMENTAL tag from
        reflink; I anticipate that we'll be ready to do the same for the
        reverse mapping feature next week. (I don't have any pending fixes for
        rmap; however I wish to remove the tags one at a time.)
      
        This giant pile of patches has been run through a full xfstests run
        over the weekend and through a quick xfstests run against this
        morning's master, with no major failures reported. Let me know if
        there's any merge problems -- git merge reported that one of our
        patches touched the same function as the i_version series, but it
        resolved things cleanly.
      
        Summary:
      
         - Log faulting code locations when verifiers fail, for improved
           diagnosis of corrupt filesystems.
      
         - Implement metadata verifiers for local format inode fork data.
      
         - Online scrub now cross-references metadata records with other
           metadata.
      
         - Refactor the fs geometry ioctl generation functions.
      
         - Harden various metadata verifiers.
      
         - Fix various accounting problems.
      
         - Fix uncancelled transactions leaking when xattr functions fail.
      
         - Prevent the copy-on-write speculative preallocation garbage
           collector from racing with writeback.
      
         - Emit log reservation type information as trace data so that we can
           compare against xfsprogs.
      
         - Fix some erroneous asserts in the online scrub code.
      
         - Clean up the transaction reservation calculations.
      
         - Fix various minor bugs in online scrub.
      
         - Log complaints about mixed dio/buffered writes once per day and
           less noisily than before.
      
         - Refactor buffer log item lists to use list_head.
      
         - Break PNFS leases before reflinking blocks.
      
         - Reduce lock contention on reflink source files.
      
         - Fix some quota accounting problems with reflink.
      
         - Fix a serious corruption problem in the direct cow write code where
           we fed bad iomaps to the vfs iomap consumers.
      
         - Various other refactorings.
      
         - Remove EXPERIMENTAL tag from reflink!"
      
      * tag 'xfs-4.16-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (94 commits)
        xfs: remove experimental tag for reflinks
        xfs: don't screw up direct writes when freesp is fragmented
        xfs: check reflink allocation mappings
        iomap: warn on zero-length mappings
        xfs: treat CoW fork operations as delalloc for quota accounting
        xfs: only grab shared inode locks for source file during reflink
        xfs: allow xfs_lock_two_inodes to take different EXCL/SHARED modes
        xfs: reflink should break pnfs leases before sharing blocks
        xfs: don't clobber inobt/finobt cursors when xref with rmap
        xfs: skip CoW writes past EOF when writeback races with truncate
        xfs: preserve i_rdev when recycling a reclaimable inode
        xfs: refactor accounting updates out of xfs_bmap_btalloc
        xfs: refactor inode verifier corruption error printing
        xfs: make tracepoint inode number format consistent
        xfs: always zero di_flags2 when we free the inode
        xfs: call xfs_qm_dqattach before performing reflink operations
        xfs: bmap code cleanup
        Use list_head infra-structure for buffer's log items list
        Split buffer's b_fspriv field
        Get rid of xfs_buf_log_item_t typedef
        ...
      20c59c71
    • L
      Merge branch 'work.get_user_pages_fast' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 5a87e37e
      Linus Torvalds 提交于
      Pull get_user_pages_fast updates from Al Viro:
       "A bit more get_user_pages work"
      
      * 'work.get_user_pages_fast' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        kvm: switch get_user_page_nowait() to get_user_pages_unlocked()
        __get_user_pages_locked(): get rid of notify_drop argument
        get_user_pages_unlocked(): pass true to __get_user_pages_locked() notify_drop
        cris: switch to get_user_pages_fast()
        fold __get_user_pages_unlocked() into its sole remaining caller
      5a87e37e
    • L
      Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 19e7b5f9
      Linus Torvalds 提交于
      Pull misc vfs updates from Al Viro:
       "All kinds of misc stuff, without any unifying topic, from various
        people.
      
        Neil's d_anon patch, several bugfixes, introduction of kvmalloc
        analogue of kmemdup_user(), extending bitfield.h to deal with
        fixed-endians, assorted cleanups all over the place..."
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (28 commits)
        alpha: osf_sys.c: use timespec64 where appropriate
        alpha: osf_sys.c: fix put_tv32 regression
        jffs2: Fix use-after-free bug in jffs2_iget()'s error handling path
        dcache: delete unused d_hash_mask
        dcache: subtract d_hash_shift from 32 in advance
        fs/buffer.c: fold init_buffer() into init_page_buffers()
        fs: fold __inode_permission() into inode_permission()
        fs: add RWF_APPEND
        sctp: use vmemdup_user() rather than badly open-coding memdup_user()
        snd_ctl_elem_init_enum_names(): switch to vmemdup_user()
        replace_user_tlv(): switch to vmemdup_user()
        new primitive: vmemdup_user()
        memdup_user(): switch to GFP_USER
        eventfd: fold eventfd_ctx_get() into eventfd_ctx_fileget()
        eventfd: fold eventfd_ctx_read() into eventfd_read()
        eventfd: convert to use anon_inode_getfd()
        nfs4file: get rid of pointless include of btrfs.h
        uvc_v4l2: clean copyin/copyout up
        vme_user: don't use __copy_..._user()
        usx2y: don't bother with memdup_user() for 16-byte structure
        ...
      19e7b5f9
    • L
      Merge tag 'gfs2-4.16.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 26064ea4
      Linus Torvalds 提交于
      Pull GFS2 updates from Bob Peterson:
       "We've got 30 patches for this merge window. These generally fall into
        five categories:
      
         - code cleanups
      
         - patches related to adding PUNCH_HOLE support to GFS2
      
         - support for new fields in resource group headers
      
         - a few bug fixes
      
         - support for new fields in journal log headers. These new fields,
           which were previously unused, are designed to make it easier to
           track down file system corruption, and allow fsck.gfs2 to make more
           intelligent decisions when finding and fixing file system
           corruption.
      
        Details:
      
         - Two patches from Abhi Das, to trim the ordered writes list, which
           used to grow uncontrollably until unmount.
      
         - Several patches from Andreas Gruenbacher: remove an unused
           parameter from function gfs2_write_jdata_pagevec, remove a
           pointless BUG_ON, clean up an error patch in trunc_start, remove
           some unused parameters from truncate, make gfs2_journaled_truncate
           more efficient, clean up the support functions for truncate, fix
           metadata read-ahead for truncate to make it faster, fix up the
           non-recursive truncate code, rework and rename
           gfs2_block_truncate_page, generalize the non-recursive truncate
           code so it can take a range of values for punch_hole support,
           introduce new PUNCH_HOLE support that take advantage of the
           previous patches, add fallocate support with PUNCH_HOLE, fix some
           typos in the comments, add the function gfs2_max_stuffed_size to
           replace a piece of code that was needlessly repeated throughout
           GFS2, a minor cleanup to function gfs2_page_add_databufs, get rid
           of function gfs2_log_header_in in preparation for the new log
           header fields, and also fix up some missing newlines in kernel
           messages.
      
         - Andy Price added a new field to resource groups to indicate where
           the next one should be, to allow fsck.gfs2 to make better repairs.
           He also added new rindex fields for consistency checking, and added
           a crc field to resource group headers for consistency checking.
      
         - I reduced redundancy in functions common to freeing dinodes, and
           when writing log headers between the journalling code and journal
           recovery code. Also added new fields to journal log headers based
           on a prototype from Steve Whitehouse, and log the source of journal
           log headers so we can better track down journal corruption. Minor
           comment typo fix and a fix for a BUG in an unlink error path.
      
         - Steve Whitehouse contributed a patch to fix an incorrect use of the
           gfs2_blk2rgrpd function.
      
         - Tetsuo Handa contributed a patch that fixes incorrect error
           handling in function init_gfs2_fs"
      
      * tag 'gfs2-4.16.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: (30 commits)
        gfs2: Add a few missing newlines in messages
        gfs2: Remove inode from ordered write list in gfs2_write_inode()
        GFS2: Don't try to end a non-existent transaction in unlink
        GFS2: Fix minor comment typo
        GFS2: Log the reason for log flushes in every log header
        GFS2: Introduce new gfs2_log_header_v2
        gfs2: Get rid of gfs2_log_header_in
        gfs2: Minor gfs2_page_add_databufs cleanup
        gfs2: Add gfs2_max_stuffed_size
        gfs2: Typo fixes
        gfs2: Implement fallocate(FALLOC_FL_PUNCH_HOLE)
        gfs2: Turn trunc_dealloc into punch_hole
        gfs2: Generalize truncate code
        Turn gfs2_block_truncate_page into gfs2_block_zero_range
        gfs2: Improve non-recursive delete algorithm
        gfs2: Fix metadata read-ahead during truncate
        gfs2: Clean up {lookup,fillup}_metapath
        gfs2: Remove minor gfs2_journaled_truncate inefficiencies
        gfs2: truncate: Remove unnecessary oldsize parameters
        gfs2: Clean up trunc_start error path
        ...
      26064ea4
    • E
      devpts: fix error handling in devpts_mntget() · c9cc8d01
      Eric Biggers 提交于
      If devpts_ptmx_path() returns an error code, then devpts_mntget()
      dereferences an ERR_PTR():
      
          BUG: unable to handle kernel paging request at fffffffffffffff5
          IP: devpts_mntget+0x13f/0x280 fs/devpts/inode.c:173
      
      Fix it by returning early in the error paths.
      
      Reproducer:
      
          #define _GNU_SOURCE
          #include <fcntl.h>
          #include <sched.h>
          #include <sys/ioctl.h>
          #define TIOCGPTPEER _IO('T', 0x41)
      
          int main()
          {
              for (;;) {
                  int fd = open("/dev/ptmx", 0);
                  unshare(CLONE_NEWNS);
                  ioctl(fd, TIOCGPTPEER, 0);
              }
          }
      
      Fixes: 311fc65c ("pty: Repair TIOCGPTPEER")
      Reported-by: Nsyzbot <syzkaller@googlegroups.com>
      Cc: <stable@vger.kernel.org> # v4.13+
      Signed-off-by: NEric Biggers <ebiggers@google.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c9cc8d01
    • J
      iversion: make inode_cmp_iversion{+raw} return bool instead of s64 · c0cef30e
      Jeff Layton 提交于
      As Linus points out:
      
          The inode_cmp_iversion{+raw}() functions are pure and utter crap.
      
          Why?
      
          You say that they return 0/negative/positive, but they do so in a
          completely broken manner. They return that ternary value as the
          sequence number difference in a 's64', which means that if you
          actually care about that ternary value, and do the *sane* thing that
          the kernel-doc of the function implies is the right thing, you would
          do
      
              int cmp = inode_cmp_iversion(inode, old);
              if (cmp < 0 ...
      
          and as a result you get code that looks sane, but that doesn't
          actually *WORK* right.
      
      Since none of the callers actually care about the ternary value here,
      convert the inode_cmp_iversion{+raw} functions to just return a boolean
      value (false for matching, true for non-matching).
      
      This matches the existing use of these functions just fine, and makes it
      simple to convert them to return a ternary value in the future if we
      grow callers that need it.
      
      With this change we can also reimplement inode_cmp_iversion in a simpler
      way using inode_peek_iversion.
      Signed-off-by: NJeff Layton <jlayton@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      c0cef30e
  2. 31 1月, 2018 29 次提交
    • V
      Merge branch 'topic/xilinx' into for-linus · 330542fc
      Vinod Koul 提交于
      330542fc
    • V
      Merge branch 'topic/virt-dma' into for-linus · b8e1a963
      Vinod Koul 提交于
      b8e1a963
    • V
      Merge branch 'topic/timb' into for-linus · cea0dd4d
      Vinod Koul 提交于
      cea0dd4d
    • V
      Merge branch 'topic/ti' into for-linus · db90305b
      Vinod Koul 提交于
      db90305b
    • V
      Merge branch 'topic/tegra' into for-linus · 21359a84
      Vinod Koul 提交于
      21359a84
    • V
      Merge branch 'topic/stm' into for-linus · 6811837d
      Vinod Koul 提交于
      6811837d
    • V
      Merge branch 'topic/sprd' into for-linus · 581f5b14
      Vinod Koul 提交于
      581f5b14
    • V
      Merge branch 'topic/rcar' into for-linus · 5039104f
      Vinod Koul 提交于
      5039104f
    • V
      Merge branch 'topic/qcom_hidma' into for-linus · 2cb1800c
      Vinod Koul 提交于
      2cb1800c
    • V
      Merge branch 'topic/qcom' into for-linus · c203f677
      Vinod Koul 提交于
      c203f677
    • V
      Merge branch 'topic/mic' into for-linus · c4cc2c3a
      Vinod Koul 提交于
      c4cc2c3a
    • V
      Merge branch 'topic/imx' into for-linus · bcf73a7b
      Vinod Koul 提交于
      bcf73a7b
    • V
      Merge branch 'topic/doc' into for-linus · ae40d5c5
      Vinod Koul 提交于
      ae40d5c5
    • V
      Merge branch 'topic/device_changes' into for-linus · 40303764
      Vinod Koul 提交于
      40303764
    • V
      Merge branch 'topic/cppi' into for-linus · 1eac3218
      Vinod Koul 提交于
      1eac3218
    • L
      Merge tag 'f2fs-for-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 3da90b15
      Linus Torvalds 提交于
      Pull f2fs updates from Jaegeuk Kim:
       "In this round, we've followed up to support some generic features such
        as cgroup, block reservation, linking fscrypt_ops, delivering
        write_hints, and some ioctls. And, we could fix some corner cases in
        terms of power-cut recovery and subtle deadlocks.
      
        Enhancements:
         - bitmap operations to handle NAT blocks
         - readahead to improve readdir speed
         - switch to use fscrypt_*
         - apply write hints for direct IO
         - add reserve_root=%u,resuid=%u,resgid=%u to reserve blocks for root/uid/gid
         - modify b_avail and b_free to consider root reserved blocks
         - support cgroup writeback
         - support FIEMAP_FLAG_XATTR for fibmap
         - add F2FS_IOC_PRECACHE_EXTENTS to pre-cache extents
         - add F2FS_IOC_{GET/SET}_PIN_FILE to pin LBAs for data blocks
         - support inode creation time
      
        Bug fixs:
         - sysfile-based quota operations
         - memory footprint accounting
         - allow to write data on partial preallocation case
         - fix deadlock case on fallocate
         - fix to handle fill_super errors
         - fix missing inode updates of fsync'ed file
         - recover renamed file which was fsycn'ed before
         - drop inmemory pages in corner error case
         - keep last_disk_size correctly
         - recover missing i_inline flags during roll-forward
      
        Various clean-up patches were added as well"
      
      * tag 'f2fs-for-4.16-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (72 commits)
        f2fs: support inode creation time
        f2fs: rebuild sit page from sit info in mem
        f2fs: stop issuing discard if fs is readonly
        f2fs: clean up duplicated assignment in init_discard_policy
        f2fs: use GFP_F2FS_ZERO for cleanup
        f2fs: allow to recover node blocks given updated checkpoint
        f2fs: recover some i_inline flags
        f2fs: correct removexattr behavior for null valued extended attribute
        f2fs: drop page cache after fs shutdown
        f2fs: stop gc/discard thread after fs shutdown
        f2fs: hanlde error case in f2fs_ioc_shutdown
        f2fs: split need_inplace_update
        f2fs: fix to update last_disk_size correctly
        f2fs: kill F2FS_INLINE_XATTR_ADDRS for cleanup
        f2fs: clean up error path of fill_super
        f2fs: avoid hungtask when GC encrypted block if io_bits is set
        f2fs: allow quota to use reserved blocks
        f2fs: fix to drop all inmem pages correctly
        f2fs: speed up defragment on sparse file
        f2fs: support F2FS_IOC_PRECACHE_EXTENTS
        ...
      3da90b15
    • L
      Merge tag 'nfs-for-4.16-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · efd52b5d
      Linus Torvalds 提交于
      Pull NFS client updates from Trond Myklebust:
       "Highlights include:
      
        Stable bugfixes:
      
         - Fix breakages in the nfsstat utility due to the inclusion of the
           NFSv4 LOOKUPP operation
      
         - Fix a NULL pointer dereference in nfs_idmap_prepare_pipe_upcall()
           due to nfs_idmap_legacy_upcall() being called without an 'aux'
           parameter
      
         - Fix a refcount leak in the standard O_DIRECT error path
      
         - Fix a refcount leak in the pNFS O_DIRECT fallback to MDS path
      
         - Fix CPU latency issues with nfs_commit_release_pages()
      
         - Fix the LAYOUTUNAVAILABLE error case in the file layout type
      
         - NFS: Fix a race between mmap() and O_DIRECT
      
        Features:
      
         - Support the statx() mask and query flags to enable optimisations
           when the user is requesting only attributes that are already up to
           date in the inode cache, or is specifying the AT_STATX_DONT_SYNC
           flag
      
         - Add a module alias for the SCSI pNFS layout type
      
        Bugfixes:
      
         - Automounting when resolving a NFSv4 referral should preserve the
           RDMA transport protocol settings
      
         - Various other RDMA bugfixes from Chuck
      
         - pNFS block layout fixes
      
         - Always set NFS_LOCK_LOST when a lock is lost"
      
      * tag 'nfs-for-4.16-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (69 commits)
        NFS: Fix a race between mmap() and O_DIRECT
        NFS: Remove a redundant call to unmap_mapping_range()
        pnfs/blocklayout: Ensure disk address in block device map
        pnfs/blocklayout: pnfs_block_dev_map uses bytes, not sectors
        lockd: Fix server refcounting
        SUNRPC: Fix null rpc_clnt dereference in rpc_task_queued tracepoint
        SUNRPC: Micro-optimize __rpc_execute
        SUNRPC: task_run_action should display tk_callback
        sunrpc: Format RPC events consistently for display
        SUNRPC: Trace xprt_timer events
        xprtrdma: Correct some documenting comments
        xprtrdma: Fix "bytes registered" accounting
        xprtrdma: Instrument allocation/release of rpcrdma_req/rep objects
        xprtrdma: Add trace points to instrument QP and CQ access upcalls
        xprtrdma: Add trace points in the client-side backchannel code paths
        xprtrdma: Add trace points for connect events
        xprtrdma: Add trace points to instrument MR allocation and recovery
        xprtrdma: Add trace points to instrument memory invalidation
        xprtrdma: Add trace points in reply decoder path
        xprtrdma: Add trace points to instrument memory registration
        ..
      efd52b5d
    • L
      Merge branch 'work.sock_recvmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 1ed2d76e
      Linus Torvalds 提交于
      Pull kern_recvmsg reduction from Al Viro:
       "kernel_recvmsg() is a set_fs()-using wrapper for sock_recvmsg(). In
        all but one case that is not needed - use of ITER_KVEC for ->msg_iter
        takes care of the data and does not care about set_fs(). The only
        exception is svc_udp_recvfrom() where we want cmsg to be store into
        kernel object; everything else can just use sock_recvmsg() and be done
        with that.
      
        A followup converting svc_udp_recvfrom() away from set_fs() (and
        killing kernel_recvmsg() off) is *NOT* in here - I'd like to hear what
        netdev folks think of the approach proposed in that followup)"
      
      * 'work.sock_recvmsg' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        tipc: switch to sock_recvmsg()
        smc: switch to sock_recvmsg()
        ipvs: switch to sock_recvmsg()
        mISDN: switch to sock_recvmsg()
        drbd: switch to sock_recvmsg()
        lustre lnet_sock_read(): switch to sock_recvmsg()
        cfs2: switch to sock_recvmsg()
        ncpfs: switch to sock_recvmsg()
        dlm: switch to sock_recvmsg()
        svc_recvfrom(): switch to sock_recvmsg()
      1ed2d76e
    • L
      Merge branch 'work.mqueue' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 8b0fdf63
      Linus Torvalds 提交于
      Pull mqueue/bpf vfs cleanups from Al Viro:
       "mqueue and bpf go through rather painful and similar contortions to
        create objects in their dentry trees. Provide a primitive for doing
        that without abusing ->mknod(), switch bpf and mqueue to it.
      
        Another mqueue-related thing that has ended up in that branch is
        on-demand creation of internal mount (based upon the work of Giuseppe
        Scrivano)"
      
      * 'work.mqueue' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        mqueue: switch to on-demand creation of internal mount
        tidy do_mq_open() up a bit
        mqueue: clean prepare_open() up
        do_mq_open(): move all work prior to dentry_open() into a helper
        mqueue: fold mq_attr_ok() into mqueue_get_inode()
        move dentry_open() calls up into do_mq_open()
        mqueue: switch to vfs_mkobj(), quit abusing ->d_fsdata
        bpf_obj_do_pin(): switch to vfs_mkobj(), quit abusing ->mknod()
        new primitive: vfs_mkobj()
      8b0fdf63
    • L
      Merge branch 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 168fe32a
      Linus Torvalds 提交于
      Pull poll annotations from Al Viro:
       "This introduces a __bitwise type for POLL### bitmap, and propagates
        the annotations through the tree. Most of that stuff is as simple as
        'make ->poll() instances return __poll_t and do the same to local
        variables used to hold the future return value'.
      
        Some of the obvious brainos found in process are fixed (e.g. POLLIN
        misspelled as POLL_IN). At that point the amount of sparse warnings is
        low and most of them are for genuine bugs - e.g. ->poll() instance
        deciding to return -EINVAL instead of a bitmap. I hadn't touched those
        in this series - it's large enough as it is.
      
        Another problem it has caught was eventpoll() ABI mess; select.c and
        eventpoll.c assumed that corresponding POLL### and EPOLL### were
        equal. That's true for some, but not all of them - EPOLL### are
        arch-independent, but POLL### are not.
      
        The last commit in this series separates userland POLL### values from
        the (now arch-independent) kernel-side ones, converting between them
        in the few places where they are copied to/from userland. AFAICS, this
        is the least disruptive fix preserving poll(2) ABI and making epoll()
        work on all architectures.
      
        As it is, it's simply broken on sparc - try to give it EPOLLWRNORM and
        it will trigger only on what would've triggered EPOLLWRBAND on other
        architectures. EPOLLWRBAND and EPOLLRDHUP, OTOH, are never triggered
        at all on sparc. With this patch they should work consistently on all
        architectures"
      
      * 'misc.poll' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (37 commits)
        make kernel-side POLL... arch-independent
        eventpoll: no need to mask the result of epi_item_poll() again
        eventpoll: constify struct epoll_event pointers
        debugging printk in sg_poll() uses %x to print POLL... bitmap
        annotate poll(2) guts
        9p: untangle ->poll() mess
        ->si_band gets POLL... bitmap stored into a user-visible long field
        ring_buffer_poll_wait() return value used as return value of ->poll()
        the rest of drivers/*: annotate ->poll() instances
        media: annotate ->poll() instances
        fs: annotate ->poll() instances
        ipc, kernel, mm: annotate ->poll() instances
        net: annotate ->poll() instances
        apparmor: annotate ->poll() instances
        tomoyo: annotate ->poll() instances
        sound: annotate ->poll() instances
        acpi: annotate ->poll() instances
        crypto: annotate ->poll() instances
        block: annotate ->poll() instances
        x86: annotate ->poll() instances
        ...
      168fe32a
    • L
      Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 13ddd166
      Linus Torvalds 提交于
      Pull cgroup updates from Tejun Heo:
       "Nothing too interesting. Documentation updates and trivial changes;
        however, this pull request does containt he previusly discussed
        dropping of __must_check from strscpy()"
      
      * 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        Documentation: Fix 'file_mapped' -> 'mapped_file'
        string: drop __must_check from strscpy() and restore strscpy() usages in cgroup
        cgroup, docs: document the root cgroup behavior of cpu and io controllers
        cgroup-v2.txt: fix typos
        cgroup: Update documentation reference
        Documentation/cgroup-v1: fix outdated programming details
        cgroup, docs: document cgroup v2 device controller
      13ddd166
    • L
      Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu · 289104c9
      Linus Torvalds 提交于
      Pull percpu update from Tejun Heo:
       "One trivial patch to convert the return type from int to bool"
      
      * 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
        percpu: percpu_counter_initialized can be boolean
      289104c9
    • L
      Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata · 76a250f9
      Linus Torvalds 提交于
      Pull libata updates from Tejun Heo:
       "Nothing too interesting. Several patches to convert mdelay() to
        usleep_range(), removal of unused pata_at32, and other low level
        driver specific changes"
      
      * 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
        ata: pata_pdc2027x: Replace mdelay with msleep
        ata: pata_it821x: Replace mdelay with usleep_range in it821x_firmware_command
        ata: sata_mv: Replace mdelay with usleep_range in mv_reset_channel
        ata: remove pata_at32
        phy: brcm-sata: remove unused variable
        phy: brcm-sata: fix semicolon.cocci warnings
        ata: ahci_brcm: Recover from failures to identify devices
        phy: brcm-sata: Implement calibrate callback
        ahci: Add Intel Cannon Lake PCH-H PCI ID
        ata_piix: constify pci_bits
        libata:pata_atiixp: Don't use unconnected secondary port on SB600
        ata: ahci_brcm: Avoid clobbering SATA_TOP_CTRL_BUS_CTRL
        ahci: Allow setting a default LPM policy for mobile chipsets
        ahci: Add PCI ids for Intel Bay Trail, Cherry Trail and Apollo Lake AHCI
        ahci: Annotate PCI ids for mobile Intel chipsets as such
      76a250f9
    • L
      Merge branch 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · f8cc87b6
      Linus Torvalds 提交于
      Pull workqueue updates from Tejun Heo:
       "Workqueue has an early init trick where workqueues can be created and
        work items queued on them before the workqueue subsystem is online.
        This helps simplifying early init and operation of low level
        subsystems which use workqueues for managerial things which aren't
        depended upon early during boot.
      
        Out of laziness, the early init didn't cover workqueues with
        WQ_MEM_RECLAIM, which is inconsistent and confusing because adding the
        flag simply makes the system fail to boot. Cover WQ_MEM_RECLAIM too.
      
        This was originally brought up for RCU but RCU didn't actually need
        this. I still think it's a good idea to cover it"
      
      * 'for-4.16' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: allow WQ_MEM_RECLAIM on early init workqueues
        workqueue: separate out init_rescuer()
      f8cc87b6
    • L
      Merge branch 'userns-linus' of... · 2afe738f
      Linus Torvalds 提交于
      Merge branch 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull userns updates from Eric Biederman:
       "Between the holidays and other distractions only a small amount of
        namespace work made it into my tree this time.
      
        Just a final cleanup from a revert several kernels ago and a small
        typo fix from Wolffhardt Schwabe"
      
      * 'userns-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        fix typo in assignment of fs default overflow gid
        autofs4: Modify autofs_wait to use current_uid() and current_gid()
        userns: Don't fail follow_automount based on s_user_ns
      2afe738f
    • L
      Merge branch 'siginfo-linus' of... · d4173023
      Linus Torvalds 提交于
      Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull siginfo cleanups from Eric Biederman:
       "Long ago when 2.4 was just a testing release copy_siginfo_to_user was
        made to copy individual fields to userspace, possibly for efficiency
        and to ensure initialized values were not copied to userspace.
      
        Unfortunately the design was complex, it's assumptions unstated, and
        humans are fallible and so while it worked much of the time that
        design failed to ensure unitialized memory is not copied to userspace.
      
        This set of changes is part of a new design to clean up siginfo and
        simplify things, and hopefully make the siginfo handling robust enough
        that a simple inspection of the code can be made to ensure we don't
        copy any unitializied fields to userspace.
      
        The design is to unify struct siginfo and struct compat_siginfo into a
        single definition that is shared between all architectures so that
        anyone adding to the set of information shared with struct siginfo can
        see the whole picture. Hopefully ensuring all future si_code
        assignments are arch independent.
      
        The design is to unify copy_siginfo_to_user32 and
        copy_siginfo_from_user32 so that those function are complete and cope
        with all of the different cases documented in signinfo_layout. I don't
        think there was a single implementation of either of those functions
        that was complete and correct before my changes unified them.
      
        The design is to introduce a series of helpers including
        force_siginfo_fault that take the values that are needed in struct
        siginfo and build the siginfo structure for their callers. Ensuring
        struct siginfo is built correctly.
      
        The remaining work for 4.17 (unless someone thinks it is post -rc1
        material) is to push usage of those helpers down into the
        architectures so that architecture specific code will not need to deal
        with the fiddly work of intializing struct siginfo, and then when
        struct siginfo is guaranteed to be fully initialized change copy
        siginfo_to_user into a simple wrapper around copy_to_user.
      
        Further there is work in progress on the issues that have been
        documented requires arch specific knowledge to sort out.
      
        The changes below fix or at least document all of the issues that have
        been found with siginfo generation. Then proceed to unify struct
        siginfo the 32 bit helpers that copy siginfo to and from userspace,
        and generally clean up anything that is not arch specific with regards
        to siginfo generation.
      
        It is a lot but with the unification you can of siginfo you can
        already see the code reduction in the kernel"
      
      * 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (45 commits)
        signal/memory-failure: Use force_sig_mceerr and send_sig_mceerr
        mm/memory_failure: Remove unused trapno from memory_failure
        signal/ptrace: Add force_sig_ptrace_errno_trap and use it where needed
        signal/powerpc: Remove unnecessary signal_code parameter of do_send_trap
        signal: Helpers for faults with specialized siginfo layouts
        signal: Add send_sig_fault and force_sig_fault
        signal: Replace memset(info,...) with clear_siginfo for clarity
        signal: Don't use structure initializers for struct siginfo
        signal/arm64: Better isolate the COMPAT_TASK portion of ptrace_hbptriggered
        ptrace: Use copy_siginfo in setsiginfo and getsiginfo
        signal: Unify and correct copy_siginfo_to_user32
        signal: Remove the code to clear siginfo before calling copy_siginfo_from_user32
        signal: Unify and correct copy_siginfo_from_user32
        signal/blackfin: Remove pointless UID16_SIGINFO_COMPAT_NEEDED
        signal/blackfin: Move the blackfin specific si_codes to asm-generic/siginfo.h
        signal/tile: Move the tile specific si_codes to asm-generic/siginfo.h
        signal/frv: Move the frv specific si_codes to asm-generic/siginfo.h
        signal/ia64: Move the ia64 specific si_codes to asm-generic/siginfo.h
        signal/powerpc: Remove redefinition of NSIGTRAP on powerpc
        signal: Move addr_lsb into the _sigfault union for clarity
        ...
      d4173023
    • L
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 0aebc6a4
      Linus Torvalds 提交于
      Pull arm64 updates from Catalin Marinas:
       "The main theme of this pull request is security covering variants 2
        and 3 for arm64. I expect to send additional patches next week
        covering an improved firmware interface (requires firmware changes)
        for variant 2 and way for KPTI to be disabled on unaffected CPUs
        (Cavium's ThunderX doesn't work properly with KPTI enabled because of
        a hardware erratum).
      
        Summary:
      
         - Security mitigations:
            - variant 2: invalidate the branch predictor with a call to
              secure firmware
            - variant 3: implement KPTI for arm64
      
         - 52-bit physical address support for arm64 (ARMv8.2)
      
         - arm64 support for RAS (firmware first only) and SDEI (software
           delegated exception interface; allows firmware to inject a RAS
           error into the OS)
      
         - perf support for the ARM DynamIQ Shared Unit PMU
      
         - CPUID and HWCAP bits updated for new floating point multiplication
           instructions in ARMv8.4
      
         - remove some virtual memory layout printks during boot
      
         - fix initial page table creation to cope with larger than 32M kernel
           images when 16K pages are enabled"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (104 commits)
        arm64: Fix TTBR + PAN + 52-bit PA logic in cpu_do_switch_mm
        arm64: Turn on KPTI only on CPUs that need it
        arm64: Branch predictor hardening for Cavium ThunderX2
        arm64: Run enable method for errata work arounds on late CPUs
        arm64: Move BP hardening to check_and_switch_context
        arm64: mm: ignore memory above supported physical address size
        arm64: kpti: Fix the interaction between ASID switching and software PAN
        KVM: arm64: Emulate RAS error registers and set HCR_EL2's TERR & TEA
        KVM: arm64: Handle RAS SErrors from EL2 on guest exit
        KVM: arm64: Handle RAS SErrors from EL1 on guest exit
        KVM: arm64: Save ESR_EL2 on guest SError
        KVM: arm64: Save/Restore guest DISR_EL1
        KVM: arm64: Set an impdef ESR for Virtual-SError using VSESR_EL2.
        KVM: arm/arm64: mask/unmask daif around VHE guests
        arm64: kernel: Prepare for a DISR user
        arm64: Unconditionally enable IESB on exception entry/return for firmware-first
        arm64: kernel: Survive corrected RAS errors notified by SError
        arm64: cpufeature: Detect CPU RAS Extentions
        arm64: sysreg: Move to use definitions for all the SCTLR bits
        arm64: cpufeature: __this_cpu_has_cap() shouldn't stop early
        ...
      0aebc6a4
    • J
      dm cache: Documentation: update default migration_throttling value · 9614e2ba
      John Pittman 提交于
      In commit f8350daf ("dm cache: tune migration throttling") the
      value for DEFAULT_MIGRATION_THRESHOLD was decreased from 204800 to
      2048.  Edit device-mapper/cache.txt to reflect the correct default
      value for migration_threshold.
      Signed-off-by: NJohn Pittman <jpittman@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      9614e2ba
    • L
      Merge branch 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 72906f38
      Linus Torvalds 提交于
      Pull x86 hyperv update from Ingo Molnar:
       "Enable PCID support on Hyper-V guests"
      
      * 'x86-hyperv-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/hyperv: Stop suppressing X86_FEATURE_PCID
      72906f38