drbd: Move enum write_ordering_e to drbd.h
Also change the enum values to all-capital letters. Signed-off-by: Philipp Reisner <philipp.reisner@linbit.com> Signed-off-by: Lars Ellenberg <lars.ellenberg@linbit.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
Родитель
5dd2ca1912
Коммит
f6ba863639
|
@ -632,12 +632,6 @@ struct bm_io_work {
|
||||||
void (*done)(struct drbd_device *device, int rv);
|
void (*done)(struct drbd_device *device, int rv);
|
||||||
};
|
};
|
||||||
|
|
||||||
enum write_ordering_e {
|
|
||||||
WO_none,
|
|
||||||
WO_drain_io,
|
|
||||||
WO_bdev_flush,
|
|
||||||
};
|
|
||||||
|
|
||||||
struct fifo_buffer {
|
struct fifo_buffer {
|
||||||
unsigned int head_index;
|
unsigned int head_index;
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
|
|
|
@ -2590,7 +2590,7 @@ struct drbd_resource *drbd_create_resource(const char *name)
|
||||||
kref_init(&resource->kref);
|
kref_init(&resource->kref);
|
||||||
idr_init(&resource->devices);
|
idr_init(&resource->devices);
|
||||||
INIT_LIST_HEAD(&resource->connections);
|
INIT_LIST_HEAD(&resource->connections);
|
||||||
resource->write_ordering = WO_bdev_flush;
|
resource->write_ordering = WO_BDEV_FLUSH;
|
||||||
list_add_tail_rcu(&resource->resources, &drbd_resources);
|
list_add_tail_rcu(&resource->resources, &drbd_resources);
|
||||||
mutex_init(&resource->conf_update);
|
mutex_init(&resource->conf_update);
|
||||||
mutex_init(&resource->adm_mutex);
|
mutex_init(&resource->adm_mutex);
|
||||||
|
|
|
@ -1418,7 +1418,7 @@ int drbd_adm_disk_opts(struct sk_buff *skb, struct genl_info *info)
|
||||||
set_bit(MD_NO_FUA, &device->flags);
|
set_bit(MD_NO_FUA, &device->flags);
|
||||||
|
|
||||||
if (write_ordering_changed(old_disk_conf, new_disk_conf))
|
if (write_ordering_changed(old_disk_conf, new_disk_conf))
|
||||||
drbd_bump_write_ordering(device->resource, NULL, WO_bdev_flush);
|
drbd_bump_write_ordering(device->resource, NULL, WO_BDEV_FLUSH);
|
||||||
|
|
||||||
drbd_md_sync(device);
|
drbd_md_sync(device);
|
||||||
|
|
||||||
|
@ -1727,7 +1727,7 @@ int drbd_adm_attach(struct sk_buff *skb, struct genl_info *info)
|
||||||
new_disk_conf = NULL;
|
new_disk_conf = NULL;
|
||||||
new_plan = NULL;
|
new_plan = NULL;
|
||||||
|
|
||||||
drbd_bump_write_ordering(device->resource, device->ldev, WO_bdev_flush);
|
drbd_bump_write_ordering(device->resource, device->ldev, WO_BDEV_FLUSH);
|
||||||
|
|
||||||
if (drbd_md_test_flag(device->ldev, MDF_CRASHED_PRIMARY))
|
if (drbd_md_test_flag(device->ldev, MDF_CRASHED_PRIMARY))
|
||||||
set_bit(CRASHED_PRIMARY, &device->flags);
|
set_bit(CRASHED_PRIMARY, &device->flags);
|
||||||
|
|
|
@ -245,9 +245,9 @@ static int drbd_seq_show(struct seq_file *seq, void *v)
|
||||||
char wp;
|
char wp;
|
||||||
|
|
||||||
static char write_ordering_chars[] = {
|
static char write_ordering_chars[] = {
|
||||||
[WO_none] = 'n',
|
[WO_NONE] = 'n',
|
||||||
[WO_drain_io] = 'd',
|
[WO_DRAIN_IO] = 'd',
|
||||||
[WO_bdev_flush] = 'f',
|
[WO_BDEV_FLUSH] = 'f',
|
||||||
};
|
};
|
||||||
|
|
||||||
seq_printf(seq, "version: " REL_VERSION " (api:%d/proto:%d-%d)\n%s\n",
|
seq_printf(seq, "version: " REL_VERSION " (api:%d/proto:%d-%d)\n%s\n",
|
||||||
|
|
|
@ -1178,7 +1178,7 @@ static void drbd_flush(struct drbd_connection *connection)
|
||||||
struct drbd_peer_device *peer_device;
|
struct drbd_peer_device *peer_device;
|
||||||
int vnr;
|
int vnr;
|
||||||
|
|
||||||
if (connection->resource->write_ordering >= WO_bdev_flush) {
|
if (connection->resource->write_ordering >= WO_BDEV_FLUSH) {
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
idr_for_each_entry(&connection->peer_devices, peer_device, vnr) {
|
idr_for_each_entry(&connection->peer_devices, peer_device, vnr) {
|
||||||
struct drbd_device *device = peer_device->device;
|
struct drbd_device *device = peer_device->device;
|
||||||
|
@ -1203,7 +1203,7 @@ static void drbd_flush(struct drbd_connection *connection)
|
||||||
/* would rather check on EOPNOTSUPP, but that is not reliable.
|
/* would rather check on EOPNOTSUPP, but that is not reliable.
|
||||||
* don't try again for ANY return value != 0
|
* don't try again for ANY return value != 0
|
||||||
* if (rv == -EOPNOTSUPP) */
|
* if (rv == -EOPNOTSUPP) */
|
||||||
drbd_bump_write_ordering(connection->resource, NULL, WO_drain_io);
|
drbd_bump_write_ordering(connection->resource, NULL, WO_DRAIN_IO);
|
||||||
}
|
}
|
||||||
put_ldev(device);
|
put_ldev(device);
|
||||||
kref_put(&device->kref, drbd_destroy_device);
|
kref_put(&device->kref, drbd_destroy_device);
|
||||||
|
@ -1299,10 +1299,10 @@ max_allowed_wo(struct drbd_backing_dev *bdev, enum write_ordering_e wo)
|
||||||
|
|
||||||
dc = rcu_dereference(bdev->disk_conf);
|
dc = rcu_dereference(bdev->disk_conf);
|
||||||
|
|
||||||
if (wo == WO_bdev_flush && !dc->disk_flushes)
|
if (wo == WO_BDEV_FLUSH && !dc->disk_flushes)
|
||||||
wo = WO_drain_io;
|
wo = WO_DRAIN_IO;
|
||||||
if (wo == WO_drain_io && !dc->disk_drain)
|
if (wo == WO_DRAIN_IO && !dc->disk_drain)
|
||||||
wo = WO_none;
|
wo = WO_NONE;
|
||||||
|
|
||||||
return wo;
|
return wo;
|
||||||
}
|
}
|
||||||
|
@ -1319,13 +1319,13 @@ void drbd_bump_write_ordering(struct drbd_resource *resource, struct drbd_backin
|
||||||
enum write_ordering_e pwo;
|
enum write_ordering_e pwo;
|
||||||
int vnr;
|
int vnr;
|
||||||
static char *write_ordering_str[] = {
|
static char *write_ordering_str[] = {
|
||||||
[WO_none] = "none",
|
[WO_NONE] = "none",
|
||||||
[WO_drain_io] = "drain",
|
[WO_DRAIN_IO] = "drain",
|
||||||
[WO_bdev_flush] = "flush",
|
[WO_BDEV_FLUSH] = "flush",
|
||||||
};
|
};
|
||||||
|
|
||||||
pwo = resource->write_ordering;
|
pwo = resource->write_ordering;
|
||||||
if (wo != WO_bdev_flush)
|
if (wo != WO_BDEV_FLUSH)
|
||||||
wo = min(pwo, wo);
|
wo = min(pwo, wo);
|
||||||
rcu_read_lock();
|
rcu_read_lock();
|
||||||
idr_for_each_entry(&resource->devices, device, vnr) {
|
idr_for_each_entry(&resource->devices, device, vnr) {
|
||||||
|
@ -1343,7 +1343,7 @@ void drbd_bump_write_ordering(struct drbd_resource *resource, struct drbd_backin
|
||||||
rcu_read_unlock();
|
rcu_read_unlock();
|
||||||
|
|
||||||
resource->write_ordering = wo;
|
resource->write_ordering = wo;
|
||||||
if (pwo != resource->write_ordering || wo == WO_bdev_flush)
|
if (pwo != resource->write_ordering || wo == WO_BDEV_FLUSH)
|
||||||
drbd_info(resource, "Method to ensure write ordering: %s\n", write_ordering_str[resource->write_ordering]);
|
drbd_info(resource, "Method to ensure write ordering: %s\n", write_ordering_str[resource->write_ordering]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1533,7 +1533,7 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
|
||||||
* Therefore we must send the barrier_ack after the barrier request was
|
* Therefore we must send the barrier_ack after the barrier request was
|
||||||
* completed. */
|
* completed. */
|
||||||
switch (connection->resource->write_ordering) {
|
switch (connection->resource->write_ordering) {
|
||||||
case WO_none:
|
case WO_NONE:
|
||||||
if (rv == FE_RECYCLED)
|
if (rv == FE_RECYCLED)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -1546,8 +1546,8 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
|
||||||
drbd_warn(connection, "Allocation of an epoch failed, slowing down\n");
|
drbd_warn(connection, "Allocation of an epoch failed, slowing down\n");
|
||||||
/* Fall through */
|
/* Fall through */
|
||||||
|
|
||||||
case WO_bdev_flush:
|
case WO_BDEV_FLUSH:
|
||||||
case WO_drain_io:
|
case WO_DRAIN_IO:
|
||||||
conn_wait_active_ee_empty(connection);
|
conn_wait_active_ee_empty(connection);
|
||||||
drbd_flush(connection);
|
drbd_flush(connection);
|
||||||
|
|
||||||
|
|
|
@ -357,6 +357,13 @@ enum drbd_timeout_flag {
|
||||||
|
|
||||||
#define UUID_JUST_CREATED ((__u64)4)
|
#define UUID_JUST_CREATED ((__u64)4)
|
||||||
|
|
||||||
|
enum write_ordering_e {
|
||||||
|
WO_NONE,
|
||||||
|
WO_DRAIN_IO,
|
||||||
|
WO_BDEV_FLUSH,
|
||||||
|
WO_BIO_BARRIER
|
||||||
|
};
|
||||||
|
|
||||||
/* magic numbers used in meta data and network packets */
|
/* magic numbers used in meta data and network packets */
|
||||||
#define DRBD_MAGIC 0x83740267
|
#define DRBD_MAGIC 0x83740267
|
||||||
#define DRBD_MAGIC_BIG 0x835a
|
#define DRBD_MAGIC_BIG 0x835a
|
||||||
|
|
Загрузка…
Ссылка в новой задаче