Commit f6ba8636 authored by Andreas Gruenbacher's avatar Andreas Gruenbacher Committed by Jens Axboe

drbd: Move enum write_ordering_e to drbd.h

Also change the enum values to all-capital letters.
Signed-off-by: default avatarPhilipp Reisner <philipp.reisner@linbit.com>
Signed-off-by: default avatarLars Ellenberg <lars.ellenberg@linbit.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 5dd2ca19
...@@ -632,12 +632,6 @@ struct bm_io_work { ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 ...@@ -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 { ...@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment