Skip to content

Commit 8e2bad5

Browse files
Thadeu Lima de Souza Cascardoteigland
authored andcommitted
dlm: prevent NPD when writing a positive value to event_done
do_uevent returns the value written to event_done. In case it is a positive value, new_lockspace would undo all the work, and lockspace would not be set. __dlm_new_lockspace, however, would treat that positive value as a success due to commit 8511a27 ("dlm: fix use count with multiple joins"). Down the line, device_create_lockspace would pass that NULL lockspace to dlm_find_lockspace_local, leading to a NULL pointer dereference. Treating such positive values as successes prevents the problem. Given this has been broken for so long, this is unlikely to break userspace expectations. Fixes: 8511a27 ("dlm: fix use count with multiple joins") Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]> Signed-off-by: David Teigland <[email protected]>
1 parent a53a633 commit 8e2bad5

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

fs/dlm/lockspace.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -576,7 +576,7 @@ static int new_lockspace(const char *name, const char *cluster,
576576
lockspace to start running (via sysfs) in dlm_ls_start(). */
577577

578578
error = do_uevent(ls, 1);
579-
if (error)
579+
if (error < 0)
580580
goto out_recoverd;
581581

582582
/* wait until recovery is successful or failed */

0 commit comments

Comments
 (0)