No description
  • C 98.2%
  • Assembly 1%
  • Makefile 0.3%
  • Shell 0.2%
  • Python 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Josef Bacik b554db147f block: init flush rq ref count to 1
We discovered a problem in newer kernels where a disconnect of a NBD
device while the flush request was pending would result in a hang.  This
is because the blk mq timeout handler does

        if (!refcount_inc_not_zero(&rq->ref))
                return true;

to determine if it's ok to run the timeout handler for the request.
Flush_rq's don't have a ref count set, so we'd skip running the timeout
handler for this request and it would just sit there in limbo forever.

Fix this by always setting the refcount of any request going through
blk_init_rq() to 1.  I tested this with a nbd-server that dropped flush
requests to verify that it hung, and then tested with this patch to
verify I got the timeout as expected and the error handling kicked in.
Thanks,

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2019-07-10 09:00:57 -06:00
arch Power management updates for 5.3-rc1 2019-07-09 10:05:22 -07:00
block block: init flush rq ref count to 1 2019-07-10 09:00:57 -06:00
certs Keyrings ACL 2019-07-08 19:56:57 -07:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-07-08 20:57:08 -07:00
Documentation for-5.3/block-20190708 2019-07-09 10:45:06 -07:00
drivers for-5.3/libata-20190708 2019-07-09 10:59:26 -07:00
fs for-5.3/block-20190708 2019-07-09 10:45:06 -07:00
include for-5.3/block-20190708 2019-07-09 10:45:06 -07:00
init for-5.3/block-20190708 2019-07-09 10:45:06 -07:00
ipc
kernel for-5.3/block-20190708 2019-07-09 10:45:06 -07:00
lib for-5.3/block-20190708 2019-07-09 10:45:06 -07:00
LICENSES
mm Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2019-07-08 21:48:15 -07:00
net LED updates for 5.3-rc1 2019-07-09 08:59:39 -07:00
samples media updates for v5.3-rc1 2019-07-09 09:47:22 -07:00
scripts Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-07-08 16:12:03 -07:00
security Merge branch 'siginfo-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2019-07-08 21:48:15 -07:00
sound ALSA: firewire-lib: code refactoring for local variables 2019-07-08 14:50:42 +02:00
tools ACPI updates for 5.3-rc1 2019-07-09 10:21:39 -07:00
usr
virt
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS ACPI updates for 5.3-rc1 2019-07-09 10:21:39 -07:00
Makefile Linux 5.2 2019-07-07 15:41:56 -07:00
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.

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.