Skip to content

Commit

Permalink
[DLM] fix oops in kref_put when removing a lockspace
Browse files Browse the repository at this point in the history
Now that the lockspace struct is freed when the last sysfs object is released
this patch prevents use of that lockspace by sysfs. We attempt to re-get the
lockspace from the lockspace list and fail the request if it has been removed.

Signed-Off-By: Patrick Caulfield <pcaulfie@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
  • Loading branch information
Patrick Caulfield authored and Steven Whitehouse committed Nov 6, 2006
1 parent ba542e3 commit e2de7f5
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions fs/dlm/lockspace.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,10 @@ static ssize_t dlm_control_store(struct dlm_ls *ls, const char *buf, size_t len)
ssize_t ret = len;
int n = simple_strtol(buf, NULL, 0);

ls = dlm_find_lockspace_local(ls->ls_local_handle);
if (!ls)
return -EINVAL;

switch (n) {
case 0:
dlm_ls_stop(ls);
Expand All @@ -53,6 +57,7 @@ static ssize_t dlm_control_store(struct dlm_ls *ls, const char *buf, size_t len)
default:
ret = -EINVAL;
}
dlm_put_lockspace(ls);
return ret;
}

Expand Down

0 comments on commit e2de7f5

Please sign in to comment.