diff -urN mkinitrd-6.0.34.orig/nash/dm.c mkinitrd-6.0.34/nash/dm.c --- mkinitrd-6.0.34.orig/nash/dm.c 2008-03-07 01:20:34.000000000 +0100 +++ mkinitrd-6.0.34/nash/dm.c 2008-03-17 18:20:28.030341407 +0100 @@ -48,7 +48,7 @@ return -1; if (name) dm_task_set_name(*task, name); - ret = dm_task_run(*task); + ret = dm_task_run(*task) ? 1 : -1; if (ret < 0) { dm_task_destroy(*task); *task = NULL; @@ -144,7 +144,10 @@ return 0; dm_task_set_name(task, name); - dm_task_run(task); + if (!dm_task_run(task)) { + dm_task_destroy(task); + return 0; + } dm_task_get_info(task, &info); if (!info.exists) { @@ -216,10 +219,7 @@ dm_task_update_nodes(); - if (rc < 0) - return 0; - - return 1; + return rc; } #if 0 @@ -267,10 +267,7 @@ dm_task_update_nodes(); - if (rc < 0) - return 0; - - return 1; + return rc; } #if 0 @@ -504,8 +501,7 @@ free(iter); return NULL; } - dm_task_run(task); - if (!(dmnames = dm_task_get_names(task))) { + if (!dm_task_run(task) || !(dmnames = dm_task_get_names(task))) { dm_task_destroy(task); goto out; }