compat.patch (drbd-9.1.10) | : | compat.patch (drbd-9.1.11) | ||
---|---|---|---|---|
--- ./drbd_int.h | --- ./drbd_int.h | |||
+++ /tmp/cocci-output-400457-3c9801-drbd_int.h | ||||
@@ -1763,7 +1763,7 @@ extern sector_t drbd_get_max_capacity( | @@ -1763,7 +1763,7 @@ extern sector_t drbd_get_max_capacity( | |||
* we limit us to a platform agnostic constant here for now. | * we limit us to a platform agnostic constant here for now. | |||
* A followup commit may allow even bigger BIO sizes, | * A followup commit may allow even bigger BIO sizes, | |||
* once we thought that through. */ | * once we thought that through. */ | |||
-#define DRBD_BIO_MAX_PAGES (BIO_MAX_VECS << PAGE_SHIFT) | -#define DRBD_BIO_MAX_PAGES (BIO_MAX_VECS << PAGE_SHIFT) | |||
+#define DRBD_BIO_MAX_PAGES (BIO_MAX_PAGES << PAGE_SHIFT) | +#define DRBD_BIO_MAX_PAGES (BIO_MAX_PAGES << PAGE_SHIFT) | |||
#if DRBD_MAX_BIO_SIZE > DRBD_BIO_MAX_PAGES | #if DRBD_MAX_BIO_SIZE > DRBD_BIO_MAX_PAGES | |||
#error Architecture not supported: DRBD_MAX_BIO_SIZE > (BIO_MAX_VECS << PAGE_SH IFT) | #error Architecture not supported: DRBD_MAX_BIO_SIZE > (BIO_MAX_VECS << PAGE_SH IFT) | |||
#endif | #endif | |||
@@ -1838,8 +1838,8 @@ extern struct kmem_cache *drbd_request_c | @@ -1838,8 +1838,8 @@ extern struct kmem_cache *drbd_request_c | |||
skipping to change at line 69 | skipping to change at line 69 | |||
@@ -2104,7 +2104,7 @@ static inline void drbd_submit_bio_noacc | @@ -2104,7 +2104,7 @@ static inline void drbd_submit_bio_noacc | |||
bio->bi_status = BLK_STS_IOERR; | bio->bi_status = BLK_STS_IOERR; | |||
bio_endio(bio); | bio_endio(bio); | |||
} else { | } else { | |||
- submit_bio_noacct(bio); | - submit_bio_noacct(bio); | |||
+ generic_make_request(bio); | + generic_make_request(bio); | |||
} | } | |||
} | } | |||
--- drbd-headers/linux/genl_magic_struct.h | --- drbd-headers/linux/genl_magic_struct.h | |||
+++ /tmp/cocci-output-400457-fd45f9-genl_magic_struct.h | ||||
@@ -107,7 +107,7 @@ static inline int nla_put_u64_0pad(struc | @@ -107,7 +107,7 @@ static inline int nla_put_u64_0pad(struc | |||
nla_get_u64, nla_put_u64_0pad, false) | nla_get_u64, nla_put_u64_0pad, false) | |||
#define __str_field(attr_nr, attr_flag, name, maxlen) \ | #define __str_field(attr_nr, attr_flag, name, maxlen) \ | |||
__array(attr_nr, attr_flag, name, NLA_NUL_STRING, char, maxlen, \ | __array(attr_nr, attr_flag, name, NLA_NUL_STRING, char, maxlen, \ | |||
- nla_strscpy, nla_put, false) | - nla_strscpy, nla_put, false) | |||
+ nla_strlcpy, nla_put, false) | + nla_strlcpy, nla_put, false) | |||
#define __bin_field(attr_nr, attr_flag, name, maxlen) \ | #define __bin_field(attr_nr, attr_flag, name, maxlen) \ | |||
__array(attr_nr, attr_flag, name, NLA_BINARY, char, maxlen, \ | __array(attr_nr, attr_flag, name, NLA_BINARY, char, maxlen, \ | |||
nla_memcpy, nla_put, false) | nla_memcpy, nla_put, false) | |||
--- drbd_transport_tcp.c | --- drbd_transport_tcp.c | |||
+++ /tmp/cocci-output-400457-d9331f-drbd_transport_tcp.c | ||||
@@ -154,6 +154,33 @@ static struct drbd_path *__drbd_next_pat | @@ -154,6 +154,33 @@ static struct drbd_path *__drbd_next_pat | |||
return drbd_path; | return drbd_path; | |||
} | } | |||
+static void dtt_cork(struct socket *socket) | +static void dtt_cork(struct socket *socket) | |||
+{ | +{ | |||
+ int val = 1; | + int val = 1; | |||
+ (void)kernel_setsockopt(socket, SOL_TCP, TCP_CORK, (char *)&val, | + (void)kernel_setsockopt(socket, SOL_TCP, TCP_CORK, (char *)&val, | |||
+ sizeof(val)); | + sizeof(val)); | |||
+} | +} | |||
skipping to change at line 183 | skipping to change at line 183 | |||
if (socket->sk->sk_socket) | if (socket->sk->sk_socket) | |||
set_bit(SOCK_NOSPACE, &socket->sk->sk_socket->flags); | set_bit(SOCK_NOSPACE, &socket->sk->sk_socket->flags); | |||
break; | break; | |||
case QUICKACK: | case QUICKACK: | |||
- tcp_sock_set_quickack(socket->sk, 2); | - tcp_sock_set_quickack(socket->sk, 2); | |||
+ dtt_quickack(socket); | + dtt_quickack(socket); | |||
break; | break; | |||
default: /* not implemented, but should not trigger error handling */ | default: /* not implemented, but should not trigger error handling */ | |||
return true; | return true; | |||
--- drbd_state.c | --- drbd_state.c | |||
+++ /tmp/cocci-output-400457-7e8e42-drbd_state.c | ||||
@@ -147,7 +147,7 @@ static bool may_be_up_to_date(struct drb | @@ -147,7 +147,7 @@ static bool may_be_up_to_date(struct drb | |||
case D_DISKLESS: | case D_DISKLESS: | |||
if (!(peer_md->flags & MDF_PEER_DEVICE_SEEN)) | if (!(peer_md->flags & MDF_PEER_DEVICE_SEEN)) | |||
continue; | continue; | |||
- fallthrough; | - fallthrough; | |||
+ ;/* fallthrough */ | + ;/* fallthrough */ | |||
case D_ATTACHING: | case D_ATTACHING: | |||
case D_DETACHING: | case D_DETACHING: | |||
case D_FAILED: | case D_FAILED: | |||
--- drbd_sender.c | --- drbd_sender.c | |||
+++ /tmp/cocci-output-400457-32b65d-drbd_sender.c | ||||
@@ -23,7 +23,6 @@ | @@ -23,7 +23,6 @@ | |||
#include <linux/random.h> | #include <linux/random.h> | |||
#include <linux/scatterlist.h> | #include <linux/scatterlist.h> | |||
#include <linux/overflow.h> | #include <linux/overflow.h> | |||
-#include <linux/part_stat.h> | -#include <linux/part_stat.h> | |||
#include "drbd_int.h" | #include "drbd_int.h" | |||
#include "drbd_protocol.h" | #include "drbd_protocol.h" | |||
@@ -2063,7 +2062,9 @@ void drbd_rs_controller_reset(struct drb | @@ -2063,7 +2062,9 @@ void drbd_rs_controller_reset(struct drb | |||
atomic_set(&peer_device->device->rs_sect_ev, 0); /* FIXME: ??? */ | atomic_set(&peer_device->device->rs_sect_ev, 0); /* FIXME: ??? */ | |||
skipping to change at line 224 | skipping to change at line 224 | |||
@@ -2777,7 +2778,7 @@ static void re_init_if_first_write(struc | @@ -2777,7 +2778,7 @@ static void re_init_if_first_write(struc | |||
connection->send.current_epoch_writes = 0; | connection->send.current_epoch_writes = 0; | |||
connection->send.last_sent_barrier_jif = jiffies; | connection->send.last_sent_barrier_jif = jiffies; | |||
connection->send.current_dagtag_sector = | connection->send.current_dagtag_sector = | |||
- connection->resource->dagtag_sector - ((BIO_MAX_VECS << P AGE_SHIFT) >> 9) - 1; | - connection->resource->dagtag_sector - ((BIO_MAX_VECS << P AGE_SHIFT) >> 9) - 1; | |||
+ connection->resource->dagtag_sector - ((BIO_MAX_PAGES << PAGE_SHIFT) >> 9) - 1; | + connection->resource->dagtag_sector - ((BIO_MAX_PAGES << PAGE_SHIFT) >> 9) - 1; | |||
} | } | |||
} | } | |||
--- drbd_req.c | --- drbd_req.c | |||
+++ /tmp/cocci-output-400457-61fc29-drbd_req.c | ||||
@@ -24,7 +24,7 @@ static struct drbd_request *drbd_req_new | @@ -24,7 +24,7 @@ static struct drbd_request *drbd_req_new | |||
{ | { | |||
struct drbd_request *req; | struct drbd_request *req; | |||
- req = mempool_alloc(&drbd_request_mempool, GFP_NOIO); | - req = mempool_alloc(&drbd_request_mempool, GFP_NOIO); | |||
+ req = mempool_alloc(drbd_request_mempool, GFP_NOIO); | + req = mempool_alloc(drbd_request_mempool, GFP_NOIO); | |||
if (!req) | if (!req) | |||
return NULL; | return NULL; | |||
@@ -64,7 +64,7 @@ static struct drbd_request *drbd_req_new | @@ -64,7 +64,7 @@ static struct drbd_request *drbd_req_new | |||
skipping to change at line 254 | skipping to change at line 254 | |||
start_new_tl_epoch(device->resource); | start_new_tl_epoch(device->resource); | |||
/* Update disk stats */ | /* Update disk stats */ | |||
- bio_end_io_acct(req->master_bio, req->start_jif); | - bio_end_io_acct(req->master_bio, req->start_jif); | |||
+ generic_end_io_acct(req->device->rq_queue, | + generic_end_io_acct(req->device->rq_queue, | |||
+ bio_data_dir(req->master_bio), | + bio_data_dir(req->master_bio), | |||
+ &req->device->vdisk->part0, req->start_jif); | + &req->device->vdisk->part0, req->start_jif); | |||
if (device->cached_err_io) { | if (device->cached_err_io) { | |||
ok = 0; | ok = 0; | |||
@@ -965,7 +967,7 @@ void __req_mod(struct drbd_request *req, | @@ -974,7 +976,7 @@ void __req_mod(struct drbd_request *req, | |||
case READ_COMPLETED_WITH_ERROR: | case READ_COMPLETED_WITH_ERROR: | |||
drbd_set_all_out_of_sync(device, req->i.sector, req->i.size); | drbd_set_all_out_of_sync(device, req->i.sector, req->i.size); | |||
drbd_report_io_error(device, req); | drbd_report_io_error(device, req); | |||
- fallthrough; | - fallthrough; | |||
+ ;/* fallthrough */ | + ;/* fallthrough */ | |||
case READ_AHEAD_COMPLETED_WITH_ERROR: | case READ_AHEAD_COMPLETED_WITH_ERROR: | |||
mod_rq_state(req, m, peer_device, RQ_LOCAL_PENDING, RQ_LOCAL_COMP LETED); | mod_rq_state(req, m, peer_device, RQ_LOCAL_PENDING, RQ_LOCAL_COMP LETED); | |||
break; | break; | |||
@@ -1267,7 +1269,7 @@ static bool remote_due_to_read_balancing | @@ -1276,7 +1278,7 @@ static bool remote_due_to_read_balancing | |||
switch (rbm) { | switch (rbm) { | |||
case RB_CONGESTED_REMOTE: | case RB_CONGESTED_REMOTE: | |||
return bdi_read_congested( | return bdi_read_congested( | |||
- device->ldev->backing_bdev->bd_disk->bdi); | - device->ldev->backing_bdev->bd_disk->bdi); | |||
+ device->ldev->backing_bdev->bd_disk->queue->backing_dev_i nfo); | + device->ldev->backing_bdev->bd_disk->queue->backing_dev_i nfo); | |||
case RB_LEAST_PENDING: | case RB_LEAST_PENDING: | |||
return atomic_read(&device->local_cnt) > | return atomic_read(&device->local_cnt) > | |||
atomic_read(&peer_device->ap_pending_cnt) + atomic_read(& peer_device->rs_pending_cnt); | atomic_read(&peer_device->ap_pending_cnt) + atomic_read(& peer_device->rs_pending_cnt); | |||
@@ -1644,7 +1646,7 @@ drbd_submit_req_private_bio(struct drbd_ | @@ -1653,7 +1655,7 @@ drbd_submit_req_private_bio(struct drbd_ | |||
} else if (bio_op(bio) == REQ_OP_DISCARD) { | } else if (bio_op(bio) == REQ_OP_DISCARD) { | |||
drbd_process_discard_or_zeroes_req(req, EE_TRIM); | drbd_process_discard_or_zeroes_req(req, EE_TRIM); | |||
} else { | } else { | |||
- submit_bio_noacct(bio); | - submit_bio_noacct(bio); | |||
+ generic_make_request(bio); | + generic_make_request(bio); | |||
} | } | |||
put_ldev(device); | put_ldev(device); | |||
} else { | } else { | |||
@@ -1705,10 +1707,14 @@ drbd_request_prepare(struct drbd_device | @@ -1714,10 +1716,14 @@ drbd_request_prepare(struct drbd_device | |||
} | } | |||
/* Update disk stats */ | /* Update disk stats */ | |||
- req->start_jif = bio_start_io_acct(req->master_bio); | - req->start_jif = bio_start_io_acct(req->master_bio); | |||
+ req->start_jif = start_jif; | + req->start_jif = start_jif; | |||
+ generic_start_io_acct(req->device->rq_queue, | + generic_start_io_acct(req->device->rq_queue, | |||
+ bio_data_dir(req->master_bio), req->i.size >> 9, | + bio_data_dir(req->master_bio), req->i.size >> 9, | |||
+ &req->device->vdisk->part0); | + &req->device->vdisk->part0); | |||
if (get_ldev(device)) { | if (get_ldev(device)) { | |||
- req->private_bio = bio_clone_fast(bio, GFP_NOIO, &drbd_io_bio_se t); | - req->private_bio = bio_clone_fast(bio, GFP_NOIO, &drbd_io_bio_se t); | |||
+ req->private_bio = bio_clone_fast(bio, GFP_NOIO, | + req->private_bio = bio_clone_fast(bio, GFP_NOIO, | |||
+ drbd_io_bio_set); | + drbd_io_bio_set); | |||
req->private_bio->bi_private = req; | req->private_bio->bi_private = req; | |||
req->private_bio->bi_end_io = drbd_request_endio; | req->private_bio->bi_end_io = drbd_request_endio; | |||
} | } | |||
@@ -2396,9 +2402,9 @@ static bool drbd_fail_request_early(stru | @@ -2405,9 +2411,9 @@ static bool drbd_fail_request_early(stru | |||
return false; | return false; | |||
} | } | |||
-void drbd_submit_bio(struct bio *bio) | -void drbd_submit_bio(struct bio *bio) | |||
+blk_qc_t drbd_make_request(struct request_queue *q, struct bio *bio) | +blk_qc_t drbd_make_request(struct request_queue *q, struct bio *bio) | |||
{ | { | |||
- struct drbd_device *device = bio->bi_bdev->bd_disk->private_data; | - struct drbd_device *device = bio->bi_bdev->bd_disk->private_data; | |||
+ struct drbd_device *device = bio->bi_disk->private_data; | + struct drbd_device *device = bio->bi_disk->private_data; | |||
#ifdef CONFIG_DRBD_TIMING_STATS | #ifdef CONFIG_DRBD_TIMING_STATS | |||
ktime_t start_kt; | ktime_t start_kt; | |||
#endif | #endif | |||
@@ -2407,15 +2413,15 @@ void drbd_submit_bio(struct bio *bio) | @@ -2416,15 +2422,15 @@ void drbd_submit_bio(struct bio *bio) | |||
if (drbd_fail_request_early(device, bio)) { | if (drbd_fail_request_early(device, bio)) { | |||
bio->bi_status = BLK_STS_IOERR; | bio->bi_status = BLK_STS_IOERR; | |||
bio_endio(bio); | bio_endio(bio); | |||
- return; | - return; | |||
+ return BLK_QC_T_NONE; | + return BLK_QC_T_NONE; | |||
} | } | |||
- blk_queue_split(&bio); | - blk_queue_split(&bio); | |||
+ blk_queue_split(bio->bi_disk->queue, &bio); | + blk_queue_split(bio->bi_disk->queue, &bio); | |||
if (device->cached_err_io) { | if (device->cached_err_io) { | |||
bio->bi_status = BLK_STS_IOERR; | bio->bi_status = BLK_STS_IOERR; | |||
bio_endio(bio); | bio_endio(bio); | |||
- return; | - return; | |||
+ return BLK_QC_T_NONE; | + return BLK_QC_T_NONE; | |||
} | } | |||
/* This is both an optimization: READ of size 0, nothing to do | /* This is both an optimization: READ of size 0, nothing to do | |||
@@ -2427,13 +2433,14 @@ void drbd_submit_bio(struct bio *bio) | @@ -2436,13 +2442,14 @@ void drbd_submit_bio(struct bio *bio) | |||
if (bio_op(bio) == REQ_OP_READ && bio->bi_iter.bi_size == 0) { | if (bio_op(bio) == REQ_OP_READ && bio->bi_iter.bi_size == 0) { | |||
WARN_ONCE(1, "size zero read from upper layers"); | WARN_ONCE(1, "size zero read from upper layers"); | |||
bio_endio(bio); | bio_endio(bio); | |||
- return; | - return; | |||
+ return BLK_QC_T_NONE; | + return BLK_QC_T_NONE; | |||
} | } | |||
ktime_get_accounting(start_kt); | ktime_get_accounting(start_kt); | |||
start_jif = jiffies; | start_jif = jiffies; | |||
__drbd_make_request(device, bio, start_kt, start_jif); | __drbd_make_request(device, bio, start_kt, start_jif); | |||
+ return BLK_QC_T_NONE; | + return BLK_QC_T_NONE; | |||
} | } | |||
static unsigned long time_min_in_future(unsigned long now, | static unsigned long time_min_in_future(unsigned long now, | |||
@@ -2709,7 +2716,7 @@ void drbd_handle_io_error_(struct drbd_d | @@ -2718,7 +2725,7 @@ void drbd_handle_io_error_(struct drbd_d | |||
} | } | |||
break; | break; | |||
} | } | |||
- fallthrough; /* for DRBD_META_IO_ERROR or DRBD_FORCE_DETACH */ | - fallthrough; /* for DRBD_META_IO_ERROR or DRBD_FORCE_DETACH */ | |||
+ ;/* fallthrough */ /* for DRBD_META_IO_ERROR or DRBD_FORCE_D ETACH */ | + ;/* fallthrough */ /* for DRBD_META_IO_ERROR or DRBD_FORCE_D ETACH */ | |||
case EP_DETACH: | case EP_DETACH: | |||
case EP_CALL_HELPER: | case EP_CALL_HELPER: | |||
/* Force-detach is not really an IO error, but rather a | /* Force-detach is not really an IO error, but rather a | |||
--- drbd_receiver.c | --- drbd_receiver.c | |||
+++ /tmp/cocci-output-400457-023e5d-drbd_receiver.c | ||||
@@ -32,7 +32,6 @@ | @@ -32,7 +32,6 @@ | |||
#include <linux/random.h> | #include <linux/random.h> | |||
#include <net/ipv6.h> | #include <net/ipv6.h> | |||
#include <linux/scatterlist.h> | #include <linux/scatterlist.h> | |||
-#include <linux/part_stat.h> | -#include <linux/part_stat.h> | |||
#include "drbd_int.h" | #include "drbd_int.h" | |||
#include "drbd_protocol.h" | #include "drbd_protocol.h" | |||
@@ -577,7 +576,7 @@ drbd_alloc_peer_req(struct drbd_peer_dev | @@ -577,7 +576,7 @@ drbd_alloc_peer_req(struct drbd_peer_dev | |||
if (drbd_insert_fault(device, DRBD_FAULT_AL_EE)) | if (drbd_insert_fault(device, DRBD_FAULT_AL_EE)) | |||
skipping to change at line 532 | skipping to change at line 532 | |||
+ int ____rv2; | + int ____rv2; | |||
+ ____rv2 = sched_setscheduler(current, SCHED_RR, ¶m); | + ____rv2 = sched_setscheduler(current, SCHED_RR, ¶m); | |||
+ if (____rv2 < 0) | + if (____rv2 < 0) | |||
+ drbd_err(connection, | + drbd_err(connection, | |||
+ "drbd_ack_receiver: ERROR set priority, ret=%d\n", | + "drbd_ack_receiver: ERROR set priority, ret=%d\n", | |||
+ ____rv2); | + ____rv2); | |||
while (get_t_state(thi) == RUNNING) { | while (get_t_state(thi) == RUNNING) { | |||
drbd_thread_current_set_cpu(thi); | drbd_thread_current_set_cpu(thi); | |||
--- drbd_nl.c | --- drbd_nl.c | |||
+++ /tmp/cocci-output-400457-ba6afa-drbd_nl.c | ||||
@@ -114,7 +114,7 @@ static int drbd_msg_put_info(struct sk_b | @@ -114,7 +114,7 @@ static int drbd_msg_put_info(struct sk_b | |||
if (!info || !info[0]) | if (!info || !info[0]) | |||
return 0; | return 0; | |||
- nla = nla_nest_start_noflag(skb, DRBD_NLA_CFG_REPLY); | - nla = nla_nest_start_noflag(skb, DRBD_NLA_CFG_REPLY); | |||
+ nla = nla_nest_start(skb, DRBD_NLA_CFG_REPLY); | + nla = nla_nest_start(skb, DRBD_NLA_CFG_REPLY); | |||
if (!nla) | if (!nla) | |||
return err; | return err; | |||
@@ -141,7 +141,7 @@ static int drbd_msg_sprintf_info(struct | @@ -141,7 +141,7 @@ static int drbd_msg_sprintf_info(struct | |||
skipping to change at line 644 | skipping to change at line 644 | |||
@@ -5641,7 +5658,7 @@ int drbd_adm_dump_connections_done(struc | @@ -5641,7 +5658,7 @@ int drbd_adm_dump_connections_done(struc | |||
static int connection_paths_to_skb(struct sk_buff *skb, struct drbd_connection *connection) | static int connection_paths_to_skb(struct sk_buff *skb, struct drbd_connection *connection) | |||
{ | { | |||
struct drbd_path *path; | struct drbd_path *path; | |||
- struct nlattr *tla = nla_nest_start_noflag(skb, DRBD_NLA_PATH_PARMS); | - struct nlattr *tla = nla_nest_start_noflag(skb, DRBD_NLA_PATH_PARMS); | |||
+ struct nlattr *tla = nla_nest_start(skb, DRBD_NLA_PATH_PARMS); | + struct nlattr *tla = nla_nest_start(skb, DRBD_NLA_PATH_PARMS); | |||
if (!tla) | if (!tla) | |||
goto nla_put_failure; | goto nla_put_failure; | |||
--- drbd_nla.c | --- drbd_nla.c | |||
+++ /tmp/cocci-output-400457-82810f-drbd_nla.c | ||||
@@ -35,8 +35,7 @@ int drbd_nla_parse_nested(struct nlattr | @@ -35,8 +35,7 @@ int drbd_nla_parse_nested(struct nlattr | |||
err = drbd_nla_check_mandatory(maxtype, nla); | err = drbd_nla_check_mandatory(maxtype, nla); | |||
if (!err) | if (!err) | |||
- err = nla_parse_nested_deprecated(tb, maxtype, nla, policy, | - err = nla_parse_nested_deprecated(tb, maxtype, nla, policy, | |||
- NULL); | - NULL); | |||
+ err = nla_parse_nested(tb, maxtype, nla, policy, NULL); | + err = nla_parse_nested(tb, maxtype, nla, policy, NULL); | |||
return err; | return err; | |||
} | } | |||
--- drbd_main.c | --- drbd_main.c | |||
+++ /tmp/cocci-output-400457-a0b63a-drbd_main.c | ||||
@@ -70,6 +70,7 @@ MODULE_PARM_DESC(minor_count, "Approxima | @@ -70,6 +70,7 @@ MODULE_PARM_DESC(minor_count, "Approxima | |||
MODULE_ALIAS_BLOCKDEV_MAJOR(DRBD_MAJOR); | MODULE_ALIAS_BLOCKDEV_MAJOR(DRBD_MAJOR); | |||
#include <linux/moduleparam.h> | #include <linux/moduleparam.h> | |||
+#include <linux/vermagic.h> | +#include <linux/vermagic.h> | |||
#ifdef CONFIG_DRBD_FAULT_INJECTION | #ifdef CONFIG_DRBD_FAULT_INJECTION | |||
int drbd_enable_faults; | int drbd_enable_faults; | |||
@@ -141,15 +142,14 @@ struct kmem_cache *drbd_request_cache; | @@ -141,15 +142,14 @@ struct kmem_cache *drbd_request_cache; | |||
struct kmem_cache *drbd_ee_cache; /* peer requests */ | struct kmem_cache *drbd_ee_cache; /* peer requests */ | |||
skipping to change at line 1001 | skipping to change at line 1001 | |||
+ | + | |||
static int __init drbd_init(void) | static int __init drbd_init(void) | |||
{ | { | |||
int err; | int err; | |||
+ if (double_check_for_kabi_breakage()) | + if (double_check_for_kabi_breakage()) | |||
+ return -EINVAL; | + return -EINVAL; | |||
initialize_kref_debugging(); | initialize_kref_debugging(); | |||
--- drbd_interval.c | --- drbd_interval.c | |||
+++ /tmp/cocci-output-400457-6158af-drbd_interval.c | ||||
@@ -13,10 +13,32 @@ sector_t interval_end(struct rb_node *no | @@ -13,10 +13,32 @@ sector_t interval_end(struct rb_node *no | |||
return this->end; | return this->end; | |||
} | } | |||
-#define NODE_END(node) ((node)->sector + ((node)->size >> 9)) | -#define NODE_END(node) ((node)->sector + ((node)->size >> 9)) | |||
+/** | +/** | |||
+ * compute_subtree_last - compute end of @node | + * compute_subtree_last - compute end of @node | |||
+ * | + * | |||
+ * The end of an interval is the highest (start + (size >> 9)) value of this | + * The end of an interval is the highest (start + (size >> 9)) value of this | |||
+ * node and of its children. Called for @node and its parents whenever the end | + * node and of its children. Called for @node and its parents whenever the end | |||
skipping to change at line 1039 | skipping to change at line 1039 | |||
+} | +} | |||
#define _STATIC static | #define _STATIC static | |||
-RB_DECLARE_CALLBACKS_MAX(_STATIC, augment_callbacks, struct drbd_interval, rb, | -RB_DECLARE_CALLBACKS_MAX(_STATIC, augment_callbacks, struct drbd_interval, rb, | |||
- sector_t, end, NODE_END); | - sector_t, end, NODE_END); | |||
+RB_DECLARE_CALLBACKS(_STATIC, augment_callbacks, struct drbd_interval, rb, | +RB_DECLARE_CALLBACKS(_STATIC, augment_callbacks, struct drbd_interval, rb, | |||
+ sector_t, end, compute_subtree_last); | + sector_t, end, compute_subtree_last); | |||
/* | /* | |||
* drbd_insert_interval - insert a new interval into a tree | * drbd_insert_interval - insert a new interval into a tree | |||
--- drbd_debugfs.c | --- drbd_debugfs.c | |||
+++ /tmp/cocci-output-400457-b01b4a-drbd_debugfs.c | ||||
@@ -1827,6 +1827,53 @@ static const struct file_operations drbd | @@ -1827,6 +1827,53 @@ static const struct file_operations drbd | |||
static int drbd_compat_show(struct seq_file *m, void *ignored) | static int drbd_compat_show(struct seq_file *m, void *ignored) | |||
{ | { | |||
+ seq_puts(m, "blk_queue_split__yes_has_two_parameters\n"); | + seq_puts(m, "blk_queue_split__yes_has_two_parameters\n"); | |||
+ seq_puts(m, "bio_alloc__no_has_4_params\n"); | + seq_puts(m, "bio_alloc__no_has_4_params\n"); | |||
+ seq_puts(m, "bio_bi_bdev__no_present\n"); | + seq_puts(m, "bio_bi_bdev__no_present\n"); | |||
+ seq_puts(m, "ib_device__no_has_ops\n"); | + seq_puts(m, "ib_device__no_has_ops\n"); | |||
+ seq_puts(m, "ib_post__no_const\n"); | + seq_puts(m, "ib_post__no_const\n"); | |||
+ seq_puts(m, "blk_alloc_disk__no_present\n"); | + seq_puts(m, "blk_alloc_disk__no_present\n"); | |||
skipping to change at line 1095 | skipping to change at line 1095 | |||
+ seq_puts(m, "gendisk_part0__no_is_block_device\n"); | + seq_puts(m, "gendisk_part0__no_is_block_device\n"); | |||
+ seq_puts(m, "bio_max_vecs__no_present\n"); | + seq_puts(m, "bio_max_vecs__no_present\n"); | |||
+ seq_puts(m, "fs_dax_get_by_bdev__no_takes_start_off\n"); | + seq_puts(m, "fs_dax_get_by_bdev__no_takes_start_off\n"); | |||
+ seq_puts(m, "add_disk__no_returns_int\n"); | + seq_puts(m, "add_disk__no_returns_int\n"); | |||
+ seq_puts(m, "bdev_nr_sectors__no_present\n"); | + seq_puts(m, "bdev_nr_sectors__no_present\n"); | |||
+ seq_puts(m, "genhd_fl_no_part__no_present\n"); | + seq_puts(m, "genhd_fl_no_part__no_present\n"); | |||
return 0; | return 0; | |||
} | } | |||
--- drbd_dax_pmem.c | --- drbd_dax_pmem.c | |||
+++ /tmp/cocci-output-400457-090d60-drbd_dax_pmem.c | ||||
@@ -58,9 +58,8 @@ int drbd_dax_open(struct drbd_backing_de | @@ -58,9 +58,8 @@ int drbd_dax_open(struct drbd_backing_de | |||
{ | { | |||
struct dax_device *dax_dev; | struct dax_device *dax_dev; | |||
int err; | int err; | |||
- u64 part_off; | - u64 part_off; | |||
- dax_dev = fs_dax_get_by_bdev(bdev->md_bdev, &part_off); | - dax_dev = fs_dax_get_by_bdev(bdev->md_bdev, &part_off); | |||
+ dax_dev = fs_dax_get_by_bdev(bdev->md_bdev); | + dax_dev = fs_dax_get_by_bdev(bdev->md_bdev); | |||
if (!dax_dev) | if (!dax_dev) | |||
return -ENODEV; | return -ENODEV; | |||
--- drbd_bitmap.c | --- drbd_bitmap.c | |||
+++ /tmp/cocci-output-400457-e4d337-drbd_bitmap.c | ||||
@@ -365,7 +365,8 @@ static struct page **bm_realloc_pages(st | @@ -365,7 +365,8 @@ static struct page **bm_realloc_pages(st | |||
new_pages = kzalloc(bytes, GFP_NOIO | __GFP_NOWARN); | new_pages = kzalloc(bytes, GFP_NOIO | __GFP_NOWARN); | |||
if (!new_pages) { | if (!new_pages) { | |||
new_pages = __vmalloc(bytes, | new_pages = __vmalloc(bytes, | |||
- GFP_NOIO | __GFP_HIGHMEM | __GFP_ZERO); | - GFP_NOIO | __GFP_HIGHMEM | __GFP_ZERO); | |||
+ GFP_NOIO | __GFP_HIGHMEM | __GFP_ZERO, | + GFP_NOIO | __GFP_HIGHMEM | __GFP_ZERO, | |||
+ PAGE_KERNEL); | + PAGE_KERNEL); | |||
if (!new_pages) | if (!new_pages) | |||
return NULL; | return NULL; | |||
} | } | |||
skipping to change at line 1156 | skipping to change at line 1156 | |||
/* bio_add_page of a single page to an empty bio will always succeed, | /* bio_add_page of a single page to an empty bio will always succeed, | |||
* according to api. Do we want to assert that? */ | * according to api. Do we want to assert that? */ | |||
bio_add_page(bio, page, len, 0); | bio_add_page(bio, page, len, 0); | |||
bio->bi_private = ctx; | bio->bi_private = ctx; | |||
bio->bi_end_io = drbd_bm_endio; | bio->bi_end_io = drbd_bm_endio; | |||
+ bio->bi_opf = op; | + bio->bi_opf = op; | |||
if (drbd_insert_fault(device, (op == REQ_OP_WRITE) ? DRBD_FAULT_MD_WR : D RBD_FAULT_MD_RD)) { | if (drbd_insert_fault(device, (op == REQ_OP_WRITE) ? DRBD_FAULT_MD_WR : D RBD_FAULT_MD_RD)) { | |||
bio->bi_status = BLK_STS_IOERR; | bio->bi_status = BLK_STS_IOERR; | |||
--- drbd_actlog.c | --- drbd_actlog.c | |||
+++ /tmp/cocci-output-400457-be657d-drbd_actlog.c | ||||
@@ -94,14 +94,15 @@ static int _drbd_md_sync_page_io(struct | @@ -94,14 +94,15 @@ static int _drbd_md_sync_page_io(struct | |||
device->md_io.done = 0; | device->md_io.done = 0; | |||
device->md_io.error = -ENODEV; | device->md_io.error = -ENODEV; | |||
- bio = bio_alloc_bioset(bdev->md_bdev, 1, op | op_flags, | - bio = bio_alloc_bioset(bdev->md_bdev, 1, op | op_flags, | |||
- GFP_NOIO, &drbd_md_io_bio_set); | - GFP_NOIO, &drbd_md_io_bio_set); | |||
+ bio = bio_alloc_bioset(GFP_NOIO, 1, drbd_md_io_bio_set); | + bio = bio_alloc_bioset(GFP_NOIO, 1, drbd_md_io_bio_set); | |||
+ bio_set_dev(bio, bdev->md_bdev); | + bio_set_dev(bio, bdev->md_bdev); | |||
bio->bi_iter.bi_sector = sector; | bio->bi_iter.bi_sector = sector; | |||
err = -EIO; | err = -EIO; | |||
End of changes. 23 change blocks. | ||||
23 lines changed or deleted | 8 lines changed or added |