ocfs2: fix ocfs2 read block panic
Junxiao Bi authored
commit 234b69e3 upstream.

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...
1e0be238
Name Last commit Last update
Documentation kbuild: verify that $DEPMOD is installed
LICENSES LICENSES: Add Linux-OpenIB license text
arch crypto: x86/aegis,morus - Do not require OSXSAVE for SSE2
block blk-mq: avoid to synchronize rcu inside blk_cleanup_queue()
certs Replace magic for trusting the secondary keyring with #define
crypto evm: Don't deadlock if a crypto algorithm is unavailable
drivers libata: mask swap internal and hardware tag
firmware kbuild: remove all dummy assignments to obj-
fs ocfs2: fix ocfs2 read block panic
include Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
init init: rename and re-order boot_cpu_state_init()
ipc ipc/shm.c add ->pagesize function to shm_vm_ops
kernel bpf/verifier: disallow pointer subtraction
lib debugobjects: Make stack check warning more informative
mm mm: shmem.c: Correctly annotate new inodes for lockdep
net NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
samples samples/bpf: all XDP samples should unload xdp/bpf prog on SIGTERM
scripts kbuild: add .DELETE_ON_ERROR special target
security Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
sound ALSA: oxfw: fix memory leak of private data
tools selftest: timers: Tweak raw_skew to SKIP when ADJ_OFFSET/other clock adjustments are in progress
usr kbuild: rename built-in.o to built-in.a
virt KVM: arm/arm64: Fix vgic init race
.clang-format clang-format: add configuration file
.cocciconfig scripts: add Linux .cocciconfig for coccinelle
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS
Makefile
README
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.
See Documentation/00-INDEX for a list of what is contained in each file.

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.