Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package drbd for openSUSE:Factory checked in 
at 2021-11-22 23:04:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/drbd (Old)
 and      /work/SRC/openSUSE:Factory/.drbd.new.1895 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "drbd"

Mon Nov 22 23:04:03 2021 rev:96 rq:932872 version:9.0.30~1+git.8e9c0812

Changes:
--------
--- /work/SRC/openSUSE:Factory/drbd/drbd.changes        2021-08-02 
12:06:01.485643848 +0200
+++ /work/SRC/openSUSE:Factory/.drbd.new.1895/drbd.changes      2021-11-22 
23:04:47.153810864 +0100
@@ -1,0 +2,15 @@
+Mon Nov 22 04:38:30 UTC 2021 - nick wang <nw...@suse.com>
+
+- bsc#1192929, compat to kernel v5.15
+- Remove patch convert_to_blk_alloc_disk.patch (upstream)
+- Add patch make_block_holder_optional.patch
+  Add patch move_kvmalloc_related_to_slab.patch
+  Add patch polling_to_bio_base.patch
+  Add patch pass_gend_to_blk_queue_update_readahead.patch
+  Add patch move_bdi_from_request_queue_to_gendisk.patch
+  Add patch dax_support.patch
+  Add patch add_disk_error_handle.patch
+  Add patch have_void_drbd_submit_bio.patch
+  Add patch remove_bdgrab.patch
+
+-------------------------------------------------------------------

Old:
----
  convert_to_blk_alloc_disk.patch
  drbd-9.0.30~1+git.10bee2d5.tar.bz2

New:
----
  add_disk_error_handle.patch
  dax_support.patch
  drbd-9.0.30~1+git.8e9c0812.tar.bz2
  have_void_drbd_submit_bio.patch
  make_block_holder_optional.patch
  move_bdi_from_request_queue_to_gendisk.patch
  move_kvmalloc_related_to_slab.patch
  pass_gend_to_blk_queue_update_readahead.patch
  polling_to_bio_base.patch
  remove_bdgrab.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ drbd.spec ++++++
--- /var/tmp/diff_new_pack.QZp4s7/_old  2021-11-22 23:04:47.813808649 +0100
+++ /var/tmp/diff_new_pack.QZp4s7/_new  2021-11-22 23:04:47.817808636 +0100
@@ -24,7 +24,7 @@
 %endif
 %endif
 Name:           drbd
-Version:        9.0.30~1+git.10bee2d5
+Version:        9.0.30~1+git.8e9c0812
 Release:        0
 Summary:        Linux driver for the "Distributed Replicated Block Device"
 License:        GPL-2.0-or-later
@@ -35,7 +35,15 @@
 Source2:        Module.supported
 Source3:        drbd_git_revision
 Patch1:         fix-resync-finished-with-syncs-have-bits-set.patch
-Patch2:         convert_to_blk_alloc_disk.patch
+Patch2:         make_block_holder_optional.patch
+Patch3:         move_kvmalloc_related_to_slab.patch
+Patch4:         polling_to_bio_base.patch
+Patch5:         pass_gend_to_blk_queue_update_readahead.patch
+Patch6:         move_bdi_from_request_queue_to_gendisk.patch
+Patch7:         dax_support.patch
+Patch8:         add_disk_error_handle.patch
+Patch9:         have_void_drbd_submit_bio.patch
+Patch10:        remove_bdgrab.patch
 Patch99:        suse-coccinelle.patch
 #https://github.com/openSUSE/rpmlint-checks/blob/master/KMPPolicyCheck.py
 BuildRequires:  coccinelle >= 1.0.8
@@ -71,6 +79,14 @@
 %setup -q -n drbd-%{version}
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
 %patch99 -p1
 
 mkdir source

++++++ add_disk_error_handle.patch ++++++
/* {"version":"v5.16-rc1~73", "commit": 
"e92ab4eda516a5bfd96c087282ebe9521deba4f4", "comment": "drbd: add error 
handling support for add_disk()"} */

diff -Naur drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_main.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_main.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_main.c    2021-11-19 
15:36:33.405592808 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_main.c 2021-11-19 15:43:32.799929686 
+0800
@@ -3794,7 +3794,10 @@
                goto out_remove_peer_device;
        }
 
-       add_disk(disk);
+       err = add_disk(disk);
+       if (err)
+               goto out_cleanup_disk;
+
        device->have_quorum[OLD] =
        device->have_quorum[NEW] =
                (resource->res_opts.quorum == QOU_OFF);
@@ -3811,6 +3814,8 @@
        *p_device = device;
        return NO_ERROR;
 
+out_cleanup_disk:
+       blk_cleanup_disk(disk);
 out_remove_peer_device:
        list_add_rcu(&tmp, &device->peer_devices);
        list_del_init(&device->peer_devices);
++++++ dax_support.patch ++++++
/* {"version":"v5.15-rc1~45", "commit": 
"1b7646014e0d838b06be7288e2dec3262948cc56", "comment": "dax: mark 
dax_get_by_host static"} */

diff -Naru drbd-9.0.30~1+git.8e9c0812.orig/drbd/Kbuild 
drbd-9.0.30~1+git.8e9c0812/drbd/Kbuild
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/Kbuild 2021-11-22 10:12:32.660034839 
+0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/Kbuild      2021-11-22 10:15:26.327117285 
+0800
@@ -53,6 +53,11 @@
 endif
 endif
 
+ifeq ($(shell grep -e '\<dax_get_by_host\>' \
+                  $(objtree)/Module.symvers | wc -l),1)
+override EXTRA_CFLAGS += -DDAX_GET_BY_HOST_EXPORTED
+endif
+
 drbd-$(CONFIG_DEBUG_FS) += drbd_debugfs.o
 drbd-y += drbd_buildtag.o drbd_bitmap.o drbd_proc.o
 drbd-y += drbd_sender.o drbd_receiver.o drbd_req.o drbd_actlog.o
diff -Naru drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_dax_pmem.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_dax_pmem.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_dax_pmem.c        2021-11-22 
10:12:32.668034796 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_dax_pmem.c     2021-11-22 
10:32:04.933864379 +0800
@@ -29,6 +29,53 @@
 #include "drbd_dax_pmem.h"
 #include "drbd_meta_data.h"
 
+#ifndef DAX_GET_BY_HOST_EXPORTED
+/* From drivers/dax/super.c */
+#include <linux/fs.h>
+#include <linux/mm.h>
+#include <linux/radix-tree.h>
+
+#define DAX_HASH_SIZE (PAGE_SIZE / sizeof(struct hlist_head))
+static DEFINE_SPINLOCK(dax_host_lock);
+static struct hlist_head dax_host_list[DAX_HASH_SIZE];
+
+static int dax_host_hash(const char *host)
+{
+       return hashlen_hash(hashlen_string("DAX", host)) % DAX_HASH_SIZE;
+}
+
+/**
+ * dax_get_by_host() - temporary lookup mechanism for filesystem-dax
+ * @host: alternate name for the device registered by a dax driver
+ */
+struct dax_device *dax_get_by_host(const char *host)
+{
+       struct dax_device *dax_dev, *found = NULL;
+       int hash, id;
+
+       if (!host)
+               return NULL;
+
+       hash = dax_host_hash(host);
+
+       id = dax_read_lock();
+       spin_lock(&dax_host_lock);
+       hlist_for_each_entry(dax_dev, &dax_host_list[hash], list) {
+               if (!dax_alive(dax_dev)
+                               || strcmp(host, dax_dev->host) != 0)
+                       continue;
+
+               if (igrab(&dax_dev->inode))
+                       found = dax_dev;
+               break;
+       }
+       spin_unlock(&dax_host_lock);
+       dax_read_unlock(id);
+
+       return found;
+}
+#endif
+
 static int map_superblock_for_dax(struct drbd_backing_dev *bdev, struct 
dax_device *dax_dev)
 {
        long want = 1;
diff -Naru drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_dax_pmem.h 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_dax_pmem.h
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_dax_pmem.h        2021-11-22 
10:12:32.668034796 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_dax_pmem.h     2021-11-22 
10:32:22.449772726 +0800
@@ -36,4 +36,29 @@
 
 #endif /* IS_ENABLED(CONFIG_DEV_DAX_PMEM) */
 
+#ifndef DAX_GET_BY_HOST_EXPORTED
+#include <linux/cdev.h>
+/**
+ * struct dax_device - anchor object for dax services
+ * @inode: core vfs
+ * @cdev: optional character interface for "device dax"
+ * @host: optional name for lookups where the device path is not available
+ * @private: dax driver private data
+ * @flags: state and boolean properties
+ */
+struct dax_device {
+       struct hlist_node list;
+       struct inode inode;
+       struct cdev cdev;
+       const char *host;
+       void *private;
+       unsigned long flags;
+       const struct dax_operations *ops;
+};
+
+#define DAX_HASH_SIZE (PAGE_SIZE / sizeof(struct hlist_head))
+
+extern struct dax_device *dax_get_by_host(const char *);
+#endif
+
 #endif /* DRBD_DAX_H */
++++++ drbd-9.0.30~1+git.10bee2d5.tar.bz2 -> drbd-9.0.30~1+git.8e9c0812.tar.bz2 
++++++
++++ 2464 lines of diff (skipped)

++++++ drbd_git_revision ++++++
--- /var/tmp/diff_new_pack.QZp4s7/_old  2021-11-22 23:04:48.265807132 +0100
+++ /var/tmp/diff_new_pack.QZp4s7/_new  2021-11-22 23:04:48.269807119 +0100
@@ -1 +1 @@
-GIT-hash: 10bee2d57dcbc48836ac61bad434590b7b82917e
+GIT-hash: 8e9c08122ae738eec189abe402ba7358b57182cd

++++++ have_void_drbd_submit_bio.patch ++++++
/* {"version":"v5.16-rc1~75", "commit": 
"3e08773c3841e9db7a520908cc2b136a77d275ff", "comment": "block: switch polling 
to be bio based"} */

diff -Naur 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_void_drbd_submit_bio.c
 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_void_drbd_submit_bio.c
--- 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_void_drbd_submit_bio.c
   1970-01-01 08:00:00.000000000 +0800
+++ 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_void_drbd_submit_bio.c
        2021-11-19 16:52:39.349253992 +0800
@@ -0,0 +1,8 @@
+/* { "version": "v5.16-rc1", "commit": 
"3e08773c3841e9db7a520908cc2b136a77d275ff", "comment": "block: switch polling 
to be bio based", "author": "Christoph Hellwig <h...@lst.de>", "date": "Tue Oct 
12 13:12:24 2021 +0200" } */
+
+#include <linux/bio.h>
+
+void foo(struct bio *b)
+{
+       b->bi_cookie = 0;
+}
diff -Naur drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_int.h 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_int.h
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_int.h     2021-11-19 
16:43:47.011257061 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_int.h  2021-11-19 16:57:32.204153502 
+0800
@@ -1848,7 +1848,11 @@
 #define __drbd_make_request(d,b,k,j) __drbd_make_request(d,b,j)
 #endif
 extern void __drbd_make_request(struct drbd_device *, struct bio *, ktime_t, 
unsigned long);
+#ifdef COMPAT_HAVE_VOID_DRBD_SUBMIT_BIO
+extern void drbd_submit_bio(struct bio *bio);
+#else
 extern blk_qc_t drbd_submit_bio(struct bio *bio);
+#endif
 
 /* drbd_nl.c */
 enum suspend_scope {
diff -Naur drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_req.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_req.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_req.c     2021-11-19 
16:43:47.011257061 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_req.c  2021-11-19 16:54:34.460820836 
+0800
@@ -2186,7 +2186,11 @@
        return false;
 }
 
+#ifdef COMPAT_HAVE_VOID_DRBD_SUBMIT_BIO
+void drbd_submit_bio(struct bio *bio)
+#else
 blk_qc_t drbd_submit_bio(struct bio *bio)
+#endif
 {
        struct drbd_device *device = bio->bi_bdev->bd_disk->private_data;
 #ifdef CONFIG_DRBD_TIMING_STATS
@@ -2197,7 +2201,9 @@
        if (drbd_fail_request_early(device, bio)) {
                bio->bi_status = BLK_STS_IOERR;
                bio_endio(bio);
+#ifndef COMPAT_HAVE_VOID_DRBD_SUBMIT_BIO
                return BLK_QC_T_NONE;
+#endif
        }
 
        blk_queue_split(&bio);
@@ -2205,7 +2211,9 @@
        if (device->cached_err_io) {
                bio->bi_status = BLK_STS_IOERR;
                bio_endio(bio);
+#ifndef COMPAT_HAVE_VOID_DRBD_SUBMIT_BIO
                return BLK_QC_T_NONE;
+#endif
        }
 
        /* This is both an optimization: READ of size 0, nothing to do
@@ -2217,7 +2225,9 @@
        if (bio_op(bio) == REQ_OP_READ && bio->bi_iter.bi_size == 0) {
                WARN_ONCE(1, "size zero read from upper layers");
                bio_endio(bio);
+#ifndef COMPAT_HAVE_VOID_DRBD_SUBMIT_BIO
                return BLK_QC_T_NONE;
+#endif
        }
 
        ktime_get_accounting(start_kt);
@@ -2225,7 +2235,9 @@
 
        __drbd_make_request(device, bio, start_kt, start_jif);
 
+#ifndef COMPAT_HAVE_VOID_DRBD_SUBMIT_BIO
        return BLK_QC_T_NONE;
+#endif
 }
 
 static unsigned long time_min_in_future(unsigned long now,
++++++ make_block_holder_optional.patch ++++++
/* {"version":"v5.15-rc1~161", "commit": 
"c66fd019713e9cf7d6f1243c378cd177d01fe18a", "comment": "block: make the block 
holder code optional"} */

diff -Naur 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_bd_claim_by_disk.c
 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_bd_claim_by_disk.c
--- 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_bd_claim_by_disk.c
       2021-11-18 11:27:38.503118180 +0800
+++ 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_bd_claim_by_disk.c
    2021-11-18 11:28:30.370889421 +0800
@@ -1,6 +1,6 @@
 #include <linux/fs.h>
 
-#ifdef CONFIG_SYSFS
+#if defined(CONFIG_SYSFS) || defined(CONFIG_BLOCK_HOLDER_DEPRECATED)
 void dummy(struct block_device *bdev, void *holder, struct gendisk *disk)
 {
        bd_claim_by_disk(bdev, holder, disk);
diff -Naur 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_bd_unlink_disk_holder.c
 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_bd_unlink_disk_holder.c
--- 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_bd_unlink_disk_holder.c
  2021-11-18 11:27:38.503118180 +0800
+++ 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_bd_unlink_disk_holder.c
       2021-11-18 13:15:26.943553840 +0800
@@ -2,12 +2,12 @@
 #include <linux/fs.h>
 #include <linux/blkdev.h>
 
-#ifdef CONFIG_SYSFS
+#if defined(CONFIG_SYSFS) || defined(CONFIG_BLOCK_HOLDER_DEPRECATED)
 void dummy(struct block_device *bdev, struct gendisk *disk)
 {
        /* also check that we are not between 49731ba and e09b457,
         * where there was a singular bd_holder_disk for a short time */
-       if (!list_empty(&bdev->bd_holder_disks))
+       /* if (!list_empty(&bdev->bd_holder_disks)) */
                bd_unlink_disk_holder(bdev, disk);
 }
 #endif
++++++ move_bdi_from_request_queue_to_gendisk.patch ++++++
diff -Naur 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/gen_patch_names.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/gen_patch_names.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/gen_patch_names.c   
2021-11-22 14:00:22.158226957 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/gen_patch_names.c        
2021-11-22 14:10:47.141520981 +0800
@@ -396,8 +396,10 @@
              COMPAT_HAVE_BLK_QUEUE_UPDATE_READAHEAD, "present");
 #endif
 
+#ifndef COMPAT_HAVE_GENDISK_BACKING_DEV_INFO
        patch(1, "backing_dev_info", true, false,
              COMPAT_HAVE_POINTER_BACKING_DEV_INFO, "is_pointer");
+#endif
 
        patch(1, "sendpage_ok", true, false,
              COMPAT_HAVE_SENDPAGE_OK, "present");
diff -Naur 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_gendisk_backing_dev_info.c
 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_gendisk_backing_dev_info.c
--- 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_gendisk_backing_dev_info.c
       1970-01-01 08:00:00.000000000 +0800
+++ 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_gendisk_backing_dev_info.c
    2021-11-22 14:08:58.564950244 +0800
@@ -0,0 +1,11 @@
+/* { "version": "v5.15-rc1~161", "commit": 
"edb0872f44ec9976ea6d052cb4b93cd2d23ac2ba", "comment": "block: move the bdi 
from the request_queue to the gendisk", "author": "Christoph Hellwig 
<h...@lst.de>", "date": "Mon Aug 9 16:17:43 2021 +0200" } */
+
+
+#include <linux/genhd.h>
+#include <linux/backing-dev-defs.h>
+
+void dummy(struct gendisk *gd)
+{
+       struct backing_dev_info *b;
+       b = gd->bdi;
+}
diff -Naur drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_nl.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_nl.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_nl.c      2021-11-22 
14:00:22.158226957 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_nl.c   2021-11-22 14:40:51.131336874 
+0800
@@ -5594,7 +5594,9 @@
        if (get_ldev(device)) {
                struct drbd_md *md = &device->ldev->md;
                u64 *history_uuids = (u64 *)s->history_uuids;
+#ifndef COMPAT_HAVE_GENDISK_BACKING_DEV_INFO
                struct request_queue *q;
+#endif
                int n;
 
                spin_lock_irq(&md->uuid_lock);
@@ -5606,11 +5608,18 @@
                spin_unlock_irq(&md->uuid_lock);
 
                s->dev_disk_flags = md->flags;
+#ifndef COMPAT_HAVE_GENDISK_BACKING_DEV_INFO
                q = bdev_get_queue(device->ldev->backing_bdev);
                s->dev_lower_blocked =
                        bdi_congested(q->backing_dev_info,
                                      (1 << WB_async_congested) |
                                      (1 << WB_sync_congested));
+#else
+               s->dev_lower_blocked =
+                       bdi_congested(device->ldev->backing_bdev->bd_disk->bdi,
+                                     (1 << WB_async_congested) |
+                                     (1 << WB_sync_congested));
+#endif
                put_ldev(device);
        }
        s->dev_size = get_capacity(device->vdisk);
diff -Naur drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_req.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_req.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_req.c     2021-11-22 
14:00:22.158226957 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_req.c  2021-11-22 14:15:43.103076717 
+0800
@@ -1148,13 +1148,19 @@
                struct drbd_peer_device *peer_device, sector_t sector,
                enum drbd_read_balancing rbm)
 {
+#ifndef COMPAT_HAVE_GENDISK_BACKING_DEV_INFO
        struct backing_dev_info *bdi;
+#endif
        int stripe_shift;
 
        switch (rbm) {
        case RB_CONGESTED_REMOTE:
+#ifndef COMPAT_HAVE_GENDISK_BACKING_DEV_INFO
                bdi = 
device->ldev->backing_bdev->bd_disk->queue->backing_dev_info;
                return bdi_read_congested(bdi);
+#else
+               return 
bdi_read_congested(device->ldev->backing_bdev->bd_disk->bdi);
+#endif
        case RB_LEAST_PENDING:
                return atomic_read(&device->local_cnt) >
                        atomic_read(&peer_device->ap_pending_cnt) + 
atomic_read(&peer_device->rs_pending_cnt);
++++++ move_kvmalloc_related_to_slab.patch ++++++
/* {"version":"v5.16-rc1~106", "commit": 
"8587ca6f34152ea650bad4b2db68456601159024", "comment": "mm: move 
kvmalloc-related functions to slab.h"} */

diff -Naur 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_kvfree.c 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_kvfree.c
--- drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_kvfree.c      
2021-11-09 22:43:17.000000000 +0800
+++ drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_kvfree.c 
2021-11-18 13:32:39.783138887 +0800
@@ -1,4 +1,5 @@
 #include <linux/mm.h>
+#include <linux/slab.h>
 
 void foo(void) {
        kvfree(NULL);
++++++ pass_gend_to_blk_queue_update_readahead.patch ++++++
/* {"version":"v5.15-rc1~161", "commit": 
""471aa704db4904f7af5a50019ca3b5b018c0cf62, "comment": "block: pass a gendisk 
to blk_queue_update_readahead"} */

diff -Naur 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/gen_patch_names.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/gen_patch_names.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/gen_patch_names.c   
2021-11-19 12:56:56.962529304 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/gen_patch_names.c        
2021-11-19 12:58:45.370112678 +0800
@@ -391,8 +391,10 @@
        patch(1, "wb_congested_enum", true, false,
              COMPAT_HAVE_WB_CONGESTED_ENUM, "present");
 
+#ifndef COMPAT_HAVE_DISK_UPDATE_READAHEAD
        patch(1, "blk_queue_update_readahead", true, false,
              COMPAT_HAVE_BLK_QUEUE_UPDATE_READAHEAD, "present");
+#endif
 
        patch(1, "backing_dev_info", true, false,
              COMPAT_HAVE_POINTER_BACKING_DEV_INFO, "is_pointer");
diff -Naur 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_disk_update_readahead.c
 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_disk_update_readahead.c
--- 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_disk_update_readahead.c
  1970-01-01 08:00:00.000000000 +0800
+++ 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_disk_update_readahead.c
       2021-11-19 12:59:10.194017276 +0800
@@ -0,0 +1,9 @@
+/* { "version": "v5.16", "commit": "471aa704db4904f7af5a50019ca3b5b018c0cf62", 
"comment": "block: pass a gendisk to blk_queue_update_readahead", "author": 
"Christoph Hellwig <h...@lst.de>", "date": "Mon Aug 9 16:17:41 2021 +0200" } */
+
+#include <linux/genhd.h>
+#include <linux/blkdev.h>
+
+void foo(struct gendisk *d)
+{
+       disk_update_readahead(d);
+}
diff -Naur drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_nl.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_nl.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_nl.c      2021-11-19 
12:56:56.966529288 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_nl.c   2021-11-19 13:00:37.777680684 
+0800
@@ -2124,7 +2124,11 @@
 
        if (b) {
                blk_stack_limits(&q->limits, &b->limits, 0);
+#ifdef COMPAT_HAVE_DISK_UPDATE_READAHEAD
+               disk_update_readahead(device->vdisk);
+#else
                blk_queue_update_readahead(q);
+#endif
        }
        fixup_discard_if_not_supported(q);
        fixup_write_zeroes(device, q);
++++++ polling_to_bio_base.patch ++++++
/* {"version":"v5.16-rc1~75", "commit": 
"3e08773c3841e9db7a520908cc2b136a77d275ff", "comment": "block: switch polling 
to be bio based"} */

diff -Naur 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_submit_bio_noacct.c
 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_submit_bio_noacct.c
--- 
drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd-kernel-compat/tests/have_submit_bio_noacct.c
      2021-11-18 13:33:44.434862535 +0800
+++ 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd-kernel-compat/tests/have_submit_bio_noacct.c
   2021-11-18 16:47:31.764019596 +0800
@@ -4,7 +4,5 @@
 
 void foo(struct bio *bio)
 {
-       blk_qc_t result;
-
-       result = submit_bio_noacct(bio);
+       submit_bio_noacct(bio);
 }
++++++ remove_bdgrab.patch ++++++
/* {"version":"v5.15-rc1~161", "commit": 
"14cf1dbb55bb07427babee425fd2a8a9300737cc", "comment": "block: remove bdgrab"} 
*/

diff -Naur drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_nl.c 
drbd-9.0.30~1+git.8e9c0812/drbd/drbd_nl.c
--- drbd-9.0.30~1+git.8e9c0812.orig/drbd/drbd_nl.c      2021-11-22 
12:32:17.202848720 +0800
+++ drbd-9.0.30~1+git.8e9c0812/drbd/drbd_nl.c   2021-11-22 12:32:57.719098447 
+0800
@@ -1038,10 +1038,7 @@
        } else /* (role == R_SECONDARY) */ {
                down(&resource->state_sem);
                idr_for_each_entry(&resource->devices, device, vnr) {
-                       bdev = bdgrab(device->vdisk->part0);
-                       if (bdev)
-                               fsync_bdev(bdev);
-                       bdput(bdev);
+                       fsync_bdev(bdev);
                        flush_workqueue(device->submit.wq);
                }
 

Reply via email to