mirror of https://gitee.com/openkylin/linux.git
dlm: use proper type for ->ls_recover_buf
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: David Teigland <teigland@redhat.com>
This commit is contained in:
parent
93ff2971e9
commit
4007685c6e
|
@ -235,7 +235,7 @@ int dlm_recover_directory(struct dlm_ls *ls)
|
||||||
* pick namelen/name pairs out of received buffer
|
* pick namelen/name pairs out of received buffer
|
||||||
*/
|
*/
|
||||||
|
|
||||||
b = ls->ls_recover_buf + sizeof(struct dlm_rcom);
|
b = ls->ls_recover_buf->rc_buf;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
memcpy(&namelen, b, sizeof(uint16_t));
|
memcpy(&namelen, b, sizeof(uint16_t));
|
||||||
|
|
|
@ -500,7 +500,7 @@ struct dlm_ls {
|
||||||
struct rw_semaphore ls_recv_active; /* block dlm_recv */
|
struct rw_semaphore ls_recv_active; /* block dlm_recv */
|
||||||
struct list_head ls_requestqueue;/* queue remote requests */
|
struct list_head ls_requestqueue;/* queue remote requests */
|
||||||
struct mutex ls_requestqueue_mutex;
|
struct mutex ls_requestqueue_mutex;
|
||||||
char *ls_recover_buf;
|
struct dlm_rcom *ls_recover_buf;
|
||||||
int ls_recover_nodeid; /* for debugging */
|
int ls_recover_nodeid; /* for debugging */
|
||||||
uint64_t ls_rcom_seq;
|
uint64_t ls_rcom_seq;
|
||||||
spinlock_t ls_rcom_spin;
|
spinlock_t ls_rcom_spin;
|
||||||
|
|
|
@ -129,7 +129,7 @@ int dlm_rcom_status(struct dlm_ls *ls, int nodeid)
|
||||||
ls->ls_recover_nodeid = nodeid;
|
ls->ls_recover_nodeid = nodeid;
|
||||||
|
|
||||||
if (nodeid == dlm_our_nodeid()) {
|
if (nodeid == dlm_our_nodeid()) {
|
||||||
rc = (struct dlm_rcom *) ls->ls_recover_buf;
|
rc = ls->ls_recover_buf;
|
||||||
rc->rc_result = dlm_recover_status(ls);
|
rc->rc_result = dlm_recover_status(ls);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
@ -148,7 +148,7 @@ int dlm_rcom_status(struct dlm_ls *ls, int nodeid)
|
||||||
if (error)
|
if (error)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
rc = (struct dlm_rcom *) ls->ls_recover_buf;
|
rc = ls->ls_recover_buf;
|
||||||
|
|
||||||
if (rc->rc_result == -ESRCH) {
|
if (rc->rc_result == -ESRCH) {
|
||||||
/* we pretend the remote lockspace exists with 0 status */
|
/* we pretend the remote lockspace exists with 0 status */
|
||||||
|
@ -202,14 +202,15 @@ int dlm_rcom_names(struct dlm_ls *ls, int nodeid, char *last_name, int last_len)
|
||||||
{
|
{
|
||||||
struct dlm_rcom *rc;
|
struct dlm_rcom *rc;
|
||||||
struct dlm_mhandle *mh;
|
struct dlm_mhandle *mh;
|
||||||
int error = 0, len = sizeof(struct dlm_rcom);
|
int error = 0;
|
||||||
|
int max_size = dlm_config.ci_buffer_size - sizeof(struct dlm_rcom);
|
||||||
|
|
||||||
ls->ls_recover_nodeid = nodeid;
|
ls->ls_recover_nodeid = nodeid;
|
||||||
|
|
||||||
if (nodeid == dlm_our_nodeid()) {
|
if (nodeid == dlm_our_nodeid()) {
|
||||||
dlm_copy_master_names(ls, last_name, last_len,
|
dlm_copy_master_names(ls, last_name, last_len,
|
||||||
ls->ls_recover_buf + len,
|
ls->ls_recover_buf->rc_buf,
|
||||||
dlm_config.ci_buffer_size - len, nodeid);
|
max_size, nodeid);
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -94,7 +94,7 @@ void dlm_set_recover_status(struct dlm_ls *ls, uint32_t status)
|
||||||
|
|
||||||
static int wait_status_all(struct dlm_ls *ls, uint32_t wait_status)
|
static int wait_status_all(struct dlm_ls *ls, uint32_t wait_status)
|
||||||
{
|
{
|
||||||
struct dlm_rcom *rc = (struct dlm_rcom *) ls->ls_recover_buf;
|
struct dlm_rcom *rc = ls->ls_recover_buf;
|
||||||
struct dlm_member *memb;
|
struct dlm_member *memb;
|
||||||
int error = 0, delay;
|
int error = 0, delay;
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ static int wait_status_all(struct dlm_ls *ls, uint32_t wait_status)
|
||||||
|
|
||||||
static int wait_status_low(struct dlm_ls *ls, uint32_t wait_status)
|
static int wait_status_low(struct dlm_ls *ls, uint32_t wait_status)
|
||||||
{
|
{
|
||||||
struct dlm_rcom *rc = (struct dlm_rcom *) ls->ls_recover_buf;
|
struct dlm_rcom *rc = ls->ls_recover_buf;
|
||||||
int error = 0, delay = 0, nodeid = ls->ls_low_nodeid;
|
int error = 0, delay = 0, nodeid = ls->ls_low_nodeid;
|
||||||
|
|
||||||
for (;;) {
|
for (;;) {
|
||||||
|
|
Loading…
Reference in New Issue