drbd/bsc1226510-fix-build-err-against-6.9.3.patch
heming zhao bd99eea891 - drbdadm down fails to remove sysfs holder file (boo#1230635)
* add patch
    + boo1230635_01-compat-fix-nla_nest_start_noflag-test.patch
    + boo1230635_02-drbd-port-block-device-access-to-file.patch
  * update patch
    + bsc1226510-fix-build-err-against-6.9.3.patch

OBS-URL: https://build.opensuse.org/package/show/network:ha-clustering:Factory/drbd?expand=0&rev=152
2024-09-17 11:55:19 +00:00

79 lines
2.7 KiB
Diff

By heming.zhao@suse.com
This patch was updated/changed after boo#1230635
----
diff -Nupr a/drbd/drbd-kernel-compat/tests/have_bdev_open_by_path.c b/drbd/drbd-kernel-compat/tests/have_bdev_open_by_path.c
--- a/drbd/drbd-kernel-compat/tests/have_bdev_open_by_path.c 2024-06-19 15:02:47.050694378 +0800
+++ b/drbd/drbd-kernel-compat/tests/have_bdev_open_by_path.c 2024-06-19 15:11:39.313298178 +0800
@@ -2,7 +2,7 @@
#include <linux/blkdev.h>
-struct bdev_handle *foo(const char *path, blk_mode_t mode, void *holder,
- const struct blk_holder_ops *hops) {
- return bdev_open_by_path(path, mode, holder, hops);
+void foo(void)
+{
+ return;
}
diff -Nupr a/drbd/drbd-kernel-compat/tests/have_blk_alloc_disk.c b/drbd/drbd-kernel-compat/tests/have_blk_alloc_disk.c
--- a/drbd/drbd-kernel-compat/tests/have_blk_alloc_disk.c 2024-06-19 11:35:39.957400039 +0800
+++ b/drbd/drbd-kernel-compat/tests/have_blk_alloc_disk.c 2024-06-19 11:36:43.594396686 +0800
@@ -2,7 +2,17 @@
#include <linux/blkdev.h>
+#define DRBD_MAX_BIO_SIZE_SAFE (1U << 12) /* Works always = 4k */
+
struct gendisk *foo(int node)
{
- return blk_alloc_disk(node);
+ struct queue_limits lim = {
+ /*
+ * Setting the max_hw_sectors to an odd value of 8kibyte here.
+ * This triggers a max_bio_size message upon first attach or
+ * connect.
+ */
+ .max_hw_sectors = DRBD_MAX_BIO_SIZE_SAFE >> 8,
+ };
+ return blk_alloc_disk(&lim, node);
}
diff -Nupr a/drbd/drbd_main.c b/drbd/drbd_main.c
--- a/drbd/drbd_main.c 2024-06-19 11:41:59.409367593 +0800
+++ b/drbd/drbd_main.c 2024-06-19 11:41:40.052600574 +0800
@@ -3752,6 +3752,7 @@ static int init_submitter(struct drbd_de
return 0;
}
+#define DRBD_MAX_BIO_SIZE_SAFE (1U << 12) /* Works always = 4k */
enum drbd_ret_code drbd_create_device(struct drbd_config_context *adm_ctx, unsigned int minor,
struct device_conf *device_conf, struct drbd_device **p_device)
{
@@ -3767,6 +3768,15 @@ enum drbd_ret_code drbd_create_device(st
enum drbd_ret_code err = ERR_NOMEM;
bool locked = false;
+ struct queue_limits lim = {
+ /*
+ * Setting the max_hw_sectors to an odd value of 8kibyte here.
+ * This triggers a max_bio_size message upon first attach or
+ * connect.
+ */
+ .max_hw_sectors = DRBD_MAX_BIO_SIZE_SAFE >> 8,
+ };
+
lockdep_assert_held(&resource->conf_update);
device = minor_to_device(minor);
@@ -3824,7 +3834,7 @@ enum drbd_ret_code drbd_create_device(st
init_rwsem(&device->uuid_sem);
- disk = blk_alloc_disk(NUMA_NO_NODE);
+ disk = blk_alloc_disk(&lim, NUMA_NO_NODE);
if (!disk)
goto out_no_disk;