X-Git-Url: https://wimlib.net/git/?a=blobdiff_plain;f=src%2Fupdate_image.c;h=06a6ad30261434a3a6a0107602b29831bb2b07ef;hb=74d4d4b70eda3ab6e5f30e9d8c019034ce8fba15;hp=3e7613fcfa5dbc12e37a7bdd3985a1cc24b764cb;hpb=8c502bdb549cddf3d42d56731467c45cc2b8e503;p=wimlib diff --git a/src/update_image.c b/src/update_image.c index 3e7613fc..06a6ad30 100644 --- a/src/update_image.c +++ b/src/update_image.c @@ -1022,28 +1022,23 @@ rename_wim_path(WIMStruct *wim, const tchar *from, const tchar *to, return -EBUSY; if (j) { + if (dst) + if (journaled_unlink(j, dst)) + return -ENOMEM; + if (journaled_unlink(j, src)) + return -ENOMEM; if (journaled_change_name(j, src, path_basename(to))) return -ENOMEM; + if (journaled_link(j, src, parent_of_dst)) + return -ENOMEM; } else { ret = dentry_set_name(src, path_basename(to)); if (ret) return -ENOMEM; - } - if (dst) { - if (j) { - if (journaled_unlink(j, dst)) - return -ENOMEM; - } else { + if (dst) { unlink_dentry(dst); free_dentry_tree(dst, wim->lookup_table); } - } - if (j) { - if (journaled_unlink(j, src)) - return -ENOMEM; - if (journaled_link(j, src, parent_of_dst)) - return -ENOMEM; - } else { unlink_dentry(src); dentry_add_child(parent_of_dst, src); }