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
Xiyu Yang 636987650f btrfs: fix block group leak when removing fails
commit f6033c5e333238f299c3ae03fac8cc1365b23b77 upstream.

btrfs_remove_block_group() invokes btrfs_lookup_block_group(), which
returns a local reference of the block group that contains the given
bytenr to "block_group" with increased refcount.

When btrfs_remove_block_group() returns, "block_group" becomes invalid,
so the refcount should be decreased to keep refcount balanced.

The reference counting issue happens in several exception handling paths
of btrfs_remove_block_group(). When those error scenarios occur such as
btrfs_alloc_path() returns NULL, the function forgets to decrease its
refcnt increased by btrfs_lookup_block_group() and will cause a refcnt
leak.

Fix this issue by jumping to "out_put_group" label and calling
btrfs_put_block_group() when those error scenarios occur.

CC: stable@vger.kernel.org # 4.4+
Signed-off-by: Xiyu Yang <xiyuyang19@fudan.edu.cn>
Signed-off-by: Xin Tan <tanxin.ctf@gmail.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-06 08:15:05 +02:00
arch arm64: Delete the space separator in __emit_inst 2020-05-02 08:48:58 +02:00
block blk-mq: Put driver tag in blk_mq_dispatch_rq_list() when no budget 2020-05-02 08:48:59 +02:00
certs
crypto crypto: rng - Fix a refcounting bug in crypto_rng_reset() 2020-04-17 10:50:16 +02:00
Documentation USB: hub: Revert commit bd0e6c9614 ("usb: hub: try old enumeration scheme first for high speed devices") 2020-04-29 16:33:14 +02:00
drivers drm/qxl: qxl_release use after free 2020-05-06 08:15:05 +02:00
fs btrfs: fix block group leak when removing fails 2020-05-06 08:15:05 +02:00
include NFSv4.1: fix handling of backchannel binding in BIND_CONN_TO_SESSION 2020-05-06 08:15:05 +02:00
init printk: queue wake_up_klogd irq_work only if per-CPU areas are ready 2020-05-02 08:48:42 +02:00
ipc ipc/util.c: sysvipc_find_ipc() should increase position index 2020-04-29 16:33:00 +02:00
kernel signal: check sig before setting info in kill_pid_usb_asyncio 2020-05-02 08:48:55 +02:00
lib lib/raid6/test: fix build on distros whose /bin/sh is not bash 2020-04-29 16:33:00 +02:00
LICENSES
mm mm: shmem: disable interrupt when acquiring info->lock in userfaultfd_copy path 2020-05-02 08:48:54 +02:00
net net: use indirect call wrappers for skb_copy_datagram_iter() 2020-05-02 08:49:00 +02:00
samples vmalloc: fix remap_vmalloc_range() bounds checks 2020-04-29 16:33:14 +02:00
scripts kbuild: fix DT binding schema rule again to avoid needless rebuilds 2020-05-02 08:48:42 +02:00
security KEYS: Avoid false positive ENOMEM error on key read 2020-04-29 16:33:11 +02:00
sound Revert "ASoC: meson: axg-card: fix codec-to-codec link setup" 2020-05-02 17:26:47 +02:00
tools objtool: Support Clang non-section symbols in ORC dump 2020-05-02 08:48:57 +02:00
usr initramfs: restore default compression behavior 2020-04-08 09:08:38 +02:00
virt KVM: Check for a bad hva before dropping into the ghc slow path 2020-03-05 16:43:48 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: Update drm/i915 bug filing URL 2020-02-28 17:22:19 +01:00
Makefile Linux 5.4.38 2020-05-02 17:26:50 +02: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.