if (clinode && (clinode == rwinode)) {
clinode = 0; /* already cloned - don't delete later */
} else if (rwinode) {
- assert(IH_INC(V_linkHandle(rwvp), rwinode, V_parentId(rwvp)) != -1);
- inodeinced = 1;
+ if (IH_INC(V_linkHandle(rwvp), rwinode, V_parentId(rwvp)) == -1) {
+ Log("IH_INC failed: %x, %s, %d errno %d\n",
+ V_linkHandle(rwvp), PrintInode(NULL, rwinode),
+ V_parentId(rwvp), errno);
+ assert(0);
+ }
+ inodeinced = 1;
}
/* If a directory, mark vnode in old volume as cloned */
clonefailed:
/* Couldn't clone, go back and decrement the inode's link count */
if (inodeinced) {
- assert(IH_DEC(V_linkHandle(rwvp), rwinode, V_parentId(rwvp)) != -1);
+ if (IH_DEC(V_linkHandle(rwvp), rwinode, V_parentId(rwvp)) == -1) {
+ Log("IH_DEC failed: %x, %s, %d errno %d\n",
+ V_linkHandle(rwvp), PrintInode(NULL, rwinode),
+ V_parentId(rwvp), errno);
+ assert(0);
+ }
}
/* And if the directory was marked clone, unmark it */
if (dircloned) {