diff --git a/fs/dlm/user.c b/fs/dlm/user.c index 322a6bcd70a20ceb2dc6027514b39736bc325693..d18e7a539f116209e3a7d0a972d7ca4a28522a09 100644 --- a/fs/dlm/user.c +++ b/fs/dlm/user.c @@ -357,6 +357,10 @@ static int dlm_device_register(struct dlm_ls *ls, char *name) error = misc_register(&ls->ls_device); if (error) { kfree(ls->ls_device.name); + /* this has to be set to NULL + * to avoid a double-free in dlm_device_deregister + */ + ls->ls_device.name = NULL; } fail: return error;