This patchset backport ksmbd patches between 5.16 and 6.7-rc5 kernel.
Bug fixes and CVE patches were not applied well due to clean-up and new
feautre patches. To facilitate backport, This patch-set included
clean-up patches and new feature patches of ksmbd for stable 5.15
kernel.
--
2.25.1
This is the start of the stable review cycle for the 6.1.69 release.
There are 106 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Wed, 20 Dec 2023 13:50:31 +0000.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v6.x/stable-review/patch-6.1.69-rc1…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-6.1.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 6.1.69-rc1
Hayes Wang <hayeswang(a)realtek.com>
r8152: fix the autosuspend doesn't work
Hayes Wang <hayeswang(a)realtek.com>
r8152: remove rtl_vendor_mode function
Hayes Wang <hayeswang(a)realtek.com>
r8152: avoid to change cfg for all devices
John Fastabend <john.fastabend(a)gmail.com>
net: tls, update curr on splice as well
Steven Rostedt (Google) <rostedt(a)goodmis.org>
ring-buffer: Have rb_time_cmpxchg() set the msb counter too
Steven Rostedt (Google) <rostedt(a)goodmis.org>
ring-buffer: Do not try to put back write_stamp
Steven Rostedt (Google) <rostedt(a)goodmis.org>
ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs
Steven Rostedt (Google) <rostedt(a)goodmis.org>
ring-buffer: Fix writing to the buffer with max_data_size
Steven Rostedt (Google) <rostedt(a)goodmis.org>
ring-buffer: Have saved event hold the entire event
Steven Rostedt (Google) <rostedt(a)goodmis.org>
ring-buffer: Do not update before stamp when switching sub-buffers
Steven Rostedt (Google) <rostedt(a)goodmis.org>
tracing: Update snapshot buffer on resize if it is allocated
Steven Rostedt (Google) <rostedt(a)goodmis.org>
ring-buffer: Fix memory leak of free page
Paulo Alcantara <pc(a)manguebit.com>
smb: client: fix OOB in smb2_query_reparse_point()
Paulo Alcantara <pc(a)manguebit.com>
smb: client: fix NULL deref in asn1_ber_decoder()
Paulo Alcantara <pc(a)manguebit.com>
smb: client: fix OOB in receive_encrypted_standard()
Ville Syrjälä <ville.syrjala(a)linux.intel.com>
drm/i915: Fix remapped stride with CCS on ADL+
Mario Limonciello <mario.limonciello(a)amd.com>
drm/amd/display: Disable PSR-SU on Parade 0803 TCON again
Christian König <christian.koenig(a)amd.com>
drm/amdgpu: fix tear down order in amdgpu_vm_pt_free
Boris Burkov <boris(a)bur.io>
btrfs: don't clear qgroup reserved bit in release_folio
Boris Burkov <boris(a)bur.io>
btrfs: free qgroup reserve when ORDERED_IOERR is set
David Stevens <stevensd(a)chromium.org>
mm/shmem: fix race in shmem_undo_range w/THP
Yu Zhao <yuzhao(a)google.com>
mm/mglru: fix underprotected page cache
Amelie Delaunay <amelie.delaunay(a)foss.st.com>
dmaengine: stm32-dma: avoid bitfield overflow assertion
Alex Deucher <alexander.deucher(a)amd.com>
drm/amdgpu/sdma5.2: add begin/end_use ring callbacks
Florent Revest <revest(a)chromium.org>
team: Fix use-after-free when an option instance allocation fails
James Houghton <jthoughton(a)google.com>
arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify
Baokun Li <libaokun1(a)huawei.com>
ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS
Krzysztof Kozlowski <krzysztof.kozlowski(a)linaro.org>
soundwire: stream: fix NULL pointer dereference for multi_link
Josef Bacik <josef(a)toxicpanda.com>
btrfs: do not allow non subvolume root targets for snapshot
Mark Rutland <mark.rutland(a)arm.com>
perf: Fix perf_event_validate_size() lockdep splat
Denis Benato <benato.denis96(a)gmail.com>
HID: hid-asus: add const to read-only outgoing usb buffer
Masahiro Yamada <masahiroy(a)kernel.org>
arm64: add dependency between vmlinuz.efi and Image
Lech Perczak <lech.perczak(a)gmail.com>
net: usb: qmi_wwan: claim interface 4 for ZTE MF290
Linus Torvalds <torvalds(a)linux-foundation.org>
asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation
Aoba K <nexp_0x17(a)outlook.com>
HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad
Denis Benato <benato.denis96(a)gmail.com>
HID: hid-asus: reset the backlight brightness level on resume
Li Nan <linan122(a)huawei.com>
nbd: pass nbd_sock to nbd_read_reply() instead of index
Oliver Neukum <oneukum(a)suse.com>
HID: add ALWAYS_POLL quirk for Apple kb
Brett Raye <braye(a)fastmail.com>
HID: glorious: fix Glorious Model I HID report
Andy Shevchenko <andriy.shevchenko(a)linux.intel.com>
platform/x86: intel_telemetry: Fix kernel doc descriptions
Bibo Mao <maobibo(a)loongson.cn>
LoongArch: Implement constant timer shutdown interface
Masahiro Yamada <masahiroy(a)kernel.org>
LoongArch: Add dependency between vmlinuz.efi and vmlinux.efi
Eduard Zingerman <eddyz87(a)gmail.com>
selftests/bpf: fix bpf_loop_bench for new callback verification scheme
Hannes Reinecke <hare(a)suse.de>
nvme: catch errors from nvme_configure_metadata()
Mark O'Donovan <shiftee(a)posteo.net>
nvme-auth: set explanation code for failure2 msgs
Li Nan <linan122(a)huawei.com>
nbd: fold nbd config initialization into nbd_alloc_config()
Coly Li <colyli(a)suse.de>
bcache: avoid NULL checking to c->root in run_cache_set()
Coly Li <colyli(a)suse.de>
bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc()
Colin Ian King <colin.i.king(a)gmail.com>
bcache: remove redundant assignment to variable cur_idx
Coly Li <colyli(a)suse.de>
bcache: avoid oversize memory allocation by small stripe_size
Ming Lei <ming.lei(a)redhat.com>
blk-cgroup: bypass blkcg_deactivate_policy after destroying
Ming Lei <ming.lei(a)redhat.com>
blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!"
Jean Delvare <jdelvare(a)suse.de>
stmmac: dwmac-loongson: Add architecture dependency
Oliver Neukum <oneukum(a)suse.com>
usb: aqc111: check packet for fixup for true limit
Saurabh Sengar <ssengar(a)linux.microsoft.com>
x86/hyperv: Fix the detection of E820_TYPE_PRAM in a Gen2 VM
Jason-JH.Lin <jason-jh.lin(a)mediatek.com>
drm/mediatek: Add spinlock for setting vblank event in atomic_begin
Namjae Jeon <linkinjeon(a)kernel.org>
ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE
Jiaxun Yang <jiaxun.yang(a)flygoat.com>
PCI: loongson: Limit MRRS to 256
Bjorn Helgaas <bhelgaas(a)google.com>
Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
Hartmut Knaack <knaack.h(a)gmx.de>
ALSA: hda/realtek: Apply mute LED quirk for HP15-db
Kai Vehmanen <kai.vehmanen(a)linux.intel.com>
ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants
Kai Vehmanen <kai.vehmanen(a)linux.intel.com>
ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB
Hangyu Hua <hbh25y(a)gmail.com>
fuse: dax: set fc->dax to NULL in fuse_dax_conn_free()
Jens Axboe <axboe(a)kernel.dk>
cred: switch to using atomic_long_t
Igor Russkikh <irusskikh(a)marvell.com>
net: atlantic: fix double free in ring reinit logic
Hyunwoo Kim <v4bel(a)theori.io>
appletalk: Fix Use-After-Free in atalk_ioctl
Andrew Halaney <ahalaney(a)redhat.com>
net: stmmac: Handle disabled MDIO busses from devicetree
Ioana Ciornei <ioana.ciornei(a)nxp.com>
dpaa2-switch: do not ask for MDB, VLAN and FDB replay
Ioana Ciornei <ioana.ciornei(a)nxp.com>
dpaa2-switch: fix size of the dma_unmap
Nikolay Kuratov <kniv(a)yandex-team.ru>
vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space()
Yusong Gao <a869920004(a)gmail.com>
sign-file: Fix incorrect return values check
Yanteng Si <siyanteng(a)loongson.cn>
stmmac: dwmac-loongson: Make sure MDIO is initialized before use
David Arinzon <darinzon(a)amazon.com>
net: ena: Fix XDP redirection error
David Arinzon <darinzon(a)amazon.com>
net: ena: Fix xdp drops handling due to multibuf packets
David Arinzon <darinzon(a)amazon.com>
net: ena: Destroy correct number of xdp queues upon failure
Dong Chenchen <dongchenchen2(a)huawei.com>
net: Remove acked SYN flag from packet in the transmit queue correctly
Dinghao Liu <dinghao.liu(a)zju.edu.cn>
qed: Fix a potential use-after-free in qed_cxt_tables_alloc
Piotr Gardocki <piotrx.gardocki(a)intel.com>
iavf: Handle ntuple on/off based on new state machines for flow director
Piotr Gardocki <piotrx.gardocki(a)intel.com>
iavf: Introduce new state machines for flow director
Hyunwoo Kim <v4bel(a)theori.io>
net/rose: Fix Use-After-Free in rose_ioctl
Hyunwoo Kim <v4bel(a)theori.io>
atm: Fix Use-After-Free in do_vcc_ioctl
Hariprasad Kelam <hkelam(a)marvell.com>
octeontx2-af: Update RSS algorithm index
Hariprasad Kelam <hkelam(a)marvell.com>
octeontx2-pf: Fix promisc mcam entry action
Zhipeng Lu <alexious(a)zju.edu.cn>
octeontx2-af: fix a use-after-free in rvu_nix_register_reporters
Radu Bulie <radu-andrei.bulie(a)nxp.com>
net: fec: correct queue selection
Vladimir Oltean <vladimir.oltean(a)nxp.com>
net: vlan: introduce skb_vlan_eth_hdr()
Chengfeng Ye <dg573847474(a)gmail.com>
atm: solos-pci: Fix potential deadlock on &tx_queue_lock
Chengfeng Ye <dg573847474(a)gmail.com>
atm: solos-pci: Fix potential deadlock on &cli_queue_lock
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix HWTSTAMP_FILTER_ALL packet timestamp logic
Kalesh AP <kalesh-anakkur.purayil(a)broadcom.com>
bnxt_en: Fix wrong return value check in bnxt_close_nic()
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Save ring error counters across reset
Somnath Kotur <somnath.kotur(a)broadcom.com>
bnxt_en: Clear resource reservation during resume
Stefan Wahren <wahrenst(a)gmx.net>
qca_spi: Fix reset behavior
Stefan Wahren <wahrenst(a)gmx.net>
qca_debug: Fix ethtool -G iface tx behavior
Stefan Wahren <wahrenst(a)gmx.net>
qca_debug: Prevent crash on TX ring changes
Maciej Żenczykowski <maze(a)google.com>
net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX
Moshe Shemesh <moshe(a)nvidia.com>
net/mlx5e: Fix possible deadlock on mlx5e_tx_timeout_work
Mikhail Khvainitski <me(a)khvoinitsky.org>
HID: lenovo: Restrict detection of patched firmware only to USB cptkbd
David Howells <dhowells(a)redhat.com>
afs: Fix refcount underflow from error handling race
Zizhi Wo <wozizhi(a)huawei.com>
ksmbd: fix memory leak in smb2_lock()
Jan Kara <jack(a)suse.cz>
ext4: fix warning in ext4_dio_write_end_io()
Naveen N Rao <naveen(a)kernel.org>
powerpc/ftrace: Fix stack teardown in ftrace_no_trace
Kelly Kane <kelly(a)hawknetworks.com>
r8152: add vendor/device ID pair for ASUS USB-C2500
Antonio Napolitano <anton(a)polit.no>
r8152: add vendor/device ID pair for D-Link DUB-E250
Bjørn Mork <bjorn(a)mork.no>
r8152: add USB device driver for config selection
Kan Liang <kan.liang(a)linux.intel.com>
perf/x86/uncore: Don't WARN_ON_ONCE() for a broken discovery table
-------------
Diffstat:
Makefile | 4 +-
arch/arm64/Makefile | 2 +-
arch/arm64/include/asm/pgtable.h | 6 +
arch/loongarch/Makefile | 2 +
arch/loongarch/kernel/time.c | 27 ++--
arch/powerpc/kernel/trace/ftrace_mprofile.S | 4 +-
arch/x86/events/intel/uncore_discovery.c | 18 ++-
arch/x86/hyperv/hv_init.c | 25 ++-
block/blk-cgroup.c | 13 ++
block/blk-throttle.c | 2 +
drivers/atm/solos-pci.c | 8 +-
drivers/block/nbd.c | 76 +++++----
drivers/dma/stm32-dma.c | 8 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_vm_pt.c | 3 +-
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c | 28 ++++
.../drm/amd/display/modules/power/power_helpers.c | 2 +
drivers/gpu/drm/i915/display/intel_fb.c | 16 +-
drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 5 +
drivers/hid/hid-asus.c | 27 +++-
drivers/hid/hid-glorious.c | 16 +-
drivers/hid/hid-ids.h | 11 +-
drivers/hid/hid-lenovo.c | 3 +-
drivers/hid/hid-multitouch.c | 5 +
drivers/hid/hid-quirks.c | 1 +
drivers/md/bcache/bcache.h | 1 +
drivers/md/bcache/btree.c | 7 +
drivers/md/bcache/super.c | 4 +-
drivers/md/bcache/writeback.c | 2 +-
drivers/net/ethernet/amazon/ena/ena_eth_com.c | 3 -
drivers/net/ethernet/amazon/ena/ena_netdev.c | 30 ++--
drivers/net/ethernet/aquantia/atlantic/aq_ring.c | 5 +-
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 3 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 67 ++++++--
drivers/net/ethernet/broadcom/bnxt/bnxt.h | 25 ++-
drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c | 11 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 19 +--
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c | 5 +-
drivers/net/ethernet/emulex/benet/be_main.c | 2 +-
.../ethernet/freescale/dpaa2/dpaa2-switch-flower.c | 7 +-
.../net/ethernet/freescale/dpaa2/dpaa2-switch.c | 11 +-
drivers/net/ethernet/freescale/fec_main.c | 27 ++--
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_txrx.c | 2 +-
drivers/net/ethernet/intel/iavf/iavf.h | 1 +
drivers/net/ethernet/intel/iavf/iavf_ethtool.c | 27 ++--
drivers/net/ethernet/intel/iavf/iavf_fdir.h | 15 +-
drivers/net/ethernet/intel/iavf/iavf_main.c | 107 +++++++++++--
drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 71 ++++++++-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 2 +-
.../ethernet/marvell/octeontx2/af/rvu_devlink.c | 5 +-
.../net/ethernet/marvell/octeontx2/af/rvu_npc.c | 55 +++++--
.../net/ethernet/marvell/octeontx2/nic/otx2_pf.c | 25 ++-
drivers/net/ethernet/mellanox/mlx5/core/en.h | 1 +
drivers/net/ethernet/mellanox/mlx5/core/en_main.c | 27 +++-
.../net/ethernet/qlogic/netxen/netxen_nic_main.c | 2 +-
drivers/net/ethernet/qlogic/qed/qed_cxt.c | 1 +
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c | 4 +-
drivers/net/ethernet/qualcomm/qca_debug.c | 17 +-
drivers/net/ethernet/qualcomm/qca_spi.c | 20 ++-
drivers/net/ethernet/sfc/tx_tso.c | 2 +-
drivers/net/ethernet/stmicro/stmmac/Kconfig | 2 +-
.../net/ethernet/stmicro/stmmac/dwmac-loongson.c | 14 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 7 +-
drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.c | 6 +-
drivers/net/team/team.c | 4 +-
drivers/net/usb/aqc111.c | 8 +-
drivers/net/usb/qmi_wwan.c | 1 +
drivers/net/usb/r8152.c | 177 ++++++++++++---------
drivers/nvme/host/auth.c | 2 +
drivers/nvme/host/core.c | 19 ++-
drivers/pci/controller/pci-loongson.c | 46 +++++-
drivers/pci/hotplug/acpiphp_glue.c | 9 +-
drivers/platform/x86/intel/telemetry/core.c | 4 +-
drivers/soundwire/stream.c | 7 +-
drivers/staging/gdm724x/gdm_lte.c | 4 +-
fs/afs/rxrpc.c | 2 +-
fs/btrfs/extent_io.c | 3 +-
fs/btrfs/ioctl.c | 9 ++
fs/btrfs/ordered-data.c | 4 +-
fs/ext4/file.c | 14 +-
fs/ext4/mballoc.c | 4 +
fs/fuse/dax.c | 1 +
fs/smb/client/smb2misc.c | 26 ++-
fs/smb/client/smb2ops.c | 40 +++--
fs/smb/common/smb2pdu.h | 2 +-
fs/smb/server/smb2pdu.c | 1 +
include/asm-generic/qspinlock.h | 2 +-
include/linux/cred.h | 8 +-
include/linux/if_vlan.h | 12 +-
include/linux/mm_inline.h | 23 +--
include/linux/usb/r8152.h | 2 +
include/net/addrconf.h | 12 +-
include/net/if_inet6.h | 4 -
kernel/cred.c | 64 ++++----
kernel/events/core.c | 10 ++
kernel/trace/ring_buffer.c | 58 +++----
kernel/trace/trace.c | 4 +-
mm/shmem.c | 19 ++-
mm/vmscan.c | 2 +-
mm/workingset.c | 6 +-
net/appletalk/ddp.c | 9 +-
net/atm/ioctl.c | 7 +-
net/batman-adv/soft-interface.c | 2 +-
net/ipv4/tcp_output.c | 6 +
net/ipv6/addrconf.c | 6 +-
net/rose/af_rose.c | 4 +-
net/tls/tls_sw.c | 2 +
net/vmw_vsock/virtio_transport_common.c | 2 +-
scripts/sign-file.c | 12 +-
sound/pci/hda/patch_hdmi.c | 3 +
sound/pci/hda/patch_realtek.c | 1 +
tools/testing/selftests/bpf/progs/bpf_loop_bench.c | 13 +-
112 files changed, 1122 insertions(+), 514 deletions(-)
From: Ville Syrjälä <ville.syrjala(a)linux.intel.com>
If we get a deadlock after the fb lookup in drm_mode_page_flip_ioctl()
we proceed to unref the fb and then retry the whole thing from the top.
But we forget to reset the fb pointer back to NULL, and so if we then
get another error during the retry, before the fb lookup, we proceed
the unref the same fb again without having gotten another reference.
The end result is that the fb will (eventually) end up being freed
while it's still in use.
Reset fb to NULL once we've unreffed it to avoid doing it again
until we've done another fb lookup.
This turned out to be pretty easy to hit on a DG2 when doing async
flips (and CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y). The first symptom I
saw that drm_closefb() simply got stuck in a busy loop while walking
the framebuffer list. Fortunately I was able to convince it to oops
instead, and from there it was easier to track down the culprit.
Cc: stable(a)vger.kernel.org
Signed-off-by: Ville Syrjälä <ville.syrjala(a)linux.intel.com>
---
drivers/gpu/drm/drm_plane.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index 9e8e4c60983d..672c655c7a8e 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -1503,6 +1503,7 @@ int drm_mode_page_flip_ioctl(struct drm_device *dev,
out:
if (fb)
drm_framebuffer_put(fb);
+ fb = NULL;
if (plane->old_fb)
drm_framebuffer_put(plane->old_fb);
plane->old_fb = NULL;
--
2.41.0
Hi Everyone,
Please find the KernelCI report for stable-rc/linux-6.1.y for this week.
## stable-rc HEAD for linux-6.1.y:
Date: 2023-12-18
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/…
## Build failures:
No build failures seen for the stable-rc/linux-6.1.y commit head \o/
## Boot failures:
No **new** boot failures seen for the stable-rc/linux-6.1.y commit head \o/
Tested-by: kernelci.org bot <bot(a)kernelci.org>
Thanks,
Shreeya Patel
After updating bb_free in mb_free_blocks, it is possible to return without
updating bb_fragments because the block being freed is found to have
already been freed, which leads to inconsistency between bb_free and
bb_fragments.
Since the group may be unlocked in ext4_grp_locked_error(), this can lead
to problems such as dividing by zero when calculating the average fragment
length. Therefore, to ensure consistency, move the update of bb_free to
after the block double-free check.
Fixes: eabe0444df90 ("ext4: speed-up releasing blocks on commit")
CC: stable(a)vger.kernel.org # 3.10
Signed-off-by: Baokun Li <libaokun1(a)huawei.com>
---
fs/ext4/mballoc.c | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index a95fa6e2b0f9..2fbee0f0f5c3 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -1892,11 +1892,6 @@ static void mb_free_blocks(struct inode *inode, struct ext4_buddy *e4b,
mb_check_buddy(e4b);
mb_free_blocks_double(inode, e4b, first, count);
- this_cpu_inc(discard_pa_seq);
- e4b->bd_info->bb_free += count;
- if (first < e4b->bd_info->bb_first_free)
- e4b->bd_info->bb_first_free = first;
-
/* access memory sequentially: check left neighbour,
* clear range and then check right neighbour
*/
@@ -1922,9 +1917,14 @@ static void mb_free_blocks(struct inode *inode, struct ext4_buddy *e4b,
sb, e4b->bd_group,
EXT4_GROUP_INFO_BBITMAP_CORRUPT);
}
- goto done;
+ return;
}
+ this_cpu_inc(discard_pa_seq);
+ e4b->bd_info->bb_free += count;
+ if (first < e4b->bd_info->bb_first_free)
+ e4b->bd_info->bb_first_free = first;
+
/* let's maintain fragments counter */
if (left_is_free && right_is_free)
e4b->bd_info->bb_fragments--;
@@ -1949,7 +1949,6 @@ static void mb_free_blocks(struct inode *inode, struct ext4_buddy *e4b,
if (first <= last)
mb_buddy_mark_free(e4b, first >> 1, last >> 1);
-done:
mb_set_largest_free_order(sb, e4b->bd_info);
mb_update_avg_fragment_size(sb, e4b->bd_info);
mb_check_buddy(e4b);
--
2.31.1