src/cmd.c | 11 ++++++----- src/resource.c | 7 +++---- src/resource.h | 5 +++-- 3 files changed, 12 insertions(+), 11 deletions(-)
New commits: commit db393f0dcf036320d4d524a27daefce21ba3c862 Author: David Teigland teigland@redhat.com Date: Wed Feb 15 14:01:11 2012 -0600
sanlock: fix debug line
and shift where save_resource_lver is called (no change in behavior)
Signed-off-by: David Teigland teigland@redhat.com
diff --git a/src/cmd.c b/src/cmd.c index d44b835..0c65b06 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -350,6 +350,7 @@ static void cmd_acquire(struct task *task, struct cmd_args *ca) result = rv; goto done; } + save_resource_lver(token, token->leader.lver); acquire_count++; }
diff --git a/src/resource.c b/src/resource.c index 9002f06..ea9d7bb 100644 --- a/src/resource.c +++ b/src/resource.c @@ -83,7 +83,7 @@ static struct resource *find_resource(struct token *token, return NULL; }
-static void save_resource_lver(struct token *token, uint64_t lver) +void save_resource_lver(struct token *token, uint64_t lver) { struct resource *r;
@@ -190,15 +190,14 @@ int acquire_token(struct task *task, struct token *token, close_disks(token->disks, token->r.num_disks);
log_token(token, "acquire rv %d lver %llu at %llu", rv, - (unsigned long long)token->leader.lver, - (unsigned long long)token->leader.timestamp); + (unsigned long long)leader_ret.lver, + (unsigned long long)leader_ret.timestamp);
if (rv < 0) return rv;
memcpy(&token->leader, &leader_ret, sizeof(struct leader_record)); token->r.lver = token->leader.lver; - save_resource_lver(token, token->leader.lver); return rv; /* SANLK_OK */ }
diff --git a/src/resource.h b/src/resource.h index 72de40a..85f3be5 100644 --- a/src/resource.h +++ b/src/resource.h @@ -6,8 +6,8 @@ * of the GNU General Public License v2 or (at your option) any later version. */
-#ifndef __TOKEN_MANAGER_H__ -#define __TOKEN_MANAGER_H__ +#ifndef __RESOURCE_H__ +#define __RESOURCE_H__
int acquire_token(struct task *task, struct token *token, uint64_t acquire_lver, int new_num_hosts); @@ -21,6 +21,7 @@ int request_token(struct task *task, struct token *token, uint32_t force_mode,
int add_resource(struct token *token, int pid, uint32_t cl_restrict); void del_resource(struct token *token); +void save_resource_lver(struct token *token, uint64_t lver);
int set_resource_examine(char *space_name, char *res_name);
commit 24009b9f13d4c5a1d9becf9e856159016c111b75 Author: David Teigland teigland@redhat.com Date: Wed Feb 15 13:57:23 2012 -0600
sanlock: fix error exit
missing free
Signed-off-by: David Teigland teigland@redhat.com
diff --git a/src/cmd.c b/src/cmd.c index 3cef77d..d44b835 100644 --- a/src/cmd.c +++ b/src/cmd.c @@ -766,9 +766,8 @@ static void cmd_request(struct task *task, struct cmd_args *ca)
rv = recv(fd, token->disks, disks_len, MSG_WAITALL); if (rv != disks_len) { - free(token); result = -ENOTCONN; - goto reply; + goto reply_free; }
/* zero out pad1 and pad2, see WARNING above */ @@ -787,18 +786,19 @@ static void cmd_request(struct task *task, struct cmd_args *ca) error = request_token(task, token, force_mode, &owner_id); if (error < 0) { result = error; - goto reply; + goto reply_free; }
result = 0;
if (!token->acquire_lver && !force_mode) - goto reply; + goto reply_free;
if (owner_id) host_status_set_bit(token->r.lockspace_name, owner_id); - reply: + reply_free: free(token); + reply: log_debug("cmd_request %d,%d done %d", ca->ci_in, fd, result);
send_result(fd, &ca->header, result);
sanlock-devel@lists.fedorahosted.org