提交 bde89a9e 编写于 作者: A Andreas Gruenbacher 提交者: Philipp Reisner

drbd: Rename drbd_tconn -> drbd_connection

sed -i -e 's:all_tconn:connections:g' -e 's:tconn:connection:g'
Signed-off-by: NAndreas Gruenbacher <agruen@linbit.com>
Signed-off-by: NPhilipp Reisner <philipp.reisner@linbit.com>
上级 b30ab791
...@@ -315,7 +315,7 @@ void drbd_al_begin_io_commit(struct drbd_device *device, bool delegate) ...@@ -315,7 +315,7 @@ void drbd_al_begin_io_commit(struct drbd_device *device, bool delegate)
{ {
bool locked = false; bool locked = false;
BUG_ON(delegate && current == device->tconn->worker.task); BUG_ON(delegate && current == device->connection->worker.task);
/* Serialize multiple transactions. /* Serialize multiple transactions.
* This uses test_and_set_bit, memory barrier is implicit. * This uses test_and_set_bit, memory barrier is implicit.
...@@ -354,7 +354,7 @@ void drbd_al_begin_io_commit(struct drbd_device *device, bool delegate) ...@@ -354,7 +354,7 @@ void drbd_al_begin_io_commit(struct drbd_device *device, bool delegate)
*/ */
void drbd_al_begin_io(struct drbd_device *device, struct drbd_interval *i, bool delegate) void drbd_al_begin_io(struct drbd_device *device, struct drbd_interval *i, bool delegate)
{ {
BUG_ON(delegate && current == device->tconn->worker.task); BUG_ON(delegate && current == device->connection->worker.task);
if (drbd_al_begin_io_prepare(device, i)) if (drbd_al_begin_io_prepare(device, i))
drbd_al_begin_io_commit(device, delegate); drbd_al_begin_io_commit(device, delegate);
...@@ -614,7 +614,7 @@ static int al_write_transaction(struct drbd_device *device, bool delegate) ...@@ -614,7 +614,7 @@ static int al_write_transaction(struct drbd_device *device, bool delegate)
init_completion(&al_work.event); init_completion(&al_work.event);
al_work.w.cb = w_al_write_transaction; al_work.w.cb = w_al_write_transaction;
al_work.w.device = device; al_work.w.device = device;
drbd_queue_work_front(&device->tconn->sender_work, &al_work.w); drbd_queue_work_front(&device->connection->sender_work, &al_work.w);
wait_for_completion(&al_work.event); wait_for_completion(&al_work.event);
return al_work.err; return al_work.err;
} else } else
...@@ -796,7 +796,7 @@ static void drbd_try_clear_on_disk_bm(struct drbd_device *device, sector_t secto ...@@ -796,7 +796,7 @@ static void drbd_try_clear_on_disk_bm(struct drbd_device *device, sector_t secto
udw->enr = ext->lce.lc_number; udw->enr = ext->lce.lc_number;
udw->w.cb = w_update_odbm; udw->w.cb = w_update_odbm;
udw->w.device = device; udw->w.device = device;
drbd_queue_work_front(&device->tconn->sender_work, &udw->w); drbd_queue_work_front(&device->connection->sender_work, &udw->w);
} else { } else {
dev_warn(DEV, "Could not kmalloc an udw\n"); dev_warn(DEV, "Could not kmalloc an udw\n");
} }
......
...@@ -119,9 +119,9 @@ static void __bm_print_lock_info(struct drbd_device *device, const char *func) ...@@ -119,9 +119,9 @@ static void __bm_print_lock_info(struct drbd_device *device, const char *func)
if (!__ratelimit(&drbd_ratelimit_state)) if (!__ratelimit(&drbd_ratelimit_state))
return; return;
dev_err(DEV, "FIXME %s in %s, bitmap locked for '%s' by %s\n", dev_err(DEV, "FIXME %s in %s, bitmap locked for '%s' by %s\n",
drbd_task_to_thread_name(device->tconn, current), drbd_task_to_thread_name(device->connection, current),
func, b->bm_why ?: "?", func, b->bm_why ?: "?",
drbd_task_to_thread_name(device->tconn, b->bm_task)); drbd_task_to_thread_name(device->connection, b->bm_task));
} }
void drbd_bm_lock(struct drbd_device *device, char *why, enum bm_flag flags) void drbd_bm_lock(struct drbd_device *device, char *why, enum bm_flag flags)
...@@ -138,9 +138,9 @@ void drbd_bm_lock(struct drbd_device *device, char *why, enum bm_flag flags) ...@@ -138,9 +138,9 @@ void drbd_bm_lock(struct drbd_device *device, char *why, enum bm_flag flags)
if (trylock_failed) { if (trylock_failed) {
dev_warn(DEV, "%s going to '%s' but bitmap already locked for '%s' by %s\n", dev_warn(DEV, "%s going to '%s' but bitmap already locked for '%s' by %s\n",
drbd_task_to_thread_name(device->tconn, current), drbd_task_to_thread_name(device->connection, current),
why, b->bm_why ?: "?", why, b->bm_why ?: "?",
drbd_task_to_thread_name(device->tconn, b->bm_task)); drbd_task_to_thread_name(device->connection, b->bm_task));
mutex_lock(&b->bm_change); mutex_lock(&b->bm_change);
} }
if (BM_LOCKED_MASK & b->bm_flags) if (BM_LOCKED_MASK & b->bm_flags)
......
...@@ -98,7 +98,7 @@ extern char usermode_helper[]; ...@@ -98,7 +98,7 @@ extern char usermode_helper[];
#define UUID_NEW_BM_OFFSET ((u64)0x0001000000000000ULL) #define UUID_NEW_BM_OFFSET ((u64)0x0001000000000000ULL)
struct drbd_device; struct drbd_device;
struct drbd_tconn; struct drbd_connection;
/* to shorten dev_warn(DEV, "msg"); and relatives statements */ /* to shorten dev_warn(DEV, "msg"); and relatives statements */
...@@ -167,7 +167,7 @@ drbd_insert_fault(struct drbd_device *device, unsigned int type) { ...@@ -167,7 +167,7 @@ drbd_insert_fault(struct drbd_device *device, unsigned int type) {
extern struct ratelimit_state drbd_ratelimit_state; extern struct ratelimit_state drbd_ratelimit_state;
extern struct idr minors; /* RCU, updates: genl_lock() */ extern struct idr minors; /* RCU, updates: genl_lock() */
extern struct list_head drbd_tconns; /* RCU, updates: genl_lock() */ extern struct list_head drbd_connections; /* RCU, updates: genl_lock() */
extern const char *cmdname(enum drbd_packet cmd); extern const char *cmdname(enum drbd_packet cmd);
...@@ -211,7 +211,7 @@ static inline void bm_xfer_ctx_bit_to_word_offset(struct bm_xfer_ctx *c) ...@@ -211,7 +211,7 @@ static inline void bm_xfer_ctx_bit_to_word_offset(struct bm_xfer_ctx *c)
#endif #endif
} }
extern unsigned int drbd_header_size(struct drbd_tconn *tconn); extern unsigned int drbd_header_size(struct drbd_connection *connection);
/**********************************************************************/ /**********************************************************************/
enum drbd_thread_state { enum drbd_thread_state {
...@@ -227,7 +227,7 @@ struct drbd_thread { ...@@ -227,7 +227,7 @@ struct drbd_thread {
struct completion stop; struct completion stop;
enum drbd_thread_state t_state; enum drbd_thread_state t_state;
int (*function) (struct drbd_thread *); int (*function) (struct drbd_thread *);
struct drbd_tconn *tconn; struct drbd_connection *connection;
int reset_cpu_mask; int reset_cpu_mask;
char name[9]; char name[9];
}; };
...@@ -247,7 +247,7 @@ struct drbd_work { ...@@ -247,7 +247,7 @@ struct drbd_work {
int (*cb)(struct drbd_work *, int cancel); int (*cb)(struct drbd_work *, int cancel);
union { union {
struct drbd_device *device; struct drbd_device *device;
struct drbd_tconn *tconn; struct drbd_connection *connection;
}; };
}; };
...@@ -289,7 +289,7 @@ struct drbd_request { ...@@ -289,7 +289,7 @@ struct drbd_request {
}; };
struct drbd_epoch { struct drbd_epoch {
struct drbd_tconn *tconn; struct drbd_connection *connection;
struct list_head list; struct list_head list;
unsigned int barrier_nr; unsigned int barrier_nr;
atomic_t epoch_size; /* increased on every request added. */ atomic_t epoch_size; /* increased on every request added. */
...@@ -483,7 +483,7 @@ struct drbd_backing_dev { ...@@ -483,7 +483,7 @@ struct drbd_backing_dev {
struct block_device *backing_bdev; struct block_device *backing_bdev;
struct block_device *md_bdev; struct block_device *md_bdev;
struct drbd_md md; struct drbd_md md;
struct disk_conf *disk_conf; /* RCU, for updates: device->tconn->conf_update */ struct disk_conf *disk_conf; /* RCU, for updates: device->connection->conf_update */
sector_t known_size; /* last known size of that backing device */ sector_t known_size; /* last known size of that backing device */
}; };
...@@ -514,7 +514,7 @@ struct fifo_buffer { ...@@ -514,7 +514,7 @@ struct fifo_buffer {
}; };
extern struct fifo_buffer *fifo_alloc(int fifo_size); extern struct fifo_buffer *fifo_alloc(int fifo_size);
/* flag bits per tconn */ /* flag bits per connection */
enum { enum {
NET_CONGESTED, /* The data socket is congested */ NET_CONGESTED, /* The data socket is congested */
RESOLVE_CONFLICTS, /* Set on one node, cleared on the peer! */ RESOLVE_CONFLICTS, /* Set on one node, cleared on the peer! */
...@@ -536,11 +536,11 @@ enum { ...@@ -536,11 +536,11 @@ enum {
DISCONNECT_SENT, DISCONNECT_SENT,
}; };
struct drbd_tconn { /* is a resource from the config file */ struct drbd_connection { /* is a resource from the config file */
char *name; /* Resource name */ char *name; /* Resource name */
struct list_head all_tconn; /* linked on global drbd_tconns */ struct list_head connections; /* linked on global drbd_connections */
struct kref kref; struct kref kref;
struct idr volumes; /* <tconn, vnr> to device mapping */ struct idr volumes; /* <connection, vnr> to device mapping */
enum drbd_conns cstate; /* Only C_STANDALONE to C_WF_REPORT_PARAMS */ enum drbd_conns cstate; /* Only C_STANDALONE to C_WF_REPORT_PARAMS */
unsigned susp:1; /* IO suspended by user */ unsigned susp:1; /* IO suspended by user */
unsigned susp_nod:1; /* IO suspended because no data */ unsigned susp_nod:1; /* IO suspended because no data */
...@@ -570,7 +570,7 @@ struct drbd_tconn { /* is a resource from the config file */ ...@@ -570,7 +570,7 @@ struct drbd_tconn { /* is a resource from the config file */
struct list_head transfer_log; /* all requests not yet fully processed */ struct list_head transfer_log; /* all requests not yet fully processed */
struct crypto_hash *cram_hmac_tfm; struct crypto_hash *cram_hmac_tfm;
struct crypto_hash *integrity_tfm; /* checksums we compute, updates protected by tconn->data->mutex */ struct crypto_hash *integrity_tfm; /* checksums we compute, updates protected by connection->data->mutex */
struct crypto_hash *peer_integrity_tfm; /* checksums we verify, only accessed from receiver thread */ struct crypto_hash *peer_integrity_tfm; /* checksums we verify, only accessed from receiver thread */
struct crypto_hash *csums_tfm; struct crypto_hash *csums_tfm;
struct crypto_hash *verify_tfm; struct crypto_hash *verify_tfm;
...@@ -618,7 +618,7 @@ struct submit_worker { ...@@ -618,7 +618,7 @@ struct submit_worker {
}; };
struct drbd_device { struct drbd_device {
struct drbd_tconn *tconn; struct drbd_connection *connection;
int vnr; /* volume number within the connection */ int vnr; /* volume number within the connection */
struct kref kref; struct kref kref;
...@@ -744,7 +744,7 @@ struct drbd_device { ...@@ -744,7 +744,7 @@ struct drbd_device {
struct bm_io_work bm_io_work; struct bm_io_work bm_io_work;
u64 ed_uuid; /* UUID of the exposed data */ u64 ed_uuid; /* UUID of the exposed data */
struct mutex own_state_mutex; struct mutex own_state_mutex;
struct mutex *state_mutex; /* either own_state_mutex or device->tconn->cstate_mutex */ struct mutex *state_mutex; /* either own_state_mutex or device->connection->cstate_mutex */
char congestion_reason; /* Why we where congested... */ char congestion_reason; /* Why we where congested... */
atomic_t rs_sect_in; /* for incoming resync data rate, SyncTarget */ atomic_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
atomic_t rs_sect_ev; /* for submitted resync data rate, both */ atomic_t rs_sect_ev; /* for submitted resync data rate, both */
...@@ -752,7 +752,7 @@ struct drbd_device { ...@@ -752,7 +752,7 @@ struct drbd_device {
int rs_last_events; /* counter of read or write "events" (unit sectors) int rs_last_events; /* counter of read or write "events" (unit sectors)
* on the lower level device when we last looked. */ * on the lower level device when we last looked. */
int c_sync_rate; /* current resync rate after syncer throttle magic */ int c_sync_rate; /* current resync rate after syncer throttle magic */
struct fifo_buffer *rs_plan_s; /* correction values of resync planer (RCU, tconn->conn_update) */ struct fifo_buffer *rs_plan_s; /* correction values of resync planer (RCU, connection->conn_update) */
int rs_in_flight; /* resync sectors in flight (to proxy, in proxy and from proxy) */ int rs_in_flight; /* resync sectors in flight (to proxy, in proxy and from proxy) */
atomic_t ap_in_flight; /* App sectors in flight (waiting for ack) */ atomic_t ap_in_flight; /* App sectors in flight (waiting for ack) */
unsigned int peer_max_bio_size; unsigned int peer_max_bio_size;
...@@ -773,9 +773,9 @@ static inline unsigned int device_to_minor(struct drbd_device *device) ...@@ -773,9 +773,9 @@ static inline unsigned int device_to_minor(struct drbd_device *device)
return device->minor; return device->minor;
} }
static inline struct drbd_device *vnr_to_device(struct drbd_tconn *tconn, int vnr) static inline struct drbd_device *vnr_to_device(struct drbd_connection *connection, int vnr)
{ {
return (struct drbd_device *)idr_find(&tconn->volumes, vnr); return (struct drbd_device *)idr_find(&connection->volumes, vnr);
} }
/* /*
...@@ -792,25 +792,25 @@ enum dds_flags { ...@@ -792,25 +792,25 @@ enum dds_flags {
extern void drbd_init_set_defaults(struct drbd_device *device); extern void drbd_init_set_defaults(struct drbd_device *device);
extern int drbd_thread_start(struct drbd_thread *thi); extern int drbd_thread_start(struct drbd_thread *thi);
extern void _drbd_thread_stop(struct drbd_thread *thi, int restart, int wait); extern void _drbd_thread_stop(struct drbd_thread *thi, int restart, int wait);
extern char *drbd_task_to_thread_name(struct drbd_tconn *tconn, struct task_struct *task); extern char *drbd_task_to_thread_name(struct drbd_connection *connection, struct task_struct *task);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
extern void drbd_thread_current_set_cpu(struct drbd_thread *thi); extern void drbd_thread_current_set_cpu(struct drbd_thread *thi);
extern void drbd_calc_cpu_mask(struct drbd_tconn *tconn); extern void drbd_calc_cpu_mask(struct drbd_connection *connection);
#else #else
#define drbd_thread_current_set_cpu(A) ({}) #define drbd_thread_current_set_cpu(A) ({})
#define drbd_calc_cpu_mask(A) ({}) #define drbd_calc_cpu_mask(A) ({})
#endif #endif
extern void tl_release(struct drbd_tconn *, unsigned int barrier_nr, extern void tl_release(struct drbd_connection *, unsigned int barrier_nr,
unsigned int set_size); unsigned int set_size);
extern void tl_clear(struct drbd_tconn *); extern void tl_clear(struct drbd_connection *);
extern void drbd_free_sock(struct drbd_tconn *tconn); extern void drbd_free_sock(struct drbd_connection *connection);
extern int drbd_send(struct drbd_tconn *tconn, struct socket *sock, extern int drbd_send(struct drbd_connection *connection, struct socket *sock,
void *buf, size_t size, unsigned msg_flags); void *buf, size_t size, unsigned msg_flags);
extern int drbd_send_all(struct drbd_tconn *, struct socket *, void *, size_t, extern int drbd_send_all(struct drbd_connection *, struct socket *, void *, size_t,
unsigned); unsigned);
extern int __drbd_send_protocol(struct drbd_tconn *tconn, enum drbd_packet cmd); extern int __drbd_send_protocol(struct drbd_connection *connection, enum drbd_packet cmd);
extern int drbd_send_protocol(struct drbd_tconn *tconn); extern int drbd_send_protocol(struct drbd_connection *connection);
extern int drbd_send_uuids(struct drbd_device *device); extern int drbd_send_uuids(struct drbd_device *device);
extern int drbd_send_uuids_skip_initial_sync(struct drbd_device *device); extern int drbd_send_uuids_skip_initial_sync(struct drbd_device *device);
extern void drbd_gen_and_send_sync_uuid(struct drbd_device *device); extern void drbd_gen_and_send_sync_uuid(struct drbd_device *device);
...@@ -818,7 +818,7 @@ extern int drbd_send_sizes(struct drbd_device *device, int trigger_reply, enum d ...@@ -818,7 +818,7 @@ extern int drbd_send_sizes(struct drbd_device *device, int trigger_reply, enum d
extern int drbd_send_state(struct drbd_device *device, union drbd_state s); extern int drbd_send_state(struct drbd_device *device, union drbd_state s);
extern int drbd_send_current_state(struct drbd_device *device); extern int drbd_send_current_state(struct drbd_device *device);
extern int drbd_send_sync_param(struct drbd_device *device); extern int drbd_send_sync_param(struct drbd_device *device);
extern void drbd_send_b_ack(struct drbd_tconn *tconn, u32 barrier_nr, extern void drbd_send_b_ack(struct drbd_connection *connection, u32 barrier_nr,
u32 set_size); u32 set_size);
extern int drbd_send_ack(struct drbd_device *, enum drbd_packet, extern int drbd_send_ack(struct drbd_device *, enum drbd_packet,
struct drbd_peer_request *); struct drbd_peer_request *);
...@@ -841,12 +841,12 @@ extern int drbd_send_ov_request(struct drbd_device *device, sector_t sector, int ...@@ -841,12 +841,12 @@ extern int drbd_send_ov_request(struct drbd_device *device, sector_t sector, int
extern int drbd_send_bitmap(struct drbd_device *device); extern int drbd_send_bitmap(struct drbd_device *device);
extern void drbd_send_sr_reply(struct drbd_device *device, enum drbd_state_rv retcode); extern void drbd_send_sr_reply(struct drbd_device *device, enum drbd_state_rv retcode);
extern void conn_send_sr_reply(struct drbd_tconn *tconn, enum drbd_state_rv retcode); extern void conn_send_sr_reply(struct drbd_connection *connection, enum drbd_state_rv retcode);
extern void drbd_free_bc(struct drbd_backing_dev *ldev); extern void drbd_free_bc(struct drbd_backing_dev *ldev);
extern void drbd_device_cleanup(struct drbd_device *device); extern void drbd_device_cleanup(struct drbd_device *device);
void drbd_print_uuids(struct drbd_device *device, const char *text); void drbd_print_uuids(struct drbd_device *device, const char *text);
extern void conn_md_sync(struct drbd_tconn *tconn); extern void conn_md_sync(struct drbd_connection *connection);
extern void drbd_md_write(struct drbd_device *device, void *buffer); extern void drbd_md_write(struct drbd_device *device, void *buffer);
extern void drbd_md_sync(struct drbd_device *device); extern void drbd_md_sync(struct drbd_device *device);
extern int drbd_md_read(struct drbd_device *device, struct drbd_backing_dev *bdev); extern int drbd_md_read(struct drbd_device *device, struct drbd_backing_dev *bdev);
...@@ -1153,17 +1153,17 @@ extern struct bio *bio_alloc_drbd(gfp_t gfp_mask); ...@@ -1153,17 +1153,17 @@ extern struct bio *bio_alloc_drbd(gfp_t gfp_mask);
extern rwlock_t global_state_lock; extern rwlock_t global_state_lock;
extern int conn_lowest_minor(struct drbd_tconn *tconn); extern int conn_lowest_minor(struct drbd_connection *connection);
enum drbd_ret_code conn_new_minor(struct drbd_tconn *tconn, unsigned int minor, int vnr); enum drbd_ret_code conn_new_minor(struct drbd_connection *connection, unsigned int minor, int vnr);
extern void drbd_minor_destroy(struct kref *kref); extern void drbd_minor_destroy(struct kref *kref);
extern int set_resource_options(struct drbd_tconn *tconn, struct res_opts *res_opts); extern int set_resource_options(struct drbd_connection *connection, struct res_opts *res_opts);
extern struct drbd_tconn *conn_create(const char *name, struct res_opts *res_opts); extern struct drbd_connection *conn_create(const char *name, struct res_opts *res_opts);
extern void conn_destroy(struct kref *kref); extern void conn_destroy(struct kref *kref);
struct drbd_tconn *conn_get_by_name(const char *name); struct drbd_connection *conn_get_by_name(const char *name);
extern struct drbd_tconn *conn_get_by_addrs(void *my_addr, int my_addr_len, extern struct drbd_connection *conn_get_by_addrs(void *my_addr, int my_addr_len,
void *peer_addr, int peer_addr_len); void *peer_addr, int peer_addr_len);
extern void conn_free_crypto(struct drbd_tconn *tconn); extern void conn_free_crypto(struct drbd_connection *connection);
extern int proc_details; extern int proc_details;
...@@ -1198,8 +1198,8 @@ extern void drbd_reconsider_max_bio_size(struct drbd_device *device); ...@@ -1198,8 +1198,8 @@ extern void drbd_reconsider_max_bio_size(struct drbd_device *device);
extern enum drbd_state_rv drbd_set_role(struct drbd_device *device, extern enum drbd_state_rv drbd_set_role(struct drbd_device *device,
enum drbd_role new_role, enum drbd_role new_role,
int force); int force);
extern bool conn_try_outdate_peer(struct drbd_tconn *tconn); extern bool conn_try_outdate_peer(struct drbd_connection *connection);
extern void conn_try_outdate_peer_async(struct drbd_tconn *tconn); extern void conn_try_outdate_peer_async(struct drbd_connection *connection);
extern int drbd_khelper(struct drbd_device *device, char *cmd); extern int drbd_khelper(struct drbd_device *device, char *cmd);
/* drbd_worker.c */ /* drbd_worker.c */
...@@ -1271,11 +1271,11 @@ extern void __drbd_free_peer_req(struct drbd_device *, struct drbd_peer_request ...@@ -1271,11 +1271,11 @@ extern void __drbd_free_peer_req(struct drbd_device *, struct drbd_peer_request
extern struct page *drbd_alloc_pages(struct drbd_device *, unsigned int, bool); extern struct page *drbd_alloc_pages(struct drbd_device *, unsigned int, bool);
extern void drbd_set_recv_tcq(struct drbd_device *device, int tcq_enabled); extern void drbd_set_recv_tcq(struct drbd_device *device, int tcq_enabled);
extern void _drbd_clear_done_ee(struct drbd_device *device, struct list_head *to_be_freed); extern void _drbd_clear_done_ee(struct drbd_device *device, struct list_head *to_be_freed);
extern void conn_flush_workqueue(struct drbd_tconn *tconn); extern void conn_flush_workqueue(struct drbd_connection *connection);
extern int drbd_connected(struct drbd_device *device); extern int drbd_connected(struct drbd_device *device);
static inline void drbd_flush_workqueue(struct drbd_device *device) static inline void drbd_flush_workqueue(struct drbd_device *device)
{ {
conn_flush_workqueue(device->tconn); conn_flush_workqueue(device->connection);
} }
/* Yes, there is kernel_setsockopt, but only since 2.6.18. /* Yes, there is kernel_setsockopt, but only since 2.6.18.
...@@ -1327,7 +1327,7 @@ static inline void drbd_tcp_quickack(struct socket *sock) ...@@ -1327,7 +1327,7 @@ static inline void drbd_tcp_quickack(struct socket *sock)
(char*)&val, sizeof(val)); (char*)&val, sizeof(val));
} }
void drbd_bump_write_ordering(struct drbd_tconn *tconn, enum write_ordering_e wo); void drbd_bump_write_ordering(struct drbd_connection *connection, enum write_ordering_e wo);
/* drbd_proc.c */ /* drbd_proc.c */
extern struct proc_dir_entry *drbd_proc; extern struct proc_dir_entry *drbd_proc;
...@@ -1421,9 +1421,9 @@ static inline union drbd_state drbd_read_state(struct drbd_device *device) ...@@ -1421,9 +1421,9 @@ static inline union drbd_state drbd_read_state(struct drbd_device *device)
union drbd_state rv; union drbd_state rv;
rv.i = device->state.i; rv.i = device->state.i;
rv.susp = device->tconn->susp; rv.susp = device->connection->susp;
rv.susp_nod = device->tconn->susp_nod; rv.susp_nod = device->connection->susp_nod;
rv.susp_fen = device->tconn->susp_fen; rv.susp_fen = device->connection->susp_fen;
return rv; return rv;
} }
...@@ -1505,9 +1505,9 @@ static inline void drbd_chk_io_error_(struct drbd_device *device, ...@@ -1505,9 +1505,9 @@ static inline void drbd_chk_io_error_(struct drbd_device *device,
{ {
if (error) { if (error) {
unsigned long flags; unsigned long flags;
spin_lock_irqsave(&device->tconn->req_lock, flags); spin_lock_irqsave(&device->connection->req_lock, flags);
__drbd_chk_io_error_(device, forcedetach, where); __drbd_chk_io_error_(device, forcedetach, where);
spin_unlock_irqrestore(&device->tconn->req_lock, flags); spin_unlock_irqrestore(&device->connection->req_lock, flags);
} }
} }
...@@ -1630,31 +1630,31 @@ drbd_queue_work(struct drbd_work_queue *q, struct drbd_work *w) ...@@ -1630,31 +1630,31 @@ drbd_queue_work(struct drbd_work_queue *q, struct drbd_work *w)
wake_up(&q->q_wait); wake_up(&q->q_wait);
} }
static inline void wake_asender(struct drbd_tconn *tconn) static inline void wake_asender(struct drbd_connection *connection)
{ {
if (test_bit(SIGNAL_ASENDER, &tconn->flags)) if (test_bit(SIGNAL_ASENDER, &connection->flags))
force_sig(DRBD_SIG, tconn->asender.task); force_sig(DRBD_SIG, connection->asender.task);
} }
static inline void request_ping(struct drbd_tconn *tconn) static inline void request_ping(struct drbd_connection *connection)
{ {
set_bit(SEND_PING, &tconn->flags); set_bit(SEND_PING, &connection->flags);
wake_asender(tconn); wake_asender(connection);
} }
extern void *conn_prepare_command(struct drbd_tconn *, struct drbd_socket *); extern void *conn_prepare_command(struct drbd_connection *, struct drbd_socket *);
extern void *drbd_prepare_command(struct drbd_device *, struct drbd_socket *); extern void *drbd_prepare_command(struct drbd_device *, struct drbd_socket *);
extern int conn_send_command(struct drbd_tconn *, struct drbd_socket *, extern int conn_send_command(struct drbd_connection *, struct drbd_socket *,
enum drbd_packet, unsigned int, void *, enum drbd_packet, unsigned int, void *,
unsigned int); unsigned int);
extern int drbd_send_command(struct drbd_device *, struct drbd_socket *, extern int drbd_send_command(struct drbd_device *, struct drbd_socket *,
enum drbd_packet, unsigned int, void *, enum drbd_packet, unsigned int, void *,
unsigned int); unsigned int);
extern int drbd_send_ping(struct drbd_tconn *tconn); extern int drbd_send_ping(struct drbd_connection *connection);
extern int drbd_send_ping_ack(struct drbd_tconn *tconn); extern int drbd_send_ping_ack(struct drbd_connection *connection);
extern int drbd_send_state_req(struct drbd_device *, union drbd_state, union drbd_state); extern int drbd_send_state_req(struct drbd_device *, union drbd_state, union drbd_state);
extern int conn_send_state_req(struct drbd_tconn *, union drbd_state, union drbd_state); extern int conn_send_state_req(struct drbd_connection *, union drbd_state, union drbd_state);
static inline void drbd_thread_stop(struct drbd_thread *thi) static inline void drbd_thread_stop(struct drbd_thread *thi)
{ {
...@@ -1783,7 +1783,7 @@ static inline void put_ldev(struct drbd_device *device) ...@@ -1783,7 +1783,7 @@ static inline void put_ldev(struct drbd_device *device)
if (device->state.disk == D_FAILED) { if (device->state.disk == D_FAILED) {
/* all application IO references gone. */ /* all application IO references gone. */
if (!test_and_set_bit(GO_DISKLESS, &device->flags)) if (!test_and_set_bit(GO_DISKLESS, &device->flags))
drbd_queue_work(&device->tconn->sender_work, &device->go_diskless); drbd_queue_work(&device->connection->sender_work, &device->go_diskless);
} }
wake_up(&device->misc_wait); wake_up(&device->misc_wait);
} }
...@@ -1865,7 +1865,7 @@ static inline int drbd_get_max_buffers(struct drbd_device *device) ...@@ -1865,7 +1865,7 @@ static inline int drbd_get_max_buffers(struct drbd_device *device)
int mxb; int mxb;
rcu_read_lock(); rcu_read_lock();
nc = rcu_dereference(device->tconn->net_conf); nc = rcu_dereference(device->connection->net_conf);
mxb = nc ? nc->max_buffers : 1000000; /* arbitrary limit on open requests */ mxb = nc ? nc->max_buffers : 1000000; /* arbitrary limit on open requests */
rcu_read_unlock(); rcu_read_unlock();
...@@ -1908,7 +1908,7 @@ static inline int drbd_state_is_stable(struct drbd_device *device) ...@@ -1908,7 +1908,7 @@ static inline int drbd_state_is_stable(struct drbd_device *device)
/* Allow IO in BM exchange states with new protocols */ /* Allow IO in BM exchange states with new protocols */
case C_WF_BITMAP_S: case C_WF_BITMAP_S:
if (device->tconn->agreed_pro_version < 96) if (device->connection->agreed_pro_version < 96)
return 0; return 0;
break; break;
...@@ -1944,9 +1944,9 @@ static inline int drbd_state_is_stable(struct drbd_device *device) ...@@ -1944,9 +1944,9 @@ static inline int drbd_state_is_stable(struct drbd_device *device)
static inline int drbd_suspended(struct drbd_device *device) static inline int drbd_suspended(struct drbd_device *device)
{ {
struct drbd_tconn *tconn = device->tconn; struct drbd_connection *connection = device->connection;
return tconn->susp || tconn->susp_fen || tconn->susp_nod; return connection->susp || connection->susp_fen || connection->susp_nod;
} }
static inline bool may_inc_ap_bio(struct drbd_device *device) static inline bool may_inc_ap_bio(struct drbd_device *device)
...@@ -1979,11 +1979,11 @@ static inline bool inc_ap_bio_cond(struct drbd_device *device) ...@@ -1979,11 +1979,11 @@ static inline bool inc_ap_bio_cond(struct drbd_device *device)
{ {
bool rv = false; bool rv = false;
spin_lock_irq(&device->tconn->req_lock); spin_lock_irq(&device->connection->req_lock);
rv = may_inc_ap_bio(device); rv = may_inc_ap_bio(device);
if (rv) if (rv)
atomic_inc(&device->ap_bio_cnt); atomic_inc(&device->ap_bio_cnt);
spin_unlock_irq(&device->tconn->req_lock); spin_unlock_irq(&device->connection->req_lock);
return rv; return rv;
} }
...@@ -2010,7 +2010,7 @@ static inline void dec_ap_bio(struct drbd_device *device) ...@@ -2010,7 +2010,7 @@ static inline void dec_ap_bio(struct drbd_device *device)
if (ap_bio == 0 && test_bit(BITMAP_IO, &device->flags)) { if (ap_bio == 0 && test_bit(BITMAP_IO, &device->flags)) {
if (!test_and_set_bit(BITMAP_IO_QUEUED, &device->flags)) if (!test_and_set_bit(BITMAP_IO_QUEUED, &device->flags))
drbd_queue_work(&device->tconn->sender_work, &device->bm_io_work.w); drbd_queue_work(&device->connection->sender_work, &device->bm_io_work.w);
} }
/* this currently does wake_up for every dec_ap_bio! /* this currently does wake_up for every dec_ap_bio!
...@@ -2022,8 +2022,8 @@ static inline void dec_ap_bio(struct drbd_device *device) ...@@ -2022,8 +2022,8 @@ static inline void dec_ap_bio(struct drbd_device *device)
static inline bool verify_can_do_stop_sector(struct drbd_device *device) static inline bool verify_can_do_stop_sector(struct drbd_device *device)
{ {
return device->tconn->agreed_pro_version >= 97 && return device->connection->agreed_pro_version >= 97 &&
device->tconn->agreed_pro_version != 100; device->connection->agreed_pro_version != 100;
} }
static inline int drbd_set_ed_uuid(struct drbd_device *device, u64 val) static inline int drbd_set_ed_uuid(struct drbd_device *device, u64 val)
......
此差异已折叠。
此差异已折叠。
...@@ -251,7 +251,7 @@ static int drbd_seq_show(struct seq_file *seq, void *v) ...@@ -251,7 +251,7 @@ static int drbd_seq_show(struct seq_file *seq, void *v)
/* reset device->congestion_reason */ /* reset device->congestion_reason */
bdi_rw_congested(&device->rq_queue->backing_dev_info); bdi_rw_congested(&device->rq_queue->backing_dev_info);
nc = rcu_dereference(device->tconn->net_conf); nc = rcu_dereference(device->connection->net_conf);
wp = nc ? nc->wire_protocol - DRBD_PROT_A + 'A' : ' '; wp = nc ? nc->wire_protocol - DRBD_PROT_A + 'A' : ' ';
seq_printf(seq, seq_printf(seq,
"%2d: cs:%s ro:%s/%s ds:%s/%s %c %c%c%c%c%c%c\n" "%2d: cs:%s ro:%s/%s ds:%s/%s %c %c%c%c%c%c%c\n"
...@@ -280,8 +280,8 @@ static int drbd_seq_show(struct seq_file *seq, void *v) ...@@ -280,8 +280,8 @@ static int drbd_seq_show(struct seq_file *seq, void *v)
atomic_read(&device->rs_pending_cnt), atomic_read(&device->rs_pending_cnt),
atomic_read(&device->unacked_cnt), atomic_read(&device->unacked_cnt),
atomic_read(&device->ap_bio_cnt), atomic_read(&device->ap_bio_cnt),
device->tconn->epochs, device->connection->epochs,
write_ordering_chars[device->tconn->write_ordering] write_ordering_chars[device->connection->write_ordering]
); );
seq_printf(seq, " oos:%llu\n", seq_printf(seq, " oos:%llu\n",
Bit2KB((unsigned long long) Bit2KB((unsigned long long)
......
此差异已折叠。
...@@ -163,20 +163,21 @@ void drbd_req_destroy(struct kref *kref) ...@@ -163,20 +163,21 @@ void drbd_req_destroy(struct kref *kref)
mempool_free(req, drbd_request_mempool); mempool_free(req, drbd_request_mempool);
} }
static void wake_all_senders(struct drbd_tconn *tconn) { static void wake_all_senders(struct drbd_connection *connection)
wake_up(&tconn->sender_work.q_wait); {
wake_up(&connection->sender_work.q_wait);
} }
/* must hold resource->req_lock */ /* must hold resource->req_lock */
void start_new_tl_epoch(struct drbd_tconn *tconn) void start_new_tl_epoch(struct drbd_connection *connection)
{ {
/* no point closing an epoch, if it is empty, anyways. */ /* no point closing an epoch, if it is empty, anyways. */
if (tconn->current_tle_writes == 0) if (connection->current_tle_writes == 0)
return; return;
tconn->current_tle_writes = 0; connection->current_tle_writes = 0;
atomic_inc(&tconn->current_tle_nr); atomic_inc(&connection->current_tle_nr);
wake_all_senders(tconn); wake_all_senders(connection);
} }
void complete_master_bio(struct drbd_device *device, void complete_master_bio(struct drbd_device *device,
...@@ -273,8 +274,8 @@ void drbd_req_complete(struct drbd_request *req, struct bio_and_error *m) ...@@ -273,8 +274,8 @@ void drbd_req_complete(struct drbd_request *req, struct bio_and_error *m)
* and reset the transfer log epoch write_cnt. * and reset the transfer log epoch write_cnt.
*/ */
if (rw == WRITE && if (rw == WRITE &&
req->epoch == atomic_read(&device->tconn->current_tle_nr)) req->epoch == atomic_read(&device->connection->current_tle_nr))
start_new_tl_epoch(device->tconn); start_new_tl_epoch(device->connection);
/* Update disk stats */ /* Update disk stats */
_drbd_end_io_acct(device, req); _drbd_end_io_acct(device, req);
...@@ -476,7 +477,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what, ...@@ -476,7 +477,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
* and from w_read_retry_remote */ * and from w_read_retry_remote */
D_ASSERT(!(req->rq_state & RQ_NET_MASK)); D_ASSERT(!(req->rq_state & RQ_NET_MASK));
rcu_read_lock(); rcu_read_lock();
nc = rcu_dereference(device->tconn->net_conf); nc = rcu_dereference(device->connection->net_conf);
p = nc->wire_protocol; p = nc->wire_protocol;
rcu_read_unlock(); rcu_read_unlock();
req->rq_state |= req->rq_state |=
...@@ -541,7 +542,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what, ...@@ -541,7 +542,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
D_ASSERT((req->rq_state & RQ_LOCAL_MASK) == 0); D_ASSERT((req->rq_state & RQ_LOCAL_MASK) == 0);
mod_rq_state(req, m, 0, RQ_NET_QUEUED); mod_rq_state(req, m, 0, RQ_NET_QUEUED);
req->w.cb = w_send_read_req; req->w.cb = w_send_read_req;
drbd_queue_work(&device->tconn->sender_work, &req->w); drbd_queue_work(&device->connection->sender_work, &req->w);
break; break;
case QUEUE_FOR_NET_WRITE: case QUEUE_FOR_NET_WRITE:
...@@ -576,22 +577,22 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what, ...@@ -576,22 +577,22 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
D_ASSERT(req->rq_state & RQ_NET_PENDING); D_ASSERT(req->rq_state & RQ_NET_PENDING);
mod_rq_state(req, m, 0, RQ_NET_QUEUED|RQ_EXP_BARR_ACK); mod_rq_state(req, m, 0, RQ_NET_QUEUED|RQ_EXP_BARR_ACK);
req->w.cb = w_send_dblock; req->w.cb = w_send_dblock;
drbd_queue_work(&device->tconn->sender_work, &req->w); drbd_queue_work(&device->connection->sender_work, &req->w);
/* close the epoch, in case it outgrew the limit */ /* close the epoch, in case it outgrew the limit */
rcu_read_lock(); rcu_read_lock();
nc = rcu_dereference(device->tconn->net_conf); nc = rcu_dereference(device->connection->net_conf);
p = nc->max_epoch_size; p = nc->max_epoch_size;
rcu_read_unlock(); rcu_read_unlock();
if (device->tconn->current_tle_writes >= p) if (device->connection->current_tle_writes >= p)
start_new_tl_epoch(device->tconn); start_new_tl_epoch(device->connection);
break; break;
case QUEUE_FOR_SEND_OOS: case QUEUE_FOR_SEND_OOS:
mod_rq_state(req, m, 0, RQ_NET_QUEUED); mod_rq_state(req, m, 0, RQ_NET_QUEUED);
req->w.cb = w_send_out_of_sync; req->w.cb = w_send_out_of_sync;
drbd_queue_work(&device->tconn->sender_work, &req->w); drbd_queue_work(&device->connection->sender_work, &req->w);
break; break;
case READ_RETRY_REMOTE_CANCELED: case READ_RETRY_REMOTE_CANCELED:
...@@ -703,7 +704,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what, ...@@ -703,7 +704,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
get_ldev(device); /* always succeeds in this call path */ get_ldev(device); /* always succeeds in this call path */
req->w.cb = w_restart_disk_io; req->w.cb = w_restart_disk_io;
drbd_queue_work(&device->tconn->sender_work, &req->w); drbd_queue_work(&device->connection->sender_work, &req->w);
break; break;
case RESEND: case RESEND:
...@@ -724,7 +725,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what, ...@@ -724,7 +725,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
mod_rq_state(req, m, RQ_COMPLETION_SUSP, RQ_NET_QUEUED|RQ_NET_PENDING); mod_rq_state(req, m, RQ_COMPLETION_SUSP, RQ_NET_QUEUED|RQ_NET_PENDING);
if (req->w.cb) { if (req->w.cb) {
drbd_queue_work(&device->tconn->sender_work, &req->w); drbd_queue_work(&device->connection->sender_work, &req->w);
rv = req->rq_state & RQ_WRITE ? MR_WRITE : MR_READ; rv = req->rq_state & RQ_WRITE ? MR_WRITE : MR_READ;
} /* else: FIXME can this happen? */ } /* else: FIXME can this happen? */
break; break;
...@@ -756,7 +757,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what, ...@@ -756,7 +757,7 @@ int __req_mod(struct drbd_request *req, enum drbd_req_event what,
break; break;
case QUEUE_AS_DRBD_BARRIER: case QUEUE_AS_DRBD_BARRIER:
start_new_tl_epoch(device->tconn); start_new_tl_epoch(device->connection);
mod_rq_state(req, m, 0, RQ_NET_OK|RQ_NET_DONE); mod_rq_state(req, m, 0, RQ_NET_OK|RQ_NET_DONE);
break; break;
}; };
...@@ -850,9 +851,9 @@ static void complete_conflicting_writes(struct drbd_request *req) ...@@ -850,9 +851,9 @@ static void complete_conflicting_writes(struct drbd_request *req)
break; break;
/* Indicate to wake up device->misc_wait on progress. */ /* Indicate to wake up device->misc_wait on progress. */
i->waiting = true; i->waiting = true;
spin_unlock_irq(&device->tconn->req_lock); spin_unlock_irq(&device->connection->req_lock);
schedule(); schedule();
spin_lock_irq(&device->tconn->req_lock); spin_lock_irq(&device->connection->req_lock);
} }
finish_wait(&device->misc_wait, &wait); finish_wait(&device->misc_wait, &wait);
} }
...@@ -860,17 +861,17 @@ static void complete_conflicting_writes(struct drbd_request *req) ...@@ -860,17 +861,17 @@ static void complete_conflicting_writes(struct drbd_request *req)
/* called within req_lock and rcu_read_lock() */ /* called within req_lock and rcu_read_lock() */
static void maybe_pull_ahead(struct drbd_device *device) static void maybe_pull_ahead(struct drbd_device *device)
{ {
struct drbd_tconn *tconn = device->tconn; struct drbd_connection *connection = device->connection;
struct net_conf *nc; struct net_conf *nc;
bool congested = false; bool congested = false;
enum drbd_on_congestion on_congestion; enum drbd_on_congestion on_congestion;
rcu_read_lock(); rcu_read_lock();
nc = rcu_dereference(tconn->net_conf); nc = rcu_dereference(connection->net_conf);
on_congestion = nc ? nc->on_congestion : OC_BLOCK; on_congestion = nc ? nc->on_congestion : OC_BLOCK;
rcu_read_unlock(); rcu_read_unlock();
if (on_congestion == OC_BLOCK || if (on_congestion == OC_BLOCK ||
tconn->agreed_pro_version < 96) connection->agreed_pro_version < 96)
return; return;
/* If I don't even have good local storage, we can not reasonably try /* If I don't even have good local storage, we can not reasonably try
...@@ -893,7 +894,7 @@ static void maybe_pull_ahead(struct drbd_device *device) ...@@ -893,7 +894,7 @@ static void maybe_pull_ahead(struct drbd_device *device)
if (congested) { if (congested) {
/* start a new epoch for non-mirrored writes */ /* start a new epoch for non-mirrored writes */
start_new_tl_epoch(device->tconn); start_new_tl_epoch(device->connection);
if (on_congestion == OC_PULL_AHEAD) if (on_congestion == OC_PULL_AHEAD)
_drbd_set_state(_NS(device, conn, C_AHEAD), 0, NULL); _drbd_set_state(_NS(device, conn, C_AHEAD), 0, NULL);
...@@ -1077,7 +1078,7 @@ static void drbd_send_and_submit(struct drbd_device *device, struct drbd_request ...@@ -1077,7 +1078,7 @@ static void drbd_send_and_submit(struct drbd_device *device, struct drbd_request
struct bio_and_error m = { NULL, }; struct bio_and_error m = { NULL, };
bool no_remote = false; bool no_remote = false;
spin_lock_irq(&device->tconn->req_lock); spin_lock_irq(&device->connection->req_lock);
if (rw == WRITE) { if (rw == WRITE) {
/* This may temporarily give up the req_lock, /* This may temporarily give up the req_lock,
* but will re-aquire it before it returns here. * but will re-aquire it before it returns here.
...@@ -1111,15 +1112,15 @@ static void drbd_send_and_submit(struct drbd_device *device, struct drbd_request ...@@ -1111,15 +1112,15 @@ static void drbd_send_and_submit(struct drbd_device *device, struct drbd_request
} }
/* which transfer log epoch does this belong to? */ /* which transfer log epoch does this belong to? */
req->epoch = atomic_read(&device->tconn->current_tle_nr); req->epoch = atomic_read(&device->connection->current_tle_nr);
/* no point in adding empty flushes to the transfer log, /* no point in adding empty flushes to the transfer log,
* they are mapped to drbd barriers already. */ * they are mapped to drbd barriers already. */
if (likely(req->i.size!=0)) { if (likely(req->i.size!=0)) {
if (rw == WRITE) if (rw == WRITE)
device->tconn->current_tle_writes++; device->connection->current_tle_writes++;
list_add_tail(&req->tl_requests, &device->tconn->transfer_log); list_add_tail(&req->tl_requests, &device->connection->transfer_log);
} }
if (rw == WRITE) { if (rw == WRITE) {
...@@ -1139,9 +1140,9 @@ static void drbd_send_and_submit(struct drbd_device *device, struct drbd_request ...@@ -1139,9 +1140,9 @@ static void drbd_send_and_submit(struct drbd_device *device, struct drbd_request
/* needs to be marked within the same spinlock */ /* needs to be marked within the same spinlock */
_req_mod(req, TO_BE_SUBMITTED); _req_mod(req, TO_BE_SUBMITTED);
/* but we need to give up the spinlock to submit */ /* but we need to give up the spinlock to submit */
spin_unlock_irq(&device->tconn->req_lock); spin_unlock_irq(&device->connection->req_lock);
drbd_submit_req_private_bio(req); drbd_submit_req_private_bio(req);
spin_lock_irq(&device->tconn->req_lock); spin_lock_irq(&device->connection->req_lock);
} else if (no_remote) { } else if (no_remote) {
nodata: nodata:
if (__ratelimit(&drbd_ratelimit_state)) if (__ratelimit(&drbd_ratelimit_state))
...@@ -1154,7 +1155,7 @@ static void drbd_send_and_submit(struct drbd_device *device, struct drbd_request ...@@ -1154,7 +1155,7 @@ static void drbd_send_and_submit(struct drbd_device *device, struct drbd_request
out: out:
if (drbd_req_put_completion_ref(req, &m, 1)) if (drbd_req_put_completion_ref(req, &m, 1))
kref_put(&req->kref, drbd_req_destroy); kref_put(&req->kref, drbd_req_destroy);
spin_unlock_irq(&device->tconn->req_lock); spin_unlock_irq(&device->connection->req_lock);
if (m.bio) if (m.bio)
complete_master_bio(device, &m); complete_master_bio(device, &m);
...@@ -1320,12 +1321,12 @@ int drbd_merge_bvec(struct request_queue *q, struct bvec_merge_data *bvm, struct ...@@ -1320,12 +1321,12 @@ int drbd_merge_bvec(struct request_queue *q, struct bvec_merge_data *bvm, struct
return limit; return limit;
} }
static struct drbd_request *find_oldest_request(struct drbd_tconn *tconn) static struct drbd_request *find_oldest_request(struct drbd_connection *connection)
{ {
/* Walk the transfer log, /* Walk the transfer log,
* and find the oldest not yet completed request */ * and find the oldest not yet completed request */
struct drbd_request *r; struct drbd_request *r;
list_for_each_entry(r, &tconn->transfer_log, tl_requests) { list_for_each_entry(r, &connection->transfer_log, tl_requests) {
if (atomic_read(&r->completion_ref)) if (atomic_read(&r->completion_ref))
return r; return r;
} }
...@@ -1335,14 +1336,14 @@ static struct drbd_request *find_oldest_request(struct drbd_tconn *tconn) ...@@ -1335,14 +1336,14 @@ static struct drbd_request *find_oldest_request(struct drbd_tconn *tconn)
void request_timer_fn(unsigned long data) void request_timer_fn(unsigned long data)
{ {
struct drbd_device *device = (struct drbd_device *) data; struct drbd_device *device = (struct drbd_device *) data;
struct drbd_tconn *tconn = device->tconn; struct drbd_connection *connection = device->connection;
struct drbd_request *req; /* oldest request */ struct drbd_request *req; /* oldest request */
struct net_conf *nc; struct net_conf *nc;
unsigned long ent = 0, dt = 0, et, nt; /* effective timeout = ko_count * timeout */ unsigned long ent = 0, dt = 0, et, nt; /* effective timeout = ko_count * timeout */
unsigned long now; unsigned long now;
rcu_read_lock(); rcu_read_lock();
nc = rcu_dereference(tconn->net_conf); nc = rcu_dereference(connection->net_conf);
if (nc && device->state.conn >= C_WF_REPORT_PARAMS) if (nc && device->state.conn >= C_WF_REPORT_PARAMS)
ent = nc->timeout * HZ/10 * nc->ko_count; ent = nc->timeout * HZ/10 * nc->ko_count;
...@@ -1359,10 +1360,10 @@ void request_timer_fn(unsigned long data) ...@@ -1359,10 +1360,10 @@ void request_timer_fn(unsigned long data)
now = jiffies; now = jiffies;
spin_lock_irq(&tconn->req_lock); spin_lock_irq(&connection->req_lock);
req = find_oldest_request(tconn); req = find_oldest_request(connection);
if (!req) { if (!req) {
spin_unlock_irq(&tconn->req_lock); spin_unlock_irq(&connection->req_lock);
mod_timer(&device->request_timer, now + et); mod_timer(&device->request_timer, now + et);
return; return;
} }
...@@ -1385,7 +1386,7 @@ void request_timer_fn(unsigned long data) ...@@ -1385,7 +1386,7 @@ void request_timer_fn(unsigned long data)
*/ */
if (ent && req->rq_state & RQ_NET_PENDING && if (ent && req->rq_state & RQ_NET_PENDING &&
time_after(now, req->start_time + ent) && time_after(now, req->start_time + ent) &&
!time_in_range(now, tconn->last_reconnect_jif, tconn->last_reconnect_jif + ent)) { !time_in_range(now, connection->last_reconnect_jif, connection->last_reconnect_jif + ent)) {
dev_warn(DEV, "Remote failed to finish a request within ko-count * timeout\n"); dev_warn(DEV, "Remote failed to finish a request within ko-count * timeout\n");
_drbd_set_state(_NS(device, conn, C_TIMEOUT), CS_VERBOSE | CS_HARD, NULL); _drbd_set_state(_NS(device, conn, C_TIMEOUT), CS_VERBOSE | CS_HARD, NULL);
} }
...@@ -1396,6 +1397,6 @@ void request_timer_fn(unsigned long data) ...@@ -1396,6 +1397,6 @@ void request_timer_fn(unsigned long data)
__drbd_chk_io_error(device, DRBD_FORCE_DETACH); __drbd_chk_io_error(device, DRBD_FORCE_DETACH);
} }
nt = (time_after(now, req->start_time + et) ? now : req->start_time) + et; nt = (time_after(now, req->start_time + et) ? now : req->start_time) + et;
spin_unlock_irq(&tconn->req_lock); spin_unlock_irq(&connection->req_lock);
mod_timer(&device->request_timer, nt); mod_timer(&device->request_timer, nt);
} }
...@@ -275,7 +275,7 @@ struct bio_and_error { ...@@ -275,7 +275,7 @@ struct bio_and_error {
int error; int error;
}; };
extern void start_new_tl_epoch(struct drbd_tconn *tconn); extern void start_new_tl_epoch(struct drbd_connection *connection);
extern void drbd_req_destroy(struct kref *kref); extern void drbd_req_destroy(struct kref *kref);
extern void _req_may_be_done(struct drbd_request *req, extern void _req_may_be_done(struct drbd_request *req,
struct bio_and_error *m); struct bio_and_error *m);
...@@ -284,8 +284,8 @@ extern int __req_mod(struct drbd_request *req, enum drbd_req_event what, ...@@ -284,8 +284,8 @@ extern int __req_mod(struct drbd_request *req, enum drbd_req_event what,
extern void complete_master_bio(struct drbd_device *device, extern void complete_master_bio(struct drbd_device *device,
struct bio_and_error *m); struct bio_and_error *m);
extern void request_timer_fn(unsigned long data); extern void request_timer_fn(unsigned long data);
extern void tl_restart(struct drbd_tconn *tconn, enum drbd_req_event what); extern void tl_restart(struct drbd_connection *connection, enum drbd_req_event what);
extern void _tl_restart(struct drbd_tconn *tconn, enum drbd_req_event what); extern void _tl_restart(struct drbd_connection *connection, enum drbd_req_event what);
/* this is in drbd_main.c */ /* this is in drbd_main.c */
extern void drbd_restart_request(struct drbd_request *req); extern void drbd_restart_request(struct drbd_request *req);
...@@ -318,9 +318,9 @@ static inline int req_mod(struct drbd_request *req, ...@@ -318,9 +318,9 @@ static inline int req_mod(struct drbd_request *req,
struct bio_and_error m; struct bio_and_error m;
int rv; int rv;
spin_lock_irqsave(&device->tconn->req_lock, flags); spin_lock_irqsave(&device->connection->req_lock, flags);
rv = __req_mod(req, what, &m); rv = __req_mod(req, what, &m);
spin_unlock_irqrestore(&device->tconn->req_lock, flags); spin_unlock_irqrestore(&device->connection->req_lock, flags);
if (m.bio) if (m.bio)
complete_master_bio(device, &m); complete_master_bio(device, &m);
......
此差异已折叠。
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#define DRBD_STATE_H #define DRBD_STATE_H
struct drbd_device; struct drbd_device;
struct drbd_tconn; struct drbd_connection;
/** /**
* DOC: DRBD State macros * DOC: DRBD State macros
...@@ -124,15 +124,15 @@ extern void print_st_err(struct drbd_device *, union drbd_state, ...@@ -124,15 +124,15 @@ extern void print_st_err(struct drbd_device *, union drbd_state,
union drbd_state, int); union drbd_state, int);
enum drbd_state_rv enum drbd_state_rv
_conn_request_state(struct drbd_tconn *tconn, union drbd_state mask, union drbd_state val, _conn_request_state(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
enum chg_state_flags flags); enum chg_state_flags flags);
enum drbd_state_rv enum drbd_state_rv
conn_request_state(struct drbd_tconn *tconn, union drbd_state mask, union drbd_state val, conn_request_state(struct drbd_connection *connection, union drbd_state mask, union drbd_state val,
enum chg_state_flags flags); enum chg_state_flags flags);
extern void drbd_resume_al(struct drbd_device *device); extern void drbd_resume_al(struct drbd_device *device);
extern bool conn_all_vols_unconf(struct drbd_tconn *tconn); extern bool conn_all_vols_unconf(struct drbd_connection *connection);
/** /**
* drbd_request_state() - Reqest a state change * drbd_request_state() - Reqest a state change
...@@ -151,11 +151,11 @@ static inline int drbd_request_state(struct drbd_device *device, ...@@ -151,11 +151,11 @@ static inline int drbd_request_state(struct drbd_device *device,
return _drbd_request_state(device, mask, val, CS_VERBOSE + CS_ORDERED); return _drbd_request_state(device, mask, val, CS_VERBOSE + CS_ORDERED);
} }
enum drbd_role conn_highest_role(struct drbd_tconn *tconn); enum drbd_role conn_highest_role(struct drbd_connection *connection);
enum drbd_role conn_highest_peer(struct drbd_tconn *tconn); enum drbd_role conn_highest_peer(struct drbd_connection *connection);
enum drbd_disk_state conn_highest_disk(struct drbd_tconn *tconn); enum drbd_disk_state conn_highest_disk(struct drbd_connection *connection);
enum drbd_disk_state conn_lowest_disk(struct drbd_tconn *tconn); enum drbd_disk_state conn_lowest_disk(struct drbd_connection *connection);
enum drbd_disk_state conn_highest_pdsk(struct drbd_tconn *tconn); enum drbd_disk_state conn_highest_pdsk(struct drbd_connection *connection);
enum drbd_conns conn_lowest_conn(struct drbd_tconn *tconn); enum drbd_conns conn_lowest_conn(struct drbd_connection *connection);
#endif #endif
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册