Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/drivers/block/drbd/drbd_state_change.h
26282 views
1
/* SPDX-License-Identifier: GPL-2.0-only */
2
#ifndef DRBD_STATE_CHANGE_H
3
#define DRBD_STATE_CHANGE_H
4
5
struct drbd_resource_state_change {
6
struct drbd_resource *resource;
7
enum drbd_role role[2];
8
bool susp[2];
9
bool susp_nod[2];
10
bool susp_fen[2];
11
};
12
13
struct drbd_device_state_change {
14
struct drbd_device *device;
15
enum drbd_disk_state disk_state[2];
16
};
17
18
struct drbd_connection_state_change {
19
struct drbd_connection *connection;
20
enum drbd_conns cstate[2]; /* drbd9: enum drbd_conn_state */
21
enum drbd_role peer_role[2];
22
};
23
24
struct drbd_peer_device_state_change {
25
struct drbd_peer_device *peer_device;
26
enum drbd_disk_state disk_state[2];
27
enum drbd_conns repl_state[2]; /* drbd9: enum drbd_repl_state */
28
bool resync_susp_user[2];
29
bool resync_susp_peer[2];
30
bool resync_susp_dependency[2];
31
};
32
33
struct drbd_state_change {
34
struct list_head list;
35
unsigned int n_devices;
36
unsigned int n_connections;
37
struct drbd_resource_state_change resource[1];
38
struct drbd_device_state_change *devices;
39
struct drbd_connection_state_change *connections;
40
struct drbd_peer_device_state_change *peer_devices;
41
};
42
43
extern struct drbd_state_change *remember_old_state(struct drbd_resource *, gfp_t);
44
extern void copy_old_to_new_state_change(struct drbd_state_change *);
45
extern void forget_state_change(struct drbd_state_change *);
46
47
extern int notify_resource_state_change(struct sk_buff *,
48
unsigned int,
49
void *,
50
enum drbd_notification_type type);
51
extern int notify_connection_state_change(struct sk_buff *,
52
unsigned int,
53
void *,
54
enum drbd_notification_type type);
55
extern int notify_device_state_change(struct sk_buff *,
56
unsigned int,
57
void *,
58
enum drbd_notification_type type);
59
extern int notify_peer_device_state_change(struct sk_buff *,
60
unsigned int,
61
void *,
62
enum drbd_notification_type type);
63
64
#endif /* DRBD_STATE_CHANGE_H */
65
66