01 Oct, 2018

1 commit

  • Merge -rc6 in, for two reasons:

    1) Resolve a trivial conflict in the blk-mq-tag.c documentation
    2) A few important regression fixes went into upstream directly, so
    they aren't in the 4.20 branch.

    Signed-off-by: Jens Axboe

    * tag 'v4.19-rc6': (780 commits)
    Linux 4.19-rc6
    MAINTAINERS: fix reference to moved drivers/{misc => auxdisplay}/panel.c
    cpufreq: qcom-kryo: Fix section annotations
    perf/core: Add sanity check to deal with pinned event failure
    xen/blkfront: correct purging of persistent grants
    Revert "xen/blkfront: When purging persistent grants, keep them in the buffer"
    selftests/powerpc: Fix Makefiles for headers_install change
    blk-mq: I/O and timer unplugs are inverted in blktrace
    dax: Fix deadlock in dax_lock_mapping_entry()
    x86/boot: Fix kexec booting failure in the SEV bit detection code
    bcache: add separate workqueue for journal_write to avoid deadlock
    drm/amd/display: Fix Edid emulation for linux
    drm/amd/display: Fix Vega10 lightup on S3 resume
    drm/amdgpu: Fix vce work queue was not cancelled when suspend
    Revert "drm/panel: Add device_link from panel device to DRM device"
    xen/blkfront: When purging persistent grants, keep them in the buffer
    clocksource/drivers/timer-atmel-pit: Properly handle error cases
    block: fix deadline elevator drain for zoned block devices
    ACPI / hotplug / PCI: Don't scan for non-hotplug bridges if slot is not bridge
    drm/syncobj: Don't leak fences when WAIT_FOR_SUBMIT is set
    ...

    Signed-off-by: Jens Axboe

    Jens Axboe
     

30 Sep, 2018

1 commit


28 Sep, 2018

2 commits


26 Sep, 2018

1 commit

  • Dan writes:
    "libnvdimm/dax for 4.19-rc6

    * (2) fixes for the dax error handling updates that were merged for
    v4.19-rc1. My mails to Al have been bouncing recently, so I do not have
    his ack but the uaccess change is of the trivial / obviously correct
    variety. The address_space_operations fixes a regression.

    * A filesystem-dax fix to correct the zero page lookup to be compatible
    with non-x86 (mips and s390) architectures."

    * tag 'libnvdimm-fixes-4.19-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
    device-dax: Add missing address_space_operations
    uaccess: Fix is_source param for check_copy_size() in copy_to_iter_mcsafe()
    filesystem-dax: Fix use of zero page

    Greg Kroah-Hartman
     

22 Sep, 2018

1 commit

  • One of the goals of this series is to remove a separate reference to
    the css of the bio. This can and should be accessed via bio_blkcg. In
    this patch, the wbc_init_bio call is changed such that it must be called
    after a queue has been associated with the bio.

    Signed-off-by: Dennis Zhou
    Reviewed-by: Josef Bacik
    Acked-by: Tejun Heo
    Signed-off-by: Jens Axboe

    Dennis Zhou (Facebook)
     

21 Sep, 2018

6 commits

  • Richard writes:
    "This pull request contains fixes for UBIFS:
    - A wrong UBIFS assertion in mount code
    - Fix for a NULL pointer deref in mount code
    - Revert of a bad fix for xattrs"

    * tag 'upstream-4.19-rc4' of git://git.infradead.org/linux-ubifs:
    Revert "ubifs: xattr: Don't operate on deleted inodes"
    ubifs: drop false positive assertion
    ubifs: Check for name being NULL while mounting

    Greg Kroah-Hartman
     
  • While reading block, it is possible that io error return due to underlying
    storage issue, in this case, BH_NeedsValidate was left in the buffer head.
    Then when reading the very block next time, if it was already linked into
    journal, that will trigger the following panic.

    [203748.702517] kernel BUG at fs/ocfs2/buffer_head_io.c:342!
    [203748.702533] invalid opcode: 0000 [#1] SMP
    [203748.702561] Modules linked in: ocfs2 ocfs2_dlmfs ocfs2_stack_o2cb ocfs2_dlm ocfs2_nodemanager ocfs2_stackglue configfs sunrpc dm_switch dm_queue_length dm_multipath bonding be2iscsi iscsi_boot_sysfs bnx2i cnic uio cxgb4i iw_cxgb4 cxgb4 cxgb3i libcxgbi iw_cxgb3 cxgb3 mdio ib_iser rdma_cm ib_cm iw_cm ib_sa ib_mad ib_core ib_addr ipv6 iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi ipmi_devintf iTCO_wdt iTCO_vendor_support dcdbas ipmi_ssif i2c_core ipmi_si ipmi_msghandler acpi_pad pcspkr sb_edac edac_core lpc_ich mfd_core shpchp sg tg3 ptp pps_core ext4 jbd2 mbcache2 sr_mod cdrom sd_mod ahci libahci megaraid_sas wmi dm_mirror dm_region_hash dm_log dm_mod
    [203748.703024] CPU: 7 PID: 38369 Comm: touch Not tainted 4.1.12-124.18.6.el6uek.x86_64 #2
    [203748.703045] Hardware name: Dell Inc. PowerEdge R620/0PXXHP, BIOS 2.5.2 01/28/2015
    [203748.703067] task: ffff880768139c00 ti: ffff88006ff48000 task.ti: ffff88006ff48000
    [203748.703088] RIP: 0010:[] [] ocfs2_read_blocks+0x669/0x7f0 [ocfs2]
    [203748.703130] RSP: 0018:ffff88006ff4b818 EFLAGS: 00010206
    [203748.703389] RAX: 0000000008620029 RBX: ffff88006ff4b910 RCX: 0000000000000000
    [203748.703885] RDX: 0000000000000001 RSI: 0000000000000000 RDI: 00000000023079fe
    [203748.704382] RBP: ffff88006ff4b8d8 R08: 0000000000000000 R09: ffff8807578c25b0
    [203748.704877] R10: 000000000f637376 R11: 000000003030322e R12: 0000000000000000
    [203748.705373] R13: ffff88006ff4b910 R14: ffff880732fe38f0 R15: 0000000000000000
    [203748.705871] FS: 00007f401992c700(0000) GS:ffff880bfebc0000(0000) knlGS:0000000000000000
    [203748.706370] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [203748.706627] CR2: 00007f4019252440 CR3: 00000000a621e000 CR4: 0000000000060670
    [203748.707124] Stack:
    [203748.707371] ffff88006ff4b828 ffffffffa0609f52 ffff88006ff4b838 0000000000000001
    [203748.707885] 0000000000000000 0000000000000000 ffff880bf67c3800 ffffffffa05eca00
    [203748.708399] 00000000023079ff ffffffff81c58b80 0000000000000000 0000000000000000
    [203748.708915] Call Trace:
    [203748.709175] [] ? ocfs2_inode_cache_io_unlock+0x12/0x20 [ocfs2]
    [203748.709680] [] ? ocfs2_empty_dir_filldir+0x80/0x80 [ocfs2]
    [203748.710185] [] ocfs2_read_dir_block_direct+0x3b/0x200 [ocfs2]
    [203748.710691] [] ocfs2_prepare_dx_dir_for_insert.isra.57+0x19f/0xf60 [ocfs2]
    [203748.711204] [] ? ocfs2_metadata_cache_io_unlock+0x1f/0x30 [ocfs2]
    [203748.711716] [] ocfs2_prepare_dir_for_insert+0x13a/0x890 [ocfs2]
    [203748.712227] [] ? ocfs2_check_dir_for_entry+0x8e/0x140 [ocfs2]
    [203748.712737] [] ocfs2_mknod+0x4b2/0x1370 [ocfs2]
    [203748.713003] [] ocfs2_create+0x65/0x170 [ocfs2]
    [203748.713263] [] vfs_create+0xdb/0x150
    [203748.713518] [] do_last+0x815/0x1210
    [203748.713772] [] ? path_init+0xb9/0x450
    [203748.714123] [] path_openat+0x80/0x600
    [203748.714378] [] ? handle_pte_fault+0xd15/0x1620
    [203748.714634] [] do_filp_open+0x3a/0xb0
    [203748.714888] [] ? __alloc_fd+0xa7/0x130
    [203748.715143] [] do_sys_open+0x12c/0x220
    [203748.715403] [] ? syscall_trace_enter_phase1+0x11b/0x180
    [203748.715668] [] ? system_call_after_swapgs+0xe9/0x190
    [203748.715928] [] SyS_open+0x1e/0x20
    [203748.716184] [] system_call_fastpath+0x18/0xd7
    [203748.716440] Code: 00 00 48 8b 7b 08 48 83 c3 10 45 89 f8 44 89 e1 44 89 f2 4c 89 ee e8 07 06 11 e1 48 8b 03 48 85 c0 75 df 8b 5d c8 e9 4d fa ff ff 0b 48 8b 7d a0 e8 dc c6 06 00 48 b8 00 00 00 00 00 00 00 10
    [203748.717505] RIP [] ocfs2_read_blocks+0x669/0x7f0 [ocfs2]
    [203748.717775] RSP

    Joesph ever reported a similar panic.
    Link: https://oss.oracle.com/pipermail/ocfs2-devel/2013-May/008931.html

    Link: http://lkml.kernel.org/r/20180912063207.29484-1-junxiao.bi@oracle.com
    Signed-off-by: Junxiao Bi
    Cc: Joseph Qi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Changwei Ge
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Junxiao Bi
     
  • The 'm' kcore_list item could point to kclist_head, and it is incorrect to
    look at m->addr / m->size in this case.

    There is no choice but to run through the list of entries for every
    address if we did not find any entry in the previous iteration

    Reset 'm' to NULL in that case at Omar Sandoval's suggestion.

    [akpm@linux-foundation.org: add comment]
    Link: http://lkml.kernel.org/r/1536100702-28706-1-git-send-email-asmadeus@codewreck.org
    Fixes: bf991c2231117 ("proc/kcore: optimize multiple page reads")
    Signed-off-by: Dominique Martinet
    Reviewed-by: Andrew Morton
    Cc: Omar Sandoval
    Cc: Alexey Dobriyan
    Cc: Eric Biederman
    Cc: James Morse
    Cc: Bhupesh Sharma
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Dominique Martinet
     
  • This reverts commit 11a6fc3dc743e22fb50f2196ec55bee5140d3c52.
    UBIFS wants to assert that xattr operations are only issued on files
    with positive link count. The said patch made this operations return
    -ENOENT for unlinked files such that the asserts will no longer trigger.
    This was wrong since xattr operations are perfectly fine on unlinked
    files.
    Instead the assertions need to be fixed/removed.

    Cc:
    Fixes: 11a6fc3dc743 ("ubifs: xattr: Don't operate on deleted inodes")
    Reported-by: Koen Vandeputte
    Tested-by: Joel Stanley
    Signed-off-by: Richard Weinberger

    Richard Weinberger
     
  • The following sequence triggers

    ubifs_assert(c, c->lst.taken_empty_lebs > 0);

    at the end of ubifs_remount_fs():

    mount -t ubifs /dev/ubi0_0 /mnt
    echo 1 > /sys/kernel/debug/ubifs/ubi0_0/ro_error
    umount /mnt
    mount -t ubifs -o ro /dev/ubix_y /mnt
    mount -o remount,ro /mnt

    The resulting

    UBIFS assert failed in ubifs_remount_fs at 1878 (pid 161)

    is a false positive. In the case above c->lst.taken_empty_lebs has
    never been changed from its initial zero value. This will only happen
    when the deferred recovery is done.

    Fix this by doing the assertion only when recovery has been done
    already.

    Signed-off-by: Sascha Hauer
    Signed-off-by: Richard Weinberger

    Sascha Hauer
     
  • The requested device name can be NULL or an empty string.
    Check for that and refuse to continue. UBIFS has to do this manually
    since we cannot use mount_bdev(), which checks for this condition.

    Fixes: 1e51764a3c2ac ("UBIFS: add new flash file system")
    Reported-by: syzbot+38bd0f7865e5c6379280@syzkaller.appspotmail.com
    Signed-off-by: Richard Weinberger

    Richard Weinberger
     

19 Sep, 2018

1 commit

  • Sync syscall to DAX file needs to flush processor cache, but it
    currently does not flush to existing DAX files. This is because
    'ext2_da_aops' is set to address_space_operations of existing DAX
    files, instead of 'ext2_dax_aops', since S_DAX flag is set after
    ext2_set_aops() in the open path.

    Similar to ext4, change ext2_iget() to initialize i_flags before
    ext2_set_aops().

    Fixes: fb094c90748f ("ext2, dax: introduce ext2_dax_aops")
    Signed-off-by: Toshi Kani
    Suggested-by: Jan Kara
    Cc: Jan Kara
    Cc: Dan Williams
    Cc: "Theodore Ts'o"
    Cc: Andreas Dilger
    Cc:
    Signed-off-by: Jan Kara

    Toshi Kani
     

17 Sep, 2018

1 commit

  • Ted writes:
    Various ext4 bug fixes; primarily making ext4 more robust against
    maliciously crafted file systems, and some DAX fixes.

    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4, dax: set ext4_dax_aops for dax files
    ext4, dax: add ext4_bmap to ext4_dax_aops
    ext4: don't mark mmp buffer head dirty
    ext4: show test_dummy_encryption mount option in /proc/mounts
    ext4: close race between direct IO and ext4_break_layouts()
    ext4: fix online resizing for bigalloc file systems with a 1k block size
    ext4: fix online resize's handling of a too-small final block group
    ext4: recalucate superblock checksum after updating free blocks/inodes
    ext4: avoid arithemetic overflow that can trigger a BUG
    ext4: avoid divide by zero fault when deleting corrupted inline directories
    ext4: check to make sure the rename(2)'s destination is not freed
    ext4: add nonstring annotations to ext4.h

    Greg Kroah-Hartman
     

16 Sep, 2018

4 commits

  • Sync syscall to DAX file needs to flush processor cache, but it
    currently does not flush to existing DAX files. This is because
    'ext4_da_aops' is set to address_space_operations of existing DAX
    files, instead of 'ext4_dax_aops', since S_DAX flag is set after
    ext4_set_aops() in the open path.

    New file
    --------
    lookup_open
    ext4_create
    __ext4_new_inode
    ext4_set_inode_flags // Set S_DAX flag
    ext4_set_aops // Set aops to ext4_dax_aops

    Existing file
    -------------
    lookup_open
    ext4_lookup
    ext4_iget
    ext4_set_aops // Set aops to ext4_da_aops
    ext4_set_inode_flags // Set S_DAX flag

    Change ext4_iget() to initialize i_flags before ext4_set_aops().

    Fixes: 5f0663bb4a64 ("ext4, dax: introduce ext4_dax_aops")
    Signed-off-by: Toshi Kani
    Signed-off-by: Theodore Ts'o
    Suggested-by: Jan Kara
    Cc: stable@vger.kernel.org

    Toshi Kani
     
  • Ext4 mount path calls .bmap to the journal inode. This currently
    works for the DAX mount case because ext4_iget() always set
    'ext4_da_aops' to any regular files.

    In preparation to fix ext4_iget() to set 'ext4_dax_aops' for ext4
    DAX files, add ext4_bmap() to 'ext4_dax_aops', since bmap works for
    DAX inodes.

    Fixes: 5f0663bb4a64 ("ext4, dax: introduce ext4_dax_aops")
    Signed-off-by: Toshi Kani
    Signed-off-by: Theodore Ts'o
    Suggested-by: Jan Kara
    Cc: stable@vger.kernel.org

    Toshi Kani
     
  • Marking mmp bh dirty before writing it will make writeback
    pick up mmp block later and submit a write, we don't want the
    duplicate write as kmmpd thread should have full control of
    reading and writing the mmp block.
    Another reason is we will also have random I/O error on
    the writeback request when blk integrity is enabled, because
    kmmpd could modify the content of the mmp block(e.g. setting
    new seq and time) while the mmp block is under I/O requested
    by writeback.

    Signed-off-by: Li Dongyang
    Signed-off-by: Theodore Ts'o
    Reviewed-by: Andreas Dilger
    Cc: stable@vger.kernel.org

    Li Dongyang
     
  • When in effect, add "test_dummy_encryption" to _ext4_show_options() so
    that it is shown in /proc/mounts and other relevant procfs files.

    Signed-off-by: Eric Biggers
    Signed-off-by: Theodore Ts'o
    Cc: stable@vger.kernel.org

    Eric Biggers
     

15 Sep, 2018

7 commits

  • Pull cifs fixes from Steve French:
    "Fixes for four CIFS/SMB3 potential pointer overflow issues, one minor
    build fix, and a build warning cleanup"

    * tag '4.19-rc3-smb3-cifs' of git://git.samba.org/sfrench/cifs-2.6:
    cifs: read overflow in is_valid_oplock_break()
    cifs: integer overflow in in SMB2_ioctl()
    CIFS: fix wrapping bugs in num_entries()
    cifs: prevent integer overflow in nxt_dir_entry()
    fs/cifs: require sha512
    fs/cifs: suppress a string overflow warning

    Linus Torvalds
     
  • Pull NFS client bugfixes from Anna Schumaker:
    "These are a handful of fixes for problems that Trond found. Patch #1
    and #3 have the same name, a second issue was found after applying the
    first patch.

    Stable bugfixes:
    - v4.17+: Fix tracepoint Oops in initiate_file_draining()
    - v4.11+: Fix an infinite loop on I/O

    Other fixes:
    - Return errors if a waiting layoutget is killed
    - Don't open code clearing of delegation state"

    * tag 'nfs-for-4.19-2' of git://git.linux-nfs.org/projects/anna/linux-nfs:
    NFS: Don't open code clearing of delegation state
    NFSv4.1 fix infinite loop on I/O.
    NFSv4: Fix a tracepoint Oops in initiate_file_draining()
    pNFS: Ensure we return the error if someone kills a waiting layoutget
    NFSv4: Fix a tracepoint Oops in initiate_file_draining()

    Linus Torvalds
     
  • Add a helper for the case when the nfs4 open state has been set to use
    a delegation stateid, and we want to revert to using the open stateid.

    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • The previous fix broke recovery of delegated stateids because it assumes
    that if we did not mark the delegation as suspect, then the delegation has
    effectively been revoked, and so it removes that delegation irrespectively
    of whether or not it is valid and still in use. While this is "mostly
    harmless" for ordinary I/O, we've seen pNFS fail with LAYOUTGET spinning
    in an infinite loop while complaining that we're using an invalid stateid
    (in this case the all-zero stateid).

    What we rather want to do here is ensure that the delegation is always
    correctly marked as needing testing when that is the case. So we want
    to close the loophole offered by nfs4_schedule_stateid_recovery(),
    which marks the state as needing to be reclaimed, but not the
    delegation that may be backing it.

    Fixes: 0e3d3e5df07dc ("NFSv4.1 fix infinite loop on IO BAD_STATEID error")
    Signed-off-by: Trond Myklebust
    Cc: stable@vger.kernel.org # v4.11+
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • Now that the value of 'ino' can be NULL or an ERR_PTR(), we need to
    change the test in the tracepoint.

    Fixes: ce5624f7e6675 ("NFSv4: Return NFS4ERR_DELAY when a layout fails...")
    Signed-off-by: Trond Myklebust
    Cc: stable@vger.kernel.org # v4.17+
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • If someone interrupts a wait on one or more outstanding layoutgets in
    pnfs_update_layout() then return the ERESTARTSYS/EINTR error.

    Signed-off-by: Trond Myklebust
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     
  • Now that the value of 'ino' can be NULL or an ERR_PTR(), we need to
    change the test in the tracepoint.

    Fixes: ce5624f7e6675 ("NFSv4: Return NFS4ERR_DELAY when a layout fails...")
    Signed-off-by: Trond Myklebust
    Cc: stable@vger.kernel.org # v4.17+
    Signed-off-by: Anna Schumaker

    Trond Myklebust
     

14 Sep, 2018

3 commits

  • Pull overlayfs fixes from Miklos Szeredi:
    "This fixes a regression in the recent file stacking update, reported
    and fixed by Amir Goldstein. The fix is fairly trivial, but involves
    adding a fadvise() f_op and the associated churn in the vfs. As
    discussed on -fsdevel, there are other possible uses for this method,
    than allowing proper stacking for overlays.

    And there's one other fix for a syzkaller detected oops"

    * tag 'ovl-fixes-4.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    ovl: fix oopses in ovl_fill_super() failure paths
    ovl: add ovl_fadvise()
    vfs: implement readahead(2) using POSIX_FADV_WILLNEED
    vfs: add the fadvise() file operation
    Documentation/filesystems: update documentation of file_operations
    ovl: fix GPF in swapfile_activate of file from overlayfs over xfs
    ovl: respect FIEMAP_FLAG_SYNC flag

    Linus Torvalds
     
  • Pull pstore fix from Kees Cook:
    "This fixes a 6 year old pstore bug that everyone just got lucky in
    avoiding, likely due only using page-aligned persistent ram regions:

    - Handle page-vs-byte offset handling between iomap and vmap (Bin Yang)"

    * tag 'pstore-v4.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    pstore: Fix incorrect persistent ram buffer mapping

    Linus Torvalds
     
  • persistent_ram_vmap() returns the page start vaddr.
    persistent_ram_iomap() supports non-page-aligned mapping.

    persistent_ram_buffer_map() always adds offset-in-page to the vaddr
    returned from these two functions, which causes incorrect mapping of
    non-page-aligned persistent ram buffer.

    By default ftrace_size is 4096 and max_ftrace_cnt is nr_cpu_ids. Without
    this patch, the zone_sz in ramoops_init_przs() is 4096/nr_cpu_ids which
    might not be page aligned. If the offset-in-page > 2048, the vaddr will be
    in next page. If the next page is not mapped, it will cause kernel panic:

    [ 0.074231] BUG: unable to handle kernel paging request at ffffa19e0081b000
    ...
    [ 0.075000] RIP: 0010:persistent_ram_new+0x1f8/0x39f
    ...
    [ 0.075000] Call Trace:
    [ 0.075000] ramoops_init_przs.part.10.constprop.15+0x105/0x260
    [ 0.075000] ramoops_probe+0x232/0x3a0
    [ 0.075000] platform_drv_probe+0x3e/0xa0
    [ 0.075000] driver_probe_device+0x2cd/0x400
    [ 0.075000] __driver_attach+0xe4/0x110
    [ 0.075000] ? driver_probe_device+0x400/0x400
    [ 0.075000] bus_for_each_dev+0x70/0xa0
    [ 0.075000] driver_attach+0x1e/0x20
    [ 0.075000] bus_add_driver+0x159/0x230
    [ 0.075000] ? do_early_param+0x95/0x95
    [ 0.075000] driver_register+0x70/0xc0
    [ 0.075000] ? init_pstore_fs+0x4d/0x4d
    [ 0.075000] __platform_driver_register+0x36/0x40
    [ 0.075000] ramoops_init+0x12f/0x131
    [ 0.075000] do_one_initcall+0x4d/0x12c
    [ 0.075000] ? do_early_param+0x95/0x95
    [ 0.075000] kernel_init_freeable+0x19b/0x222
    [ 0.075000] ? rest_init+0xbb/0xbb
    [ 0.075000] kernel_init+0xe/0xfc
    [ 0.075000] ret_from_fork+0x3a/0x50

    Signed-off-by: Bin Yang
    [kees: add comments describing the mapping differences, updated commit log]
    Fixes: 24c3d2f342ed ("staging: android: persistent_ram: Make it possible to use memory outside of bootmem")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kees Cook

    Bin Yang
     

13 Sep, 2018

1 commit


12 Sep, 2018

5 commits

  • The "le32_to_cpu(rsp->OutputOffset) + *plen" addition can overflow and
    wrap around to a smaller value which looks like it would lead to an
    information leak.

    Fixes: 4a72dafa19ba ("SMB2 FSCTL and IOCTL worker function")
    Signed-off-by: Dan Carpenter
    Signed-off-by: Steve French
    Reviewed-by: Aurelien Aptel
    CC: Stable

    Dan Carpenter
     
  • The problem is that "entryptr + next_offset" and "entryptr + len + size"
    can wrap. I ended up changing the type of "entryptr" because it makes
    the math easier when we don't have to do so much casting.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Steve French
    Reviewed-by: Aurelien Aptel
    Reviewed-by: Pavel Shilovsky
    CC: Stable

    Dan Carpenter
     
  • The "old_entry + le32_to_cpu(pDirInfo->NextEntryOffset)" can wrap
    around so I have added a check for integer overflow.

    Reported-by: Dr Silvio Cesare of InfoSect
    Reviewed-by: Ronnie Sahlberg
    Reviewed-by: Aurelien Aptel
    Signed-off-by: Dan Carpenter
    Signed-off-by: Steve French
    CC: Stable

    Dan Carpenter
     
  • Use my_zero_pfn instead of ZERO_PAGE(), and pass the vaddr to it instead
    of zero so it works on MIPS and s390 who reference the vaddr to select a
    zero page.

    Cc:
    Fixes: 91d25ba8a6b0 ("dax: use common 4k zero page for dax mmap reads")
    Signed-off-by: Matthew Wilcox
    Reviewed-by: Ross Zwisler
    Signed-off-by: Dan Williams

    Matthew Wilcox
     
  • If the refcount of a page is lowered between the time that it is returned
    by dax_busy_page() and when the refcount is again checked in
    ext4_break_layouts() => ___wait_var_event(), the waiting function
    ext4_wait_dax_page() will never be called. This means that
    ext4_break_layouts() will still have 'retry' set to false, so we'll stop
    looping and never check the refcount of other pages in this inode.

    Instead, always continue looping as long as dax_layout_busy_page() gives us
    a page which it found with an elevated refcount.

    Signed-off-by: Ross Zwisler
    Reviewed-by: Jan Kara
    Signed-off-by: Jan Kara
    Signed-off-by: Theodore Ts'o
    Cc: stable@vger.kernel.org

    Ross Zwisler
     

10 Sep, 2018

1 commit

  • ovl_free_fs() dereferences ofs->workbasedir and ofs->upper_mnt in cases when
    those might not have been initialized yet.

    Fix the initialization order for these fields.

    Reported-by: syzbot+c75f181dc8429d2eb887@syzkaller.appspotmail.com
    Signed-off-by: Miklos Szeredi
    Cc: # v4.15
    Fixes: 95e6d4177cb7 ("ovl: grab reference to workbasedir early")
    Fixes: a9075cdb467d ("ovl: factor out ovl_free_fs() helper")

    Miklos Szeredi
     

09 Sep, 2018

2 commits

  • This got lost in commit 0fdfef9aa7ee68ddd508aef7c98630cfc054f8d6,
    which removed CONFIG_CIFS_SMB311.

    Signed-off-by: Stefan Metzmacher
    Fixes: 0fdfef9aa7ee68ddd ("smb3: simplify code by removing CONFIG_CIFS_SMB311")
    CC: Stable
    CC: linux-cifs@vger.kernel.org
    Signed-off-by: Steve French

    Stefan Metzmacher
     
  • A powerpc build of cifs with gcc v8.2.0 produces this warning:

    fs/cifs/cifssmb.c: In function ‘CIFSSMBNegotiate’:
    fs/cifs/cifssmb.c:605:3: warning: ‘strncpy’ writing 16 bytes into a region of size 1 overflows the destination [-Wstringop-overflow=]
    strncpy(pSMB->DialectsArray+count, protocols[i].name, 16);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Since we are already doing a strlen() on the source, change the strncpy
    to a memcpy().

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Steve French

    Stephen Rothwell
     

08 Sep, 2018

3 commits

  • Fix the cell specification mechanism to allow cells to be pre-created
    without having to specify at least one address (the addresses will be
    upcalled for).

    This allows the cell information preload service to avoid the need to issue
    loads of DNS lookups during boot to get the addresses for each cell (500+
    lookups for the 'standard' cell list[*]). The lookups can be done later as
    each cell is accessed through the filesystem.

    Also remove the print statement that prints a line every time a new cell is
    added.

    [*] There are 144 cells in the list. Each cell is first looked up for an
    SRV record, and if that fails, for an AFSDB record. These get a list
    of server names, each of which then has to be looked up to get the
    addresses for that server. E.g.:

    dig srv _afs3-vlserver._udp.grand.central.org

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Pull ceph fixes from Ilya Dryomov:
    "Two rbd patches to complete support for images within namespaces that
    went into -rc1 and a use-after-free fix.

    The rbd changes have been sitting in a branch for quite a while but
    couldn't be included into the -rc1 pull request because of a pending
    wire protocol backwards compatibility fixup that only got committed
    early this week"

    * tag 'ceph-for-4.19-rc3' of https://github.com/ceph/ceph-client:
    rbd: support cloning across namespaces
    rbd: factor out get_parent_info()
    ceph: avoid a use-after-free in ceph_destroy_options()

    Linus Torvalds
     
  • Pull fsnotify fix from Jan Kara:
    "A small fsnotify fix from Amir"

    * tag 'for_v4.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
    fsnotify: fix ignore mask logic in fsnotify()

    Linus Torvalds