From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev, Ilya Dryomov <idryomov@gmail.com>,
Dongsheng Yang <dongsheng.yang@easystack.cn>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.1 047/162] rbd: decouple header read-in from updating rbd_dev->header
Date: Mon, 9 Oct 2023 15:00:28 +0200 [thread overview]
Message-ID: <20231009130124.236528924@linuxfoundation.org> (raw)
In-Reply-To: <20231009130122.946357448@linuxfoundation.org>
6.1-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ilya Dryomov <idryomov@gmail.com>
commit 510a7330c82a7754d5df0117a8589e8a539067c7 upstream.
Make rbd_dev_header_info() populate a passed struct rbd_image_header
instead of rbd_dev->header and introduce rbd_dev_update_header() for
updating mutable fields in rbd_dev->header upon refresh. The initial
read-in of both mutable and immutable fields in rbd_dev_image_probe()
passes in rbd_dev->header so no update step is required there.
rbd_init_layout() is now called directly from rbd_dev_image_probe()
instead of individually in format 1 and format 2 implementations.
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Dongsheng Yang <dongsheng.yang@easystack.cn>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/block/rbd.c | 206 ++++++++++++++++++++++++--------------------
1 file changed, 114 insertions(+), 92 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 762795430b4d8..b1c44c6338573 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -632,7 +632,8 @@ void rbd_warn(struct rbd_device *rbd_dev, const char *fmt, ...)
static void rbd_dev_remove_parent(struct rbd_device *rbd_dev);
static int rbd_dev_refresh(struct rbd_device *rbd_dev);
-static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev);
+static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev,
+ struct rbd_image_header *header);
static const char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev,
u64 snap_id);
static int _rbd_dev_v2_snap_size(struct rbd_device *rbd_dev, u64 snap_id,
@@ -993,15 +994,24 @@ static void rbd_init_layout(struct rbd_device *rbd_dev)
RCU_INIT_POINTER(rbd_dev->layout.pool_ns, NULL);
}
+static void rbd_image_header_cleanup(struct rbd_image_header *header)
+{
+ kfree(header->object_prefix);
+ ceph_put_snap_context(header->snapc);
+ kfree(header->snap_sizes);
+ kfree(header->snap_names);
+
+ memset(header, 0, sizeof(*header));
+}
+
/*
* Fill an rbd image header with information from the given format 1
* on-disk header.
*/
-static int rbd_header_from_disk(struct rbd_device *rbd_dev,
- struct rbd_image_header_ondisk *ondisk)
+static int rbd_header_from_disk(struct rbd_image_header *header,
+ struct rbd_image_header_ondisk *ondisk,
+ bool first_time)
{
- struct rbd_image_header *header = &rbd_dev->header;
- bool first_time = header->object_prefix == NULL;
struct ceph_snap_context *snapc;
char *object_prefix = NULL;
char *snap_names = NULL;
@@ -1068,11 +1078,6 @@ static int rbd_header_from_disk(struct rbd_device *rbd_dev,
if (first_time) {
header->object_prefix = object_prefix;
header->obj_order = ondisk->options.order;
- rbd_init_layout(rbd_dev);
- } else {
- ceph_put_snap_context(header->snapc);
- kfree(header->snap_names);
- kfree(header->snap_sizes);
}
/* The remaining fields always get updated (when we refresh) */
@@ -4858,7 +4863,9 @@ static int rbd_obj_read_sync(struct rbd_device *rbd_dev,
* return, the rbd_dev->header field will contain up-to-date
* information about the image.
*/
-static int rbd_dev_v1_header_info(struct rbd_device *rbd_dev)
+static int rbd_dev_v1_header_info(struct rbd_device *rbd_dev,
+ struct rbd_image_header *header,
+ bool first_time)
{
struct rbd_image_header_ondisk *ondisk = NULL;
u32 snap_count = 0;
@@ -4906,7 +4913,7 @@ static int rbd_dev_v1_header_info(struct rbd_device *rbd_dev)
snap_count = le32_to_cpu(ondisk->snap_count);
} while (snap_count != want_count);
- ret = rbd_header_from_disk(rbd_dev, ondisk);
+ ret = rbd_header_from_disk(header, ondisk, first_time);
out:
kfree(ondisk);
@@ -5469,17 +5476,12 @@ static int _rbd_dev_v2_snap_size(struct rbd_device *rbd_dev, u64 snap_id,
return 0;
}
-static int rbd_dev_v2_image_size(struct rbd_device *rbd_dev)
-{
- return _rbd_dev_v2_snap_size(rbd_dev, CEPH_NOSNAP,
- &rbd_dev->header.obj_order,
- &rbd_dev->header.image_size);
-}
-
-static int rbd_dev_v2_object_prefix(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_object_prefix(struct rbd_device *rbd_dev,
+ char **pobject_prefix)
{
size_t size;
void *reply_buf;
+ char *object_prefix;
int ret;
void *p;
@@ -5497,16 +5499,16 @@ static int rbd_dev_v2_object_prefix(struct rbd_device *rbd_dev)
goto out;
p = reply_buf;
- rbd_dev->header.object_prefix = ceph_extract_encoded_string(&p,
- p + ret, NULL, GFP_NOIO);
+ object_prefix = ceph_extract_encoded_string(&p, p + ret, NULL,
+ GFP_NOIO);
+ if (IS_ERR(object_prefix)) {
+ ret = PTR_ERR(object_prefix);
+ goto out;
+ }
ret = 0;
- if (IS_ERR(rbd_dev->header.object_prefix)) {
- ret = PTR_ERR(rbd_dev->header.object_prefix);
- rbd_dev->header.object_prefix = NULL;
- } else {
- dout(" object_prefix = %s\n", rbd_dev->header.object_prefix);
- }
+ *pobject_prefix = object_prefix;
+ dout(" object_prefix = %s\n", object_prefix);
out:
kfree(reply_buf);
@@ -5557,13 +5559,6 @@ static int _rbd_dev_v2_snap_features(struct rbd_device *rbd_dev, u64 snap_id,
return 0;
}
-static int rbd_dev_v2_features(struct rbd_device *rbd_dev)
-{
- return _rbd_dev_v2_snap_features(rbd_dev, CEPH_NOSNAP,
- rbd_is_ro(rbd_dev),
- &rbd_dev->header.features);
-}
-
/*
* These are generic image flags, but since they are used only for
* object map, store them in rbd_dev->object_map_flags.
@@ -5838,14 +5833,14 @@ static int rbd_dev_v2_parent_info(struct rbd_device *rbd_dev)
return ret;
}
-static int rbd_dev_v2_striping_info(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_striping_info(struct rbd_device *rbd_dev,
+ u64 *stripe_unit, u64 *stripe_count)
{
struct {
__le64 stripe_unit;
__le64 stripe_count;
} __attribute__ ((packed)) striping_info_buf = { 0 };
size_t size = sizeof (striping_info_buf);
- void *p;
int ret;
ret = rbd_obj_method_sync(rbd_dev, &rbd_dev->header_oid,
@@ -5857,27 +5852,33 @@ static int rbd_dev_v2_striping_info(struct rbd_device *rbd_dev)
if (ret < size)
return -ERANGE;
- p = &striping_info_buf;
- rbd_dev->header.stripe_unit = ceph_decode_64(&p);
- rbd_dev->header.stripe_count = ceph_decode_64(&p);
+ *stripe_unit = le64_to_cpu(striping_info_buf.stripe_unit);
+ *stripe_count = le64_to_cpu(striping_info_buf.stripe_count);
+ dout(" stripe_unit = %llu stripe_count = %llu\n", *stripe_unit,
+ *stripe_count);
+
return 0;
}
-static int rbd_dev_v2_data_pool(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_data_pool(struct rbd_device *rbd_dev, s64 *data_pool_id)
{
- __le64 data_pool_id;
+ __le64 data_pool_buf;
int ret;
ret = rbd_obj_method_sync(rbd_dev, &rbd_dev->header_oid,
&rbd_dev->header_oloc, "get_data_pool",
- NULL, 0, &data_pool_id, sizeof(data_pool_id));
+ NULL, 0, &data_pool_buf,
+ sizeof(data_pool_buf));
+ dout("%s: rbd_obj_method_sync returned %d\n", __func__, ret);
if (ret < 0)
return ret;
- if (ret < sizeof(data_pool_id))
+ if (ret < sizeof(data_pool_buf))
return -EBADMSG;
- rbd_dev->header.data_pool_id = le64_to_cpu(data_pool_id);
- WARN_ON(rbd_dev->header.data_pool_id == CEPH_NOPOOL);
+ *data_pool_id = le64_to_cpu(data_pool_buf);
+ dout(" data_pool_id = %lld\n", *data_pool_id);
+ WARN_ON(*data_pool_id == CEPH_NOPOOL);
+
return 0;
}
@@ -6069,7 +6070,8 @@ static int rbd_spec_fill_names(struct rbd_device *rbd_dev)
return ret;
}
-static int rbd_dev_v2_snap_context(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_snap_context(struct rbd_device *rbd_dev,
+ struct ceph_snap_context **psnapc)
{
size_t size;
int ret;
@@ -6130,9 +6132,7 @@ static int rbd_dev_v2_snap_context(struct rbd_device *rbd_dev)
for (i = 0; i < snap_count; i++)
snapc->snaps[i] = ceph_decode_64(&p);
- ceph_put_snap_context(rbd_dev->header.snapc);
- rbd_dev->header.snapc = snapc;
-
+ *psnapc = snapc;
dout(" snap context seq = %llu, snap_count = %u\n",
(unsigned long long)seq, (unsigned int)snap_count);
out:
@@ -6181,38 +6181,42 @@ static const char *rbd_dev_v2_snap_name(struct rbd_device *rbd_dev,
return snap_name;
}
-static int rbd_dev_v2_header_info(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_header_info(struct rbd_device *rbd_dev,
+ struct rbd_image_header *header,
+ bool first_time)
{
- bool first_time = rbd_dev->header.object_prefix == NULL;
int ret;
- ret = rbd_dev_v2_image_size(rbd_dev);
+ ret = _rbd_dev_v2_snap_size(rbd_dev, CEPH_NOSNAP,
+ first_time ? &header->obj_order : NULL,
+ &header->image_size);
if (ret)
return ret;
if (first_time) {
- ret = rbd_dev_v2_header_onetime(rbd_dev);
+ ret = rbd_dev_v2_header_onetime(rbd_dev, header);
if (ret)
return ret;
}
- ret = rbd_dev_v2_snap_context(rbd_dev);
- if (ret && first_time) {
- kfree(rbd_dev->header.object_prefix);
- rbd_dev->header.object_prefix = NULL;
- }
+ ret = rbd_dev_v2_snap_context(rbd_dev, &header->snapc);
+ if (ret)
+ return ret;
- return ret;
+ return 0;
}
-static int rbd_dev_header_info(struct rbd_device *rbd_dev)
+static int rbd_dev_header_info(struct rbd_device *rbd_dev,
+ struct rbd_image_header *header,
+ bool first_time)
{
rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
+ rbd_assert(!header->object_prefix && !header->snapc);
if (rbd_dev->image_format == 1)
- return rbd_dev_v1_header_info(rbd_dev);
+ return rbd_dev_v1_header_info(rbd_dev, header, first_time);
- return rbd_dev_v2_header_info(rbd_dev);
+ return rbd_dev_v2_header_info(rbd_dev, header, first_time);
}
/*
@@ -6700,60 +6704,49 @@ static int rbd_dev_image_id(struct rbd_device *rbd_dev)
*/
static void rbd_dev_unprobe(struct rbd_device *rbd_dev)
{
- struct rbd_image_header *header;
-
rbd_dev_parent_put(rbd_dev);
rbd_object_map_free(rbd_dev);
rbd_dev_mapping_clear(rbd_dev);
/* Free dynamic fields from the header, then zero it out */
- header = &rbd_dev->header;
- ceph_put_snap_context(header->snapc);
- kfree(header->snap_sizes);
- kfree(header->snap_names);
- kfree(header->object_prefix);
- memset(header, 0, sizeof (*header));
+ rbd_image_header_cleanup(&rbd_dev->header);
}
-static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev)
+static int rbd_dev_v2_header_onetime(struct rbd_device *rbd_dev,
+ struct rbd_image_header *header)
{
int ret;
- ret = rbd_dev_v2_object_prefix(rbd_dev);
+ ret = rbd_dev_v2_object_prefix(rbd_dev, &header->object_prefix);
if (ret)
- goto out_err;
+ return ret;
/*
* Get the and check features for the image. Currently the
* features are assumed to never change.
*/
- ret = rbd_dev_v2_features(rbd_dev);
+ ret = _rbd_dev_v2_snap_features(rbd_dev, CEPH_NOSNAP,
+ rbd_is_ro(rbd_dev), &header->features);
if (ret)
- goto out_err;
+ return ret;
/* If the image supports fancy striping, get its parameters */
- if (rbd_dev->header.features & RBD_FEATURE_STRIPINGV2) {
- ret = rbd_dev_v2_striping_info(rbd_dev);
- if (ret < 0)
- goto out_err;
+ if (header->features & RBD_FEATURE_STRIPINGV2) {
+ ret = rbd_dev_v2_striping_info(rbd_dev, &header->stripe_unit,
+ &header->stripe_count);
+ if (ret)
+ return ret;
}
- if (rbd_dev->header.features & RBD_FEATURE_DATA_POOL) {
- ret = rbd_dev_v2_data_pool(rbd_dev);
+ if (header->features & RBD_FEATURE_DATA_POOL) {
+ ret = rbd_dev_v2_data_pool(rbd_dev, &header->data_pool_id);
if (ret)
- goto out_err;
+ return ret;
}
- rbd_init_layout(rbd_dev);
return 0;
-
-out_err:
- rbd_dev->header.features = 0;
- kfree(rbd_dev->header.object_prefix);
- rbd_dev->header.object_prefix = NULL;
- return ret;
}
/*
@@ -6948,13 +6941,15 @@ static int rbd_dev_image_probe(struct rbd_device *rbd_dev, int depth)
if (!depth)
down_write(&rbd_dev->header_rwsem);
- ret = rbd_dev_header_info(rbd_dev);
+ ret = rbd_dev_header_info(rbd_dev, &rbd_dev->header, true);
if (ret) {
if (ret == -ENOENT && !need_watch)
rbd_print_dne(rbd_dev, false);
goto err_out_probe;
}
+ rbd_init_layout(rbd_dev);
+
/*
* If this image is the one being mapped, we have pool name and
* id, image name and id, and snap name - need to fill snap id.
@@ -7009,15 +7004,39 @@ static int rbd_dev_image_probe(struct rbd_device *rbd_dev, int depth)
return ret;
}
+static void rbd_dev_update_header(struct rbd_device *rbd_dev,
+ struct rbd_image_header *header)
+{
+ rbd_assert(rbd_image_format_valid(rbd_dev->image_format));
+ rbd_assert(rbd_dev->header.object_prefix); /* !first_time */
+
+ rbd_dev->header.image_size = header->image_size;
+
+ ceph_put_snap_context(rbd_dev->header.snapc);
+ rbd_dev->header.snapc = header->snapc;
+ header->snapc = NULL;
+
+ if (rbd_dev->image_format == 1) {
+ kfree(rbd_dev->header.snap_names);
+ rbd_dev->header.snap_names = header->snap_names;
+ header->snap_names = NULL;
+
+ kfree(rbd_dev->header.snap_sizes);
+ rbd_dev->header.snap_sizes = header->snap_sizes;
+ header->snap_sizes = NULL;
+ }
+}
+
static int rbd_dev_refresh(struct rbd_device *rbd_dev)
{
+ struct rbd_image_header header = { 0 };
u64 mapping_size;
int ret;
down_write(&rbd_dev->header_rwsem);
mapping_size = rbd_dev->mapping.size;
- ret = rbd_dev_header_info(rbd_dev);
+ ret = rbd_dev_header_info(rbd_dev, &header, false);
if (ret)
goto out;
@@ -7031,6 +7050,8 @@ static int rbd_dev_refresh(struct rbd_device *rbd_dev)
goto out;
}
+ rbd_dev_update_header(rbd_dev, &header);
+
rbd_assert(!rbd_is_snap(rbd_dev));
rbd_dev->mapping.size = rbd_dev->header.image_size;
@@ -7039,6 +7060,7 @@ static int rbd_dev_refresh(struct rbd_device *rbd_dev)
if (!ret && mapping_size != rbd_dev->mapping.size)
rbd_dev_update_size(rbd_dev);
+ rbd_image_header_cleanup(&header);
return ret;
}
--
2.40.1
next prev parent reply other threads:[~2023-10-09 13:18 UTC|newest]
Thread overview: 184+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-09 12:59 [PATCH 6.1 000/162] 6.1.57-rc1 review Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 001/162] spi: zynqmp-gqspi: Convert to platform remove callback returning void Greg Kroah-Hartman
2023-10-09 15:49 ` Uwe Kleine-König
2023-10-09 18:06 ` Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 002/162] spi: zynqmp-gqspi: fix clock imbalance on probe failure Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 003/162] ALSA: hda/tas2781: Add tas2781 HDA driver Greg Kroah-Hartman
2023-10-09 13:20 ` Takashi Iwai
2023-10-09 12:59 ` [PATCH 6.1 004/162] ALSA: hda/realtek: Add quirk for HP Victus 16-d1xxx to enable mute LED Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 005/162] ALSA: hda/realtek: Add quirk for mute LEDs on HP ENVY x360 15-eu0xxx Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 006/162] ALSA: hda/realtek - ALC287 I2S speaker platform support Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 007/162] ALSA: hda/realtek - ALC287 Realtek " Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 008/162] ASoC: soc-utils: Export snd_soc_dai_is_dummy() symbol Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 009/162] ASoC: tegra: Fix redundant PLLA and PLLA_OUT0 updates Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 010/162] mptcp: rename timer related helper to less confusing names Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 011/162] mptcp: fix dangling connection hang-up Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 012/162] mptcp: annotate lockless accesses to sk->sk_err Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 013/162] mptcp: move __mptcp_error_report in protocol.c Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 014/162] mptcp: process pending subflow error on close Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 015/162] ata,scsi: do not issue START STOP UNIT on resume Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 016/162] scsi: sd: Differentiate system and runtime start/stop management Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 017/162] scsi: sd: Do not issue commands to suspended disks on shutdown Greg Kroah-Hartman
2023-10-09 12:59 ` [PATCH 6.1 018/162] scsi: core: Improve type safety of scsi_rescan_device() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 019/162] scsi: Do not attempt to rescan suspended devices Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 020/162] ata: libata-scsi: Fix delayed scsi_rescan_device() execution Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 021/162] NFS: Cleanup unused rpc_clnt variable Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 022/162] NFS: rename nfs_client_kset to nfs_kset Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 023/162] NFSv4: Fix a state manager thread deadlock regression Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 024/162] mm/memory: add vm_normal_folio() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 025/162] mm/mempolicy: convert queue_pages_pmd() to queue_folios_pmd() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 026/162] mm/mempolicy: convert queue_pages_pte_range() to queue_folios_pte_range() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 027/162] mm/mempolicy: convert migrate_page_add() to migrate_folio_add() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 028/162] mm: mempolicy: keep VMA walk if both MPOL_MF_STRICT and MPOL_MF_MOVE are specified Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 029/162] mm/page_alloc: always remove pages from temporary list Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 030/162] mm/page_alloc: leave IRQs enabled for per-cpu page allocations Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 031/162] mm: page_alloc: fix CMA and HIGHATOMIC landing on the wrong buddy list Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 032/162] ring-buffer: remove obsolete comment for free_buffer_page() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 033/162] ring-buffer: Fix bytes info in per_cpu buffer stats Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 034/162] btrfs: use struct qstr instead of name and namelen pairs Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 035/162] btrfs: setup qstr from dentrys using fscrypt helper Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 036/162] btrfs: use struct fscrypt_str instead of struct qstr Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 037/162] Revert "NFSv4: Retry LOCK on OLD_STATEID during delegation return" Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 038/162] arm64: Avoid repeated AA64MMFR1_EL1 register read on pagefault path Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 039/162] net: add sysctl accept_ra_min_rtr_lft Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 040/162] net: change accept_ra_min_rtr_lft to affect all RA lifetimes Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 041/162] net: release reference to inet6_dev pointer Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 042/162] arm64: cpufeature: Fix CLRBHB and BC detection Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 043/162] drm/amd/display: Adjust the MST resume flow Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 044/162] iommu/arm-smmu-v3: Set TTL invalidation hint better Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 045/162] iommu/arm-smmu-v3: Avoid constructing invalid range commands Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 046/162] rbd: move rbd_dev_refresh() definition Greg Kroah-Hartman
2023-10-09 13:00 ` Greg Kroah-Hartman [this message]
2023-10-09 13:00 ` [PATCH 6.1 048/162] rbd: decouple parent info read-in from updating rbd_dev Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 049/162] rbd: take header_rwsem in rbd_dev_refresh() only when updating Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 050/162] block: fix use-after-free of q->q_usage_counter Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 051/162] hwmon: (nzxt-smart2) Add device id Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 052/162] hwmon: (nzxt-smart2) add another USB ID Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 053/162] i40e: fix the wrong PTP frequency calculation Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 054/162] scsi: zfcp: Fix a double put in zfcp_port_enqueue() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 055/162] iommu/vt-d: Avoid memory allocation in iommu_suspend() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 056/162] vringh: dont use vringh_kiov_advance() in vringh_iov_xfer() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 057/162] net: ethernet: mediatek: disable irq before schedule napi Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 058/162] mptcp: userspace pm allow creating id 0 subflow Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 059/162] qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 060/162] Bluetooth: hci_codec: Fix leaking content of local_codecs Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 061/162] Bluetooth: hci_sync: Fix handling of HCI_QUIRK_STRICT_DUPLICATE_FILTER Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 062/162] wifi: mwifiex: Fix tlv_buf_left calculation Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 063/162] md/raid5: release batch_last before waiting for another stripe_head Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 064/162] PCI: qcom: Fix IPQ8074 enumeration Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 065/162] net: replace calls to sock->ops->connect() with kernel_connect() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 066/162] btrfs: reject unknown mount options early Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 067/162] net: prevent rewrite of msg_name in sock_sendmsg() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 068/162] drm/amd: Fix detection of _PR3 on the PCIe root port Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 069/162] drm/amd: Fix logic error in sienna_cichlid_update_pcie_parameters() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 070/162] arm64: Add Cortex-A520 CPU part definition Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 071/162] arm64: errata: Add Cortex-A520 speculative unprivileged load workaround Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 072/162] HID: sony: Fix a potential memory leak in sony_probe() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 073/162] ubi: Refuse attaching if mtds erasesize is 0 Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 074/162] erofs: fix memory leak of LZMA global compressed deduplication Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 075/162] wifi: iwlwifi: dbg_ini: fix structure packing Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 076/162] wifi: iwlwifi: mvm: Fix a memory corruption issue Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 077/162] wifi: cfg80211: hold wiphy lock in auto-disconnect Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 6.1 078/162] wifi: cfg80211: move wowlan disable under locks Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 079/162] wifi: cfg80211: add a work abstraction with special semantics Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 080/162] wifi: cfg80211: fix cqm_config access race Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 081/162] wifi: cfg80211: add missing kernel-doc for cqm_rssi_work Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 082/162] wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 083/162] leds: Drop BUG_ON check for LED_COLOR_ID_MULTI Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 084/162] bpf: Fix tr dereferencing Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 085/162] regulator: mt6358: Drop *_SSHUB regulators Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 086/162] regulator: mt6358: Use linear voltage helpers for single range regulators Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 087/162] regulator: mt6358: split ops for buck and linear range LDO regulators Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 088/162] Bluetooth: Delete unused hci_req_prepare_suspend() declaration Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 089/162] Bluetooth: ISO: Fix handling of listen for unicast Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 090/162] drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 091/162] wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 092/162] perf/x86/amd/core: Fix overflow reset on hotplug Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 093/162] regmap: rbtree: Fix wrong register marked as in-cache when creating new node Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 094/162] wifi: mac80211: fix potential key use-after-free Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 095/162] perf/x86/amd: Do not WARN() on every IRQ Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 096/162] iommu/mediatek: Fix share pgtable for iova over 4GB Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 097/162] regulator/core: regulator_register: set device->class earlier Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 098/162] ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 099/162] scsi: target: core: Fix deadlock due to recursive locking Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 100/162] ima: rework CONFIG_IMA dependency block Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 101/162] NFSv4: Fix a nfs4_state_manager() race Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 102/162] bpf: tcp_read_skb needs to pop skb regardless of seq Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 103/162] bpf, sockmap: Do not inc copied_seq when PEEK flag set Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 104/162] bpf, sockmap: Reject sk_msg egress redirects to non-TCP sockets Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 105/162] modpost: add missing else to the "of" check Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 106/162] net: fix possible store tearing in neigh_periodic_work() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 107/162] bpf: Add BPF_FIB_LOOKUP_SKIP_NEIGH for bpf_fib_lookup Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 108/162] neighbour: annotate lockless accesses to n->nud_state Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 109/162] neighbour: switch to standard rcu, instead of rcu_bh Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 110/162] neighbour: fix data-races around n->output Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 111/162] ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 112/162] ptp: ocp: Fix error handling in ptp_ocp_device_init Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 113/162] net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 114/162] ipv6: tcp: add a missing nf_reset_ct() in 3WHS handling Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 115/162] net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 116/162] net: nfc: llcp: Add lock when modifying device list Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 117/162] net: ethernet: ti: am65-cpsw: Fix error code in am65_cpsw_nuss_init_tx_chns() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 118/162] ibmveth: Remove condition to recompute TCP header checksum Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 119/162] netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 120/162] selftests: netfilter: Test nf_tables audit logging Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 121/162] selftests: netfilter: Extend nft_audit.sh Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 122/162] netfilter: nf_tables: Deduplicate nft_register_obj audit logs Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 123/162] netfilter: nf_tables: nft_set_rbtree: fix spurious insertion failure Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 124/162] ipv4: Set offload_failed flag in fibmatch results Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 125/162] net: stmmac: dwmac-stm32: fix resume on STM32 MCU Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 126/162] tipc: fix a potential deadlock on &tx->lock Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 127/162] tcp: fix quick-ack counting to count actual ACKs of new data Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 128/162] tcp: fix delayed ACKs for MSS boundary condition Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 129/162] sctp: update transport state when processing a dupcook packet Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 130/162] sctp: update hb timer immediately after users change hb_interval Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 131/162] netlink: split up copies in the ack construction Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 132/162] netlink: Fix potential skb memleak in netlink_ack Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 133/162] netlink: annotate data-races around sk->sk_err Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 134/162] HID: sony: remove duplicate NULL check before calling usb_free_urb() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 135/162] HID: intel-ish-hid: ipc: Disable and reenable ACPI GPE bit Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 136/162] intel_idle: add Emerald Rapids Xeon support Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 137/162] smb: use kernel_connect() and kernel_bind() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 6.1 138/162] parisc: Fix crash with nr_cpus=1 option Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 139/162] dm zoned: free dmz->ddev array in dmz_put_zoned_devices Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 140/162] RDMA/core: Require admin capabilities to set system parameters Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 141/162] of: dynamic: Fix potential memory leak in of_changeset_action() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 142/162] IB/mlx4: Fix the size of a buffer in add_port_entries() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 143/162] gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 144/162] gpio: pxa: disable pinctrl calls for MMP_GPIO Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 145/162] RDMA/cma: Initialize ib_sa_multicast structure to 0 when join Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 146/162] RDMA/cma: Fix truncation compilation warning in make_cma_ports Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 147/162] RDMA/uverbs: Fix typo of sizeof argument Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 148/162] RDMA/srp: Do not call scsi_done() from srp_abort() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 149/162] RDMA/siw: Fix connection failure handling Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 150/162] RDMA/mlx5: Fix mutex unlocking on error flow for steering anchor creation Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 151/162] RDMA/mlx5: Fix NULL string error Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 152/162] ALSA: hda/realtek: Fix spelling mistake "powe" -> "power" Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 153/162] ALSA: hda/realtek - Fixed two speaker platform Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 154/162] x86/sev: Use the GHCB protocol when available for SNP CPUID requests Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 155/162] ksmbd: fix race condition between session lookup and expire Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 156/162] ksmbd: fix uaf in smb20_oplock_break_ack Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 157/162] parisc: Restore __ldcw_align for PA-RISC 2.0 processors Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 158/162] ipv6: remove nexthop_fib6_nh_bh() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 159/162] vrf: Fix lockdep splat in output path Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 160/162] btrfs: fix an error handling path in btrfs_rename() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 161/162] btrfs: fix fscrypt name leak after failure to join log transaction Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 6.1 162/162] netlink: remove the flex array from struct nlmsghdr Greg Kroah-Hartman
2023-10-09 18:44 ` [PATCH 6.1 000/162] 6.1.57-rc1 review SeongJae Park
2023-10-09 20:43 ` Naresh Kamboju
2023-10-10 16:51 ` Matthieu Baerts
2023-10-10 17:24 ` Eric Dumazet
2023-10-10 18:59 ` Greg Kroah-Hartman
2023-10-09 22:49 ` Shuah Khan
2023-10-09 23:23 ` Florian Fainelli
2023-10-10 5:53 ` Bagas Sanjaya
2023-10-10 8:10 ` Wang Yugui
2023-10-10 11:28 ` Greg Kroah-Hartman
2023-10-10 11:42 ` Wang Yugui
2023-10-10 18:42 ` Greg Kroah-Hartman
2023-10-10 9:51 ` unneeded btrfs changes -- " Pavel Machek
2023-10-10 16:15 ` Greg Kroah-Hartman
2023-10-10 9:59 ` Jon Hunter
2023-10-10 13:21 ` Takeshi Ogasawara
2023-10-10 18:19 ` Guenter Roeck
2023-10-11 9:40 ` Pavel Machek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231009130124.236528924@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=dongsheng.yang@easystack.cn \
--cc=idryomov@gmail.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox