Hello community, here is the log from the commit of package drbd for openSUSE:Factory checked in at 2020-10-20 16:15:21 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/drbd (Old) and /work/SRC/openSUSE:Factory/.drbd.new.3486 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "drbd" Tue Oct 20 16:15:21 2020 rev:88 rq:842703 version:9.0.25~0+git.bd41626d Changes: -------- --- /work/SRC/openSUSE:Factory/drbd/drbd.changes 2020-09-21 17:32:55.084435224 +0200 +++ /work/SRC/openSUSE:Factory/.drbd.new.3486/drbd.changes 2020-10-20 16:22:52.298363844 +0200 @@ -1,0 +2,10 @@ +Tue Oct 20 03:49:16 UTC 2020 - nick wang <[email protected]> + +- bsc#1177910, compat to kernel v5.9 + Add patch blk_alloc_queue_make_request.patch + Add patch compat_generic_make_request.patch + Add patch remove_congested_fn_congested_data.patch +- Add tumbleweed only patch + Add patch compat_blk_queue_stack_limits.patch + +------------------------------------------------------------------- New: ---- blk_alloc_queue_make_request.patch compat_blk_queue_stack_limits.patch compat_generic_make_request.patch remove_congested_fn_congested_data.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ drbd.spec ++++++ --- /var/tmp/diff_new_pack.O2Mz10/_old 2020-10-20 16:22:54.090364692 +0200 +++ /var/tmp/diff_new_pack.O2Mz10/_new 2020-10-20 16:22:54.090364692 +0200 @@ -40,6 +40,11 @@ Patch4: compat_remove_pgprot_88dca4c.patch Patch5: compat_remove_include_vermagic.patch Patch6: compat_remove_kernel_setsockopt.patch +# Compat to kernel v5.9 +Patch7: compat_generic_make_request.patch +Patch8: blk_alloc_queue_make_request.patch +Patch9: remove_congested_fn_congested_data.patch +Patch10: compat_blk_queue_stack_limits.patch Patch99: suse-coccinelle.patch #https://github.com/openSUSE/rpmlint-checks/blob/master/KMPPolicyCheck.py BuildRequires: coccinelle >= 1.0.8 @@ -79,6 +84,10 @@ %patch4 -p1 %patch5 -p1 %patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 %patch99 -p1 mkdir source ++++++ blk_alloc_queue_make_request.patch ++++++ Together with generic_make_request change to submit_bio_noacct, patch compat_generic_make_request.patch Adapted two upstream changes: c62b37d96b6eb v5.9-rc1~147^2~55 move ->make_request_fn to struct block_device_operations f695ca3886ce7 v5.9-rc1~147^2~59 remove the request_queue argument from blk_queue_split diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_int.h drbd-9.0.25~0+git.bd41626d/drbd/drbd_int.h --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_int.h 2020-10-10 13:00:26.547933412 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd_int.h 2020-10-10 13:00:51.932114769 +0800 @@ -1838,7 +1838,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); +#ifndef COMPAT_HAVE_GENERIC_MAKE_REQUEST +extern blk_qc_t drbd_make_request(struct bio *bio); +#else extern blk_qc_t drbd_make_request(struct request_queue *q, struct bio *bio); +#endif /* drbd_nl.c */ enum suspend_scope { diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/gen_patch_names.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/gen_patch_names.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/gen_patch_names.c 2020-10-10 13:00:26.543933383 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/gen_patch_names.c 2020-10-10 13:00:51.932114769 +0800 @@ -83,7 +83,7 @@ patch(1, "block_device_operations_release", true, false, COMPAT_DRBD_RELEASE_RETURNS_VOID, "is_void"); -#if !defined(COMPAT_HAVE_BD_UNLINK_DISK_HOLDER) || defined(COMPAT_HAVE_BD_CLAIM_BY) +#if !defined(COMPAT_HAVE_BD_UNLINK_DISK_HOLDER) || defined(COMPAT_HAVE_BD_CLAIM_BY_DISK) patch(2, "claim_disk", true, false, COMPAT_HAVE_BD_UNLINK_DISK_HOLDER, "link", COMPAT_HAVE_BD_CLAIM_BY_DISK, "claim"); @@ -130,11 +130,14 @@ patch(1, "blk_queue_make_request", false, true, COMPAT_HAVE_BLK_QUEUE_MAKE_REQUEST, "present"); +/* together with generic_make_request change to submit_bio_noacct */ +#ifdef COMPAT_HAVE_GENERIC_MAKE_REQUEST #ifndef COMPAT_HAVE_BLK_QC_T_MAKE_REQUEST patch(2, "make_request", false, false, COMPAT_HAVE_BLK_QC_T_MAKE_REQUEST, "is_blk_qc_t", COMPAT_HAVE_VOID_MAKE_REQUEST, "is_void"); #endif +#endif patch(1, "blkdev_get_by_path", true, false, COMPAT_HAVE_BLKDEV_GET_BY_PATH, "present"); @@ -209,6 +212,8 @@ patch(1, "blk_queue_merge_bvec", false, true, COMPAT_HAVE_BLK_QUEUE_MERGE_BVEC, "present"); +/* together with generic_make_request change to submit_bio_noacct */ +#ifdef COMPAT_HAVE_GENERIC_MAKE_REQUEST #if !defined(COMPAT_HAVE_BLK_QUEUE_SPLIT_Q_BIO) # if defined(COMPAT_HAVE_BLK_QUEUE_SPLIT_Q_BIO_BIOSET) /* if _BIOSET is true, it's the variant with 3 arguments */ @@ -222,6 +227,7 @@ NO, "present"); # endif #endif +#endif patch(1, "security_netlink_recv", false, true, COMPAT_HAVE_SECURITY_NETLINK_RECV, "present"); diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_blk_queue_split_q_bio.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_blk_queue_split_q_bio.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_blk_queue_split_q_bio.c 2020-10-10 13:00:26.543933383 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_blk_queue_split_q_bio.c 2020-10-10 13:03:31.905257690 +0800 @@ -2,5 +2,10 @@ void dummy(struct request_queue *q, struct bio *bio) { +/* together with generic_make_request change to submit_bio_noacct */ +#ifndef COMPAT_HAVE_GENERIC_MAKE_REQUEST + blk_queue_split(&bio); +#else blk_queue_split(q, &bio); +#endif } diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_main.c drbd-9.0.25~0+git.bd41626d/drbd/drbd_main.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_main.c 2020-10-10 13:00:26.547933412 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd_main.c 2020-10-10 13:00:51.936114797 +0800 @@ -161,6 +161,9 @@ .owner = THIS_MODULE, .open = drbd_open, .release = drbd_release, +#ifndef COMPAT_HAVE_GENERIC_MAKE_REQUEST + .submit_bio = drbd_make_request, +#endif }; struct bio *bio_alloc_drbd(gfp_t gfp_mask) @@ -3709,7 +3712,11 @@ init_rwsem(&device->uuid_sem); +#ifndef COMPAT_HAVE_GENERIC_MAKE_REQUEST + q = blk_alloc_queue(NUMA_NO_NODE); +#else q = blk_alloc_queue(drbd_make_request, NUMA_NO_NODE); +#endif if (!q) goto out_no_q; device->rq_queue = q; diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_req.c drbd-9.0.25~0+git.bd41626d/drbd/drbd_req.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_req.c 2020-10-10 13:00:26.547933412 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd_req.c 2020-10-10 13:05:16.018001520 +0800 @@ -2183,15 +2183,26 @@ } } +#ifndef COMPAT_HAVE_GENERIC_MAKE_REQUEST +blk_qc_t drbd_make_request(struct bio *bio) +{ + struct drbd_device *device = bio->bi_disk->private_data; +#else blk_qc_t drbd_make_request(struct request_queue *q, struct bio *bio) { struct drbd_device *device = (struct drbd_device *) q->queuedata; +#endif + #ifdef CONFIG_DRBD_TIMING_STATS ktime_t start_kt; #endif unsigned long start_jif; +#ifndef COMPAT_HAVE_GENERIC_MAKE_REQUEST + blk_queue_split(&bio); +#else blk_queue_split(q, &bio); +#endif if (device->cached_err_io) { bio->bi_status = BLK_STS_IOERR; ++++++ compat_blk_queue_stack_limits.patch ++++++ 1. b9b1a5d7 blk_queue_stack_limits is removed 2. 63a0895d and 3f649ab72 uninitialized_var() macro removed 3. c9ec0524 convert sched_setscheduler to sched_set_fifo* diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/drbd_wrappers.h drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/drbd_wrappers.h --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/drbd_wrappers.h 2020-10-20 10:48:14.274795598 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/drbd_wrappers.h 2020-10-20 10:48:02.074702666 +0800 @@ -523,4 +523,13 @@ #define __vmalloc(SIZE, GFP, PRGROT) __vmalloc(SIZE, GFP) #endif +#ifndef COMPAT_HAVE_BLK_QUEUE_STACK_LIMITS +#define blk_queue_stack_limits(TOP, BOTTOM) \ + blk_stack_limits(&((TOP)->limits), &((BOTTOM)->limits), 0 ) +#endif + +#ifndef COMPAT_HAVE_UNINITIALIZED_VAR +#define uninitialized_var(X) (X) +#endif + #endif diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_blk_queue_stack_limits.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_blk_queue_stack_limits.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_blk_queue_stack_limits.c 1970-01-01 08:00:00.000000000 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_blk_queue_stack_limits.c 2020-10-20 10:48:02.070702635 +0800 @@ -0,0 +1,7 @@ +#include <linux/blkdev.h> + +/* b9b1a5d7 blk_queue_stack_limits is removed */ +void dummy(struct request_queue *a, struct request_queue *b) +{ + blk_queue_stack_limits(a, b); +} diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_sched_set_fifo_low.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_sched_set_fifo_low.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_sched_set_fifo_low.c 1970-01-01 08:00:00.000000000 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_sched_set_fifo_low.c 2020-10-20 10:48:02.070702635 +0800 @@ -0,0 +1,7 @@ +/* 6d2b84a4e and c9ec052470 Convert set_scheduler to sched_set_fifo* */ +#include <linux/sched.h> + +void test(struct task_struct *p) +{ + sched_set_fifo_low(p); +} diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_uninitialized_var.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_uninitialized_var.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_uninitialized_var.c 1970-01-01 08:00:00.000000000 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_uninitialized_var.c 2020-10-20 10:48:02.070702635 +0800 @@ -0,0 +1,10 @@ +/* 63a0895d9 uninitialized_var is removed + * 3f649ab72 uninitialized_var removed in all .c +*/ +#include <linux/compiler-gcc.h> + +void test() +{ + unsigned int uninitialized_var(a); + a = 1; +} diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_receiver.c drbd-9.0.25~0+git.bd41626d/drbd/drbd_receiver.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_receiver.c 2020-10-20 10:48:14.058793953 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd_receiver.c 2020-10-20 11:11:32.948922212 +0800 @@ -9241,13 +9241,18 @@ unsigned int header_size = drbd_header_size(connection); int expect = header_size; bool ping_timeout_active = false; - struct sched_param param = { .sched_priority = 2 }; struct drbd_transport *transport = &connection->transport; struct drbd_transport_ops *tr_ops = transport->ops; +#ifdef COMPAT_HAVE_SCHED_SET_FIFO_LOW + sched_set_fifo_low(current); +#else + struct sched_param param = { .sched_priority = 2 }; rv = sched_setscheduler(current, SCHED_RR, ¶m); + if (rv < 0) drbd_err(connection, "drbd_ack_receiver: ERROR set priority, ret=%d\n", rv); +#endif while (get_t_state(thi) == RUNNING) { drbd_thread_current_set_cpu(thi); ++++++ compat_generic_make_request.patch ++++++ Upstream ed00aabd5eb9fb44d6aff1173234a2e911b9fead block: rename generic_make_request to submit_bio_noacct diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_int.h drbd-9.0.25~0+git.bd41626d/drbd/drbd_int.h --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_int.h 2020-09-19 09:26:23.903673522 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd_int.h 2020-09-19 09:34:03.363139586 +0800 @@ -2063,7 +2063,11 @@ bio->bi_status = BLK_STS_IOERR; bio_endio(bio); } else { +#ifndef COMPAT_HAVE_GENERIC_MAKE_REQUEST + submit_bio_noacct(bio); +#else generic_make_request(bio); +#endif } } diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_generic_make_request.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_generic_make_request.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_generic_make_request.c 1970-01-01 08:00:00.000000000 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_generic_make_request.c 2020-09-19 09:30:31.729550871 +0800 @@ -0,0 +1,11 @@ +#include <linux/blkdev.h> + +/* in Commit ed00aabd5eb9fb44d6aff1173234a2e911b9fead + generic_make_request rename to submit_bio_noacct + */ + +void foo(void) +{ + struct bio *bio; + generic_make_request(bio); +} diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_req.c drbd-9.0.25~0+git.bd41626d/drbd/drbd_req.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_req.c 2020-09-19 09:26:23.903673522 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd_req.c 2020-09-19 09:35:12.107655181 +0800 @@ -1481,7 +1481,11 @@ } else if (bio_op(bio) == REQ_OP_DISCARD) { drbd_process_discard_or_zeroes_req(req, EE_TRIM); } else { - generic_make_request(bio); +#ifndef COMPAT_HAVE_GENERIC_MAKE_REQUEST + submit_bio_noacct(bio); +#else + generic_make_request(bio); +#endif } put_ldev(device); } else { ++++++ remove_congested_fn_congested_data.patch ++++++ 1. Remove congested_fn and drbd_congested due to 21cf866145047f8bfecb38ec8d2fed64464c074f 2. Change define of blkdev_get_by_path from fs.h to blkdev.h, 3f1266f1f82d7b8c72472a8921e80aa3e611fb62 3. Change define of bd_unlink_disk_holder from fs.h to genhd.h, 3f1266f1f82d7b8c72472a8921e80aa3e611fb62 diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/drbd_wrappers.h drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/drbd_wrappers.h --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/drbd_wrappers.h 2020-10-10 10:50:15.408562371 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/drbd_wrappers.h 2020-10-10 10:50:21.156601464 +0800 @@ -143,9 +143,7 @@ #ifdef COMPAT_HAVE_POINTER_BACKING_DEV_INFO /* >= v4.11 */ #define bdi_from_device(device) (device->ldev->backing_bdev->bd_disk->queue->backing_dev_info) -#define init_bdev_info(bdev_info, drbd_congested, device) do { \ - (bdev_info)->congested_fn = drbd_congested; \ - (bdev_info)->congested_data = device; \ +#define init_bdev_info(bdev_info, device) do { \ set_bdi_cap_stable_writes(bdev_info->capabilities); \ } while(0) #define adjust_ra_pages(q, b) _adjust_ra_pages((q)->backing_dev_info->ra_pages, (b)->backing_dev_info->ra_pages) diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_bd_unlink_disk_holder.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_bd_unlink_disk_holder.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_bd_unlink_disk_holder.c 2020-10-10 10:50:15.408562371 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_bd_unlink_disk_holder.c 2020-10-10 10:50:29.488658135 +0800 @@ -1,4 +1,5 @@ #include <linux/fs.h> +#include <linux/genhd.h> #ifdef CONFIG_SYSFS void dummy(struct block_device *bdev, struct gendisk *disk) diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_blkdev_get_by_path.c drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_blkdev_get_by_path.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/tests/have_blkdev_get_by_path.c 2020-10-10 10:50:15.408562371 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/tests/have_blkdev_get_by_path.c 2020-10-10 10:50:40.432732559 +0800 @@ -1,4 +1,5 @@ #include <linux/fs.h> +#include <linux/blkdev.h> /* * In kernel version 2.6.38-rc1, open_bdev_exclusive() was replaced by diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_main.c drbd-9.0.25~0+git.bd41626d/drbd/drbd_main.c --- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd_main.c 2020-10-10 10:50:15.412562399 +0800 +++ drbd-9.0.25~0+git.bd41626d/drbd/drbd_main.c 2020-10-10 10:50:21.156601464 +0800 @@ -3103,63 +3103,6 @@ pr_info("module cleanup done.\n"); } -/** - * drbd_congested() - Callback for the flusher thread - * @congested_data: User data - * @bdi_bits: Bits the BDI flusher thread is currently interested in - * - * Returns 1<<WB_async_congested and/or 1<<WB_sync_congested if we are congested. - */ -static int drbd_congested(void *congested_data, int bdi_bits) -{ - struct drbd_device *device = congested_data; - struct request_queue *q; - int r = 0; - - if (!may_inc_ap_bio(device)) { - /* DRBD has frozen IO */ - r = bdi_bits; - goto out; - } - - if (test_bit(CALLBACK_PENDING, &device->resource->flags)) { - r |= (1 << WB_async_congested); - /* Without good local data, we would need to read from remote, - * and that would need the worker thread as well, which is - * currently blocked waiting for that usermode helper to - * finish. - */ - if (!get_ldev_if_state(device, D_UP_TO_DATE)) - r |= (1 << WB_sync_congested); - else - put_ldev(device); - r &= bdi_bits; - goto out; - } - - if (get_ldev(device)) { - q = bdev_get_queue(device->ldev->backing_bdev); - r = bdi_congested(q->backing_dev_info, bdi_bits); - put_ldev(device); - } - - if (bdi_bits & (1 << WB_async_congested)) { - struct drbd_peer_device *peer_device; - - rcu_read_lock(); - for_each_peer_device_rcu(peer_device, device) { - if (test_bit(NET_CONGESTED, &peer_device->connection->transport.flags)) { - r |= (1 << WB_async_congested); - break; - } - } - rcu_read_unlock(); - } - -out: - return r; -} - static void drbd_init_workqueue(struct drbd_work_queue* wq) { spin_lock_init(&wq->q_lock); @@ -3731,7 +3674,7 @@ /* we have no partitions. we contain only ourselves. */ device->this_bdev->bd_contains = device->this_bdev; - init_bdev_info(q->backing_dev_info, drbd_congested, device); + init_bdev_info(q->backing_dev_info, device); blk_queue_write_cache(q, true, true); ++++++ suse-coccinelle.patch ++++++ --- /var/tmp/diff_new_pack.O2Mz10/_old 2020-10-20 16:22:54.242364764 +0200 +++ /var/tmp/diff_new_pack.O2Mz10/_new 2020-10-20 16:22:54.246364766 +0200 @@ -1,14 +1,27 @@ -diff -Naur drbd-9.0.21~1+git.449d6bf2.orig/drbd/drbd-kernel-compat/gen_compat_patch.sh drbd-9.0.21~1+git.449d6bf2/drbd/drbd-kernel-compat/gen_compat_patch.sh ---- drbd-9.0.21~1+git.449d6bf2.orig/drbd/drbd-kernel-compat/gen_compat_patch.sh 2019-12-16 14:42:10.832866579 +0800 -+++ drbd-9.0.21~1+git.449d6bf2/drbd/drbd-kernel-compat/gen_compat_patch.sh 2019-12-16 15:11:08.209750606 +0800 -@@ -56,29 +56,49 @@ +diff -Naur drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/gen_compat_patch.sh drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/gen_compat_patch.sh +--- drbd-9.0.25~0+git.bd41626d.orig/drbd/drbd-kernel-compat/gen_compat_patch.sh 2020-09-19 08:34:40.643919136 +0800 ++++ drbd-9.0.25~0+git.bd41626d/drbd/drbd-kernel-compat/gen_compat_patch.sh 2020-09-19 08:50:59.095231966 +0800 +@@ -44,9 +44,15 @@ + + if hash spatch && spatch_is_recent; then + K=$(cat $incdir/kernelrelease.txt) ++ echo " compat.h content "; ++ cat $incdir/compat.h; ++ echo " ------------------- "; + echo " GENPATCHNAMES "$K + gcc -I $incdir -o $incdir/gen_patch_names -std=c99 drbd-kernel-compat/gen_patch_names.c + $incdir/gen_patch_names > $incdir/applied_cocci_files.txt ++ echo " APPLIED_COCCI_FILES "; ++ cat $incdir/applied_cocci_files.txt; ++ echo " ------------------- "; + rm $incdir/gen_patch_names + rm -f $incdir/.compat.cocci + rm -f $incdir/.compat.patch +@@ -61,29 +67,46 @@ < drbd-kernel-compat/cocci/debugfs_compat_template.cocci.in \ >> $incdir/.compat.cocci done + -+ echo " APPLIED_COCCI_FILES "; -+ cat $incdir/applied_cocci_files.txt; -+ + coccilibpath=$(rpm -ql coccinelle|grep standard.h|xargs dirname); + echo " SPATCH_SOURCES: "$*; + echo " COCCI_LIBPATH: "$coccilibpath; @@ -21,20 +34,10 @@ - # are "the rest of the shell argument array", so after shifting the first - # argument away this is shell $@ respectively $* now. - # we know we don't have white-space in the argument list -- -- command="spatch --sp-file $incdir/.compat.cocci $* --macro-file drbd-kernel-compat/cocci_macros.h --very-quiet > $compat_patch.tmp 2> $incdir/.spatch.stderr;" -- -- if test -t 0; then -- $SHELL -c "$command" -- else -- # spatch is broken in a way: it "requires" a tty. -- # provide a tty using "script", so I can have several spatch in parallel. -- # They may ignore INT and TERM; if you have to, use HUP. -- </dev/null &> /dev/null script --append $incdir/.spatch.tty.out --return --quiet --command "$command" -- fi + echo " GENCOCCIRULES .compat.cocci"; + cat $incdir/.compat.cocci; -+ + +- command="spatch --sp-file $incdir/.compat.cocci $* --macro-file drbd-kernel-compat/cocci_macros.h --very-quiet > $compat_patch.tmp 2> $incdir/.spatch.stderr;" + echo " SPATCH $chksum "$K + # Note: $* (or $@) is NOT make magic variable now, this is a shell script + # make $@, the target file, was passed as $1, and is now $compat_patch @@ -42,7 +45,15 @@ + # are "the rest of the shell argument array", so after shifting the first + # argument away this is shell $@ respectively $* now. + # we know we don't have white-space in the argument list -+ + +- if test -t 0; then +- $SHELL -c "$command" +- else +- # spatch is broken in a way: it "requires" a tty. +- # provide a tty using "script", so I can have several spatch in parallel. +- # They may ignore INT and TERM; if you have to, use HUP. +- </dev/null &> /dev/null script --append $incdir/.spatch.tty.out --return --quiet --command "$command" +- fi + command="spatch --sp-file $incdir/.compat.cocci $* --macro-file drbd-kernel-compat/cocci_macros.h --macro-file-builtins $coccilibpath/standard.h --iso-file $coccilibpath/standard.iso --very-quiet > $compat_patch.tmp 2> $incdir/.spatch.stderr;" + echo " SPATCH COMMAND $command "; +
