iomap: fix sub-page uptodate handling
Christoph Hellwig authored
commit 1cea335d upstream.

bio completions can race when a page spans more than one file system
block.  Add a spinlock to synchronize marking the page uptodate.

Fixes: 9dc55f13

 ("iomap: add support for sub-pagesize buffered I/O without buffer heads")
Reported-by: default avatarJan Stancek <jstancek@redhat.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
f78e2c36
Name Last commit Last update
Documentation dt-bindings: net: ethernet-controller: fix typo in NVMEM
LICENSES LICENSES: Rename other to deprecated
arch powerpc/64s: Fix crashes when toggling entry flush barrier
block blk-mq: Swap two calls in blk_mq_exit_queue()
certs certs: Fix blacklist flag type confusion
crypto crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
drivers nbd: Fix NULL pointer in flush_workqueue
fs iomap: fix sub-page uptodate handling
include iomap: fix sub-page uptodate handling
init init/Kconfig: make COMPILE_TEST depend on HAS_IOMEM
ipc ipc/util.c: sysvipc_find_ipc() incorrectly updates position index
kernel kernel: kexec_file: fix error return code of kexec_calculate_store_digests()
lib net: fix nla_strcmp to handle more then one trailing null character
mm mm/hugetlb: fix F_SEAL_FUTURE_WRITE
net netfilter: nftables: avoid overflows in nft_hash_buckets()
samples samples/bpf: Fix broken tracex1 due to kprobe argument change
scripts kconfig: nconf: stop endless search loops
security security: commoncap: fix -Wstringop-overread warning
sound ASoC: rt286: Make RT286_SET_GPIO_* readable and writable
tools selftests: Set CC to clang in lib.mk if LLVM is set
usr initramfs: restore default compression behavior
virt KVM: Stop looking for coalesced MMIO zones if the bus is destroyed
.clang-format clang-format: Update with the latest for_each macro list
.cocciconfig scripts: add Linux .cocciconfig for coccinelle
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl
.gitattributes .gitattributes: set git diff driver for C source code files
.gitignore Merge tag 'modules-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux
.mailmap Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
COPYING COPYING: use the new text with points to the license files
CREDITS MAINTAINERS: Remove Simon as Renesas SoC Co-Maintainer
Kbuild kbuild: do not descend to ./Kbuild when cleaning
Kconfig docs: kbuild: convert docs to ReST and rename to *.rst
MAINTAINERS Documentation/llvm: add documentation on building w/ Clang/LLVM
Makefile Linux 5.4.119
README Drop all 00-INDEX files from Documentation/
Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.