drbd: Rename kvfree_rcu() to kvfree_rcu_mightsleep()
The kvfree_rcu() macro's single-argument form is deprecated. Therefore switch to the new kvfree_rcu_mightsleep() variant. The goal is to avoid accidental use of the single-argument forms, which can introduce functionality bugs in atomic contexts and latency bugs in non-atomic contexts. Cc: Jens Axboe <axboe@kernel.dk> Cc: Philipp Reisner <philipp.reisner@linbit.com> Cc: Lars Ellenberg <lars.ellenberg@linbit.com> Begrudgingly-acked-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
This commit is contained in:
parent
fe15c26ee2
commit
a77b2109f7
@ -1615,7 +1615,7 @@ int drbd_adm_disk_opts(struct sk_buff *skb, struct genl_info *info)
|
||||
drbd_send_sync_param(peer_device);
|
||||
}
|
||||
|
||||
kvfree_rcu(old_disk_conf);
|
||||
kvfree_rcu_mightsleep(old_disk_conf);
|
||||
kfree(old_plan);
|
||||
mod_timer(&device->request_timer, jiffies + HZ);
|
||||
goto success;
|
||||
@ -2446,7 +2446,7 @@ int drbd_adm_net_opts(struct sk_buff *skb, struct genl_info *info)
|
||||
|
||||
mutex_unlock(&connection->resource->conf_update);
|
||||
mutex_unlock(&connection->data.mutex);
|
||||
kvfree_rcu(old_net_conf);
|
||||
kvfree_rcu_mightsleep(old_net_conf);
|
||||
|
||||
if (connection->cstate >= C_WF_REPORT_PARAMS) {
|
||||
struct drbd_peer_device *peer_device;
|
||||
@ -2860,7 +2860,7 @@ int drbd_adm_resize(struct sk_buff *skb, struct genl_info *info)
|
||||
new_disk_conf->disk_size = (sector_t)rs.resize_size;
|
||||
rcu_assign_pointer(device->ldev->disk_conf, new_disk_conf);
|
||||
mutex_unlock(&device->resource->conf_update);
|
||||
kvfree_rcu(old_disk_conf);
|
||||
kvfree_rcu_mightsleep(old_disk_conf);
|
||||
new_disk_conf = NULL;
|
||||
}
|
||||
|
||||
|
@ -3759,7 +3759,7 @@ static int receive_protocol(struct drbd_connection *connection, struct packet_in
|
||||
drbd_info(connection, "peer data-integrity-alg: %s\n",
|
||||
integrity_alg[0] ? integrity_alg : "(none)");
|
||||
|
||||
kvfree_rcu(old_net_conf);
|
||||
kvfree_rcu_mightsleep(old_net_conf);
|
||||
return 0;
|
||||
|
||||
disconnect_rcu_unlock:
|
||||
@ -4127,7 +4127,7 @@ static int receive_sizes(struct drbd_connection *connection, struct packet_info
|
||||
|
||||
rcu_assign_pointer(device->ldev->disk_conf, new_disk_conf);
|
||||
mutex_unlock(&connection->resource->conf_update);
|
||||
kvfree_rcu(old_disk_conf);
|
||||
kvfree_rcu_mightsleep(old_disk_conf);
|
||||
|
||||
drbd_info(device, "Peer sets u_size to %lu sectors (old: %lu)\n",
|
||||
(unsigned long)p_usize, (unsigned long)my_usize);
|
||||
|
@ -2071,7 +2071,7 @@ static int w_after_conn_state_ch(struct drbd_work *w, int unused)
|
||||
conn_free_crypto(connection);
|
||||
mutex_unlock(&connection->resource->conf_update);
|
||||
|
||||
kvfree_rcu(old_conf);
|
||||
kvfree_rcu_mightsleep(old_conf);
|
||||
}
|
||||
|
||||
if (ns_max.susp_fen) {
|
||||
|
Loading…
Reference in New Issue
Block a user