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 5.4 087/131] rbd: decouple header read-in from updating rbd_dev->header
Date: Mon, 9 Oct 2023 15:02:07 +0200 [thread overview]
Message-ID: <20231009130119.017240468@linuxfoundation.org> (raw)
In-Reply-To: <20231009130116.329529591@linuxfoundation.org>
5.4-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>
[idryomov@gmail.com: backport to 5.4: _rbd_dev_v2_snap_features()
doesn't have read_only param]
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/block/rbd.c | 205 ++++++++++++++++++++++++--------------------
1 file changed, 114 insertions(+), 91 deletions(-)
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index e015b8610e274..17d802effdc41 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -626,7 +626,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,
@@ -1096,15 +1097,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;
@@ -1171,11 +1181,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) */
@@ -4981,7 +4986,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;
@@ -5029,7 +5036,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);
@@ -5642,17 +5649,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;
@@ -5670,16 +5672,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);
@@ -5724,12 +5726,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_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.
@@ -6004,14 +6000,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,
@@ -6023,27 +6019,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;
}
@@ -6235,7 +6237,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;
@@ -6296,9 +6299,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:
@@ -6347,38 +6348,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);
}
/*
@@ -6728,60 +6733,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,
+ &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;
}
/*
@@ -6959,10 +6953,12 @@ 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)
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.
@@ -7022,15 +7018,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;
@@ -7044,6 +7064,8 @@ static int rbd_dev_refresh(struct rbd_device *rbd_dev)
goto out;
}
+ rbd_dev_update_header(rbd_dev, &header);
+
if (rbd_dev->spec->snap_id == CEPH_NOSNAP) {
rbd_dev->mapping.size = rbd_dev->header.image_size;
} else {
@@ -7056,6 +7078,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:32 UTC|newest]
Thread overview: 143+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-09 13:00 [PATCH 5.4 000/131] 5.4.258-rc1 review Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 001/131] NFS/pNFS: Report EINVAL errors from connect() to the server Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 002/131] SUNRPC: Mark the cred for revalidation if the server rejects it Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 003/131] tracing: Increase trace array ref count on enable and filter files Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 004/131] ata: libahci: clear pending interrupt status Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 005/131] ext4: remove the group parameter of ext4_trim_extent Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 006/131] ext4: add new helper interface ext4_try_to_trim_range() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 007/131] ext4: scope ret locally in ext4_try_to_trim_range() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 008/131] ext4: change s_last_trim_minblks type to unsigned long Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 009/131] ext4: mark group as trimmed only if it was fully scanned Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 010/131] ext4: replace the traditional ternary conditional operator with with max()/min() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 011/131] ext4: move setting of trimmed bit into ext4_try_to_trim_range() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 012/131] ext4: do not let fstrim block system suspend Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 013/131] ASoC: meson: spdifin: start hw on dai probe Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 014/131] netfilter: nf_tables: disallow element removal on anonymous sets Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 015/131] bpf: Avoid deadlock when using queue and stack maps from NMI Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 016/131] selftests/tls: Add {} to avoid static checker warning Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 017/131] selftests: tls: swap the TX and RX sockets in some tests Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 018/131] ASoC: imx-audmix: Fix return error with devm_clk_get() Greg Kroah-Hartman
2023-10-09 13:00 ` [PATCH 5.4 019/131] i40e: Fix for persistent lldp support Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 020/131] i40e: Remove scheduling while atomic possibility Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 021/131] i40e: Fix warning message and call stack during rmmod i40e driver Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 022/131] i40e: Fix VF VLAN offloading when port VLAN is configured Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 023/131] ipv4: fix null-deref in ipv4_link_failure Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 024/131] powerpc/perf/hv-24x7: Update domain value check Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 025/131] dccp: fix dccp_v4_err()/dccp_v6_err() again Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 026/131] net: hns3: add 5ms delay before clear firmware reset irq source Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 027/131] net: bridge: use DEV_STATS_INC() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 028/131] team: fix null-ptr-deref when team device type is changed Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 029/131] net: rds: Fix possible NULL-pointer dereference Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 030/131] netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 031/131] gpio: tb10x: Fix an error handling path in tb10x_gpio_probe() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 032/131] i2c: mux: demux-pinctrl: check the return value of devm_kstrdup() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 033/131] Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 034/131] scsi: qla2xxx: Fix update_fcport for current_topology Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 035/131] scsi: qla2xxx: Fix deletion race condition Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 036/131] clk: imx: clk-pll14xx: Make two variables static Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 037/131] clk: imx: pll14xx: Add new frequency entries for pll1443x table Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 038/131] clk: imx: pll14xx: dynamically configure PLL for 393216000/361267200Hz Greg Kroah-Hartman
2023-10-09 14:01 ` Ahmad Fatoum
2023-10-09 18:02 ` Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 039/131] drm/amd/display: Reinstate LFC optimization Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 040/131] drm/amd/display: Fix LFC multiplier changing erratically Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 041/131] drm/amd/display: prevent potential division by zero errors Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 042/131] ata: libata: disallow dev-initiated LPM transitions to unsupported states Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 043/131] MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 044/131] clk: tegra: fix error return case for recalc_rate Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 045/131] ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 046/131] bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 047/131] xtensa: add default definition for XCHAL_HAVE_DIV32 Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 048/131] xtensa: iss/network: make functions static Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 049/131] xtensa: boot: dont add include-dirs Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 050/131] xtensa: boot/lib: fix function prototypes Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 051/131] gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 052/131] parisc: sba: Fix compile warning wrt list of SBA devices Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 053/131] parisc: iosapic.c: Fix sparse warnings Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 054/131] parisc: drivers: Fix sparse warning Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 055/131] parisc: irq: Make irq_stack_union static to avoid " Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 056/131] selftests/ftrace: Correctly enable event in instance-event.tc Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 057/131] ring-buffer: Avoid softlockup in ring_buffer_resize() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 058/131] ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 059/131] spi: nxp-fspi: reset the FLSHxCR1 registers Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 060/131] bpf: Clarify error expectations from bpf_clone_redirect Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 061/131] powerpc/watchpoints: Annotate atomic context in more places Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 062/131] ncsi: Propagate carrier gain/loss events to the NCSI controller Greg Kroah-Hartman
2023-11-08 15:08 ` Johnathan Mantey
2023-11-08 16:12 ` Greg Kroah-Hartman
2023-11-08 16:48 ` Johnathan Mantey
2023-10-09 13:01 ` [PATCH 5.4 063/131] fbdev/sh7760fb: Depend on FB=y Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 064/131] nvme-pci: do not set the NUMA node of device if it has none Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 065/131] watchdog: iTCO_wdt: No need to stop the timer in probe Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 066/131] watchdog: iTCO_wdt: Set NO_REBOOT if the watchdog is not already running Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 067/131] i40e: improve locking of mac_filter_hash Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 068/131] i40e: always propagate error value in i40e_set_vsi_promisc() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 069/131] i40e: fix return of uninitialized aq_ret in i40e_set_vsi_promisc Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 070/131] smack: Record transmuting in smk_transmuted Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 071/131] smack: Retrieve transmuting information in smack_inode_getsecurity() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 072/131] Smack:- Use overlay inode label in smack_inode_copy_up() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 073/131] serial: 8250_port: Check IRQ data before use Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 074/131] nilfs2: fix potential use after free in nilfs_gccache_submit_read_data() Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 075/131] ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre M70q Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 076/131] ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 077/131] i2c: i801: unregister tco_pdev in i801_probe() error path Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 078/131] ring-buffer: Update "shortest_full" in polling Greg Kroah-Hartman
2023-10-09 13:01 ` [PATCH 5.4 079/131] btrfs: properly report 0 avail for very full file systems Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 080/131] net: thunderbolt: Fix TCPv6 GSO checksum calculation Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 081/131] ata: libata-core: Fix ata_port_request_pm() locking Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 082/131] ata: libata-core: Fix port and device removal Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 083/131] ata: libata-core: Do not register PM operations for SAS ports Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 084/131] ata: libata-sata: increase PMP SRST timeout to 10s Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 085/131] fs: binfmt_elf_efpic: fix personality for ELF-FDPIC Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 086/131] rbd: move rbd_dev_refresh() definition Greg Kroah-Hartman
2023-10-09 13:02 ` Greg Kroah-Hartman [this message]
2023-10-09 13:02 ` [PATCH 5.4 088/131] rbd: decouple parent info read-in from updating rbd_dev Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 089/131] rbd: take header_rwsem in rbd_dev_refresh() only when updating Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 090/131] Revert "PCI: qcom: Disable write access to read only registers for IP v2.3.3" Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 091/131] scsi: zfcp: Fix a double put in zfcp_port_enqueue() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 092/131] qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 093/131] wifi: mwifiex: Fix tlv_buf_left calculation Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 094/131] net: replace calls to sock->ops->connect() with kernel_connect() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 095/131] btrfs: reject unknown mount options early Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 096/131] net: prevent rewrite of msg_name in sock_sendmsg() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 097/131] ubi: Refuse attaching if mtds erasesize is 0 Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 098/131] wifi: iwlwifi: dbg_ini: fix structure packing Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 099/131] wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 100/131] drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 101/131] wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 102/131] regmap: rbtree: Fix wrong register marked as in-cache when creating new node Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 103/131] ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 104/131] scsi: target: core: Fix deadlock due to recursive locking Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 105/131] NFS4: Trace state recovery operation Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 106/131] NFS: Add a helper nfs_client_for_each_server() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 107/131] NFSv4: Fix a nfs4_state_manager() race Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 108/131] modpost: add missing else to the "of" check Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 109/131] net: fix possible store tearing in neigh_periodic_work() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 110/131] ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 111/131] net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 112/131] net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 113/131] net: nfc: llcp: Add lock when modifying device list Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 114/131] netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 115/131] net: stmmac: dwmac-stm32: fix resume on STM32 MCU Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 116/131] tcp: fix quick-ack counting to count actual ACKs of new data Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 117/131] tcp: fix delayed ACKs for MSS boundary condition Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 118/131] sctp: update transport state when processing a dupcook packet Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 119/131] sctp: update hb timer immediately after users change hb_interval Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 120/131] cpupower: add Makefile dependencies for install targets Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 121/131] RDMA/core: Require admin capabilities to set system parameters Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 122/131] IB/mlx4: Fix the size of a buffer in add_port_entries() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 123/131] gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 124/131] gpio: pxa: disable pinctrl calls for MMP_GPIO Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 125/131] RDMA/cma: Fix truncation compilation warning in make_cma_ports Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 126/131] RDMA/uverbs: Fix typo of sizeof argument Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 127/131] RDMA/siw: Fix connection failure handling Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 128/131] RDMA/mlx5: Fix NULL string error Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 129/131] parisc: Restore __ldcw_align for PA-RISC 2.0 processors Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 130/131] NFS: Fix a race in __nfs_list_for_each_server() Greg Kroah-Hartman
2023-10-09 13:02 ` [PATCH 5.4 131/131] ima: rework CONFIG_IMA dependency block Greg Kroah-Hartman
2023-10-09 19:09 ` [PATCH 5.4 000/131] 5.4.258-rc1 review Florian Fainelli
2023-10-09 23:00 ` Shuah Khan
2023-10-10 9:57 ` Jon Hunter
2023-10-10 14:49 ` Harshit Mogalapalli
2023-10-10 18:18 ` Guenter Roeck
2023-10-11 1:43 ` Naresh Kamboju
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=20231009130119.017240468@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