X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libsysio%2Fsrc%2Frename.c;h=05606cac781f3d6cd65ac8a8e81acf912642c892;hb=fc75c4b4f597f095fc16d6119427f17f0d8e2a85;hp=269516b8c823168b70486df1247ef5e660bd2142;hpb=58fa00472edb92e5cef936727774625b47e70ec3;p=fs%2Flustre-release.git diff --git a/libsysio/src/rename.c b/libsysio/src/rename.c index 269516b8..05606ca 100644 --- a/libsysio/src/rename.c +++ b/libsysio/src/rename.c @@ -127,7 +127,7 @@ SYSIO_INTERFACE_NAME(rename)(const char *oldpath, const char *newpath) * If old == new, we're done. */ if (old->p_base->pb_ino == new->p_base->pb_ino) - goto out; + goto short_out; if (new->p_base->pb_ino) { /* @@ -175,8 +175,9 @@ SYSIO_INTERFACE_NAME(rename)(const char *oldpath, const char *newpath) if (new->p_base->pb_ino) I_GONE(new->p_base->pb_ino); new->p_base->pb_ino = old->p_base->pb_ino; - I_REF(new->p_base->pb_ino); + old->p_base->pb_ino = NULL; +short_out: error1: P_RELE(new); error2: @@ -184,7 +185,6 @@ error2: error3: if (err) goto out; - _sysio_p_gone(old); /* kill it! */ out: SYSIO_INTERFACE_RETURN(err ? -1 : 0, err); }