struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
struct rx_connection *tcon = rx_ConnectionOf(acall);
+ FidZero(&dir);
/* Get ptr to client data for user Id for logging */
t_client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
logHostAddr.s_addr = rx_HostOf(rx_PeerOf(tcon));
Bad_RemoveFile:
/* Update and store volume/vnode and parent vnodes back */
PutVolumePackage(parentwhentargetnotdir, targetptr, parentptr, volptr);
+ FidZap(&dir);
ViceLog(2, ("SAFS_RemoveFile returns %d\n", errorCode));
return errorCode;
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
struct rx_connection *tcon = rx_ConnectionOf(acall);
+ FidZero(&dir);
+
/* Get ptr to client data for user Id for logging */
t_client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
logHostAddr.s_addr = rx_HostOf(rx_PeerOf(tcon));
Bad_CreateFile:
/* Update and store volume/vnode and parent vnodes back */
PutVolumePackage(parentwhentargetnotdir, targetptr, parentptr, volptr);
+ FidZap(&dir);
ViceLog(2, ("SAFS_CreateFile returns %d\n", errorCode));
return errorCode;
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
struct rx_connection *tcon = rx_ConnectionOf(acall);
+ FidZero(&olddir);
+ FidZero(&newdir);
+ FidZero(&filedir);
+ FidZero(&newfiledir);
+
/* Get ptr to client data for user Id for logging */
t_client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
logHostAddr.s_addr = rx_HostOf(rx_PeerOf(tcon));
}
PutVolumePackage(fileptr, (newvptr && newvptr != oldvptr? newvptr : 0),
oldvptr, volptr);
+ FidZap(&olddir);
+ FidZap(&newdir);
+ FidZap(&filedir);
+ FidZap(&newfiledir);
ViceLog(2, ("SAFS_Rename returns %d\n", errorCode));
return errorCode;
FdHandle_t *fdP;
struct rx_connection *tcon = rx_ConnectionOf(acall);
+ FidZero(&dir);
+
/* Get ptr to client data for user Id for logging */
t_client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
logHostAddr.s_addr = rx_HostOf(rx_PeerOf(tcon));
Bad_SymLink:
/* Write the all modified vnodes (parent, new files) and volume back */
PutVolumePackage(parentwhentargetnotdir, targetptr, parentptr, volptr);
+ FidZap(&dir);
ViceLog(2, ("SAFS_Symlink returns %d\n", errorCode));
return errorCode;
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
struct rx_connection *tcon = rx_ConnectionOf(acall);
+ FidZero(&dir);
+
/* Get ptr to client data for user Id for logging */
t_client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
logHostAddr.s_addr = rx_HostOf(rx_PeerOf(tcon));
Bad_Link:
/* Write the all modified vnodes (parent, new files) and volume back */
PutVolumePackage(parentwhentargetnotdir, targetptr, parentptr, volptr);
+ FidZap(&dir);
ViceLog(2, ("SAFS_Link returns %d\n", errorCode));
return errorCode;
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
struct rx_connection *tcon = rx_ConnectionOf(acall);
+ FidZero(&dir);
+ FidZero(&parentdir);
+
/* Get ptr to client data for user Id for logging */
t_client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
logHostAddr.s_addr = rx_HostOf(rx_PeerOf(tcon));
Update_TargetVnodeStatus(targetptr, TVS_MKDIR, client, InStatus,
parentptr, volptr, 0);
- /* Actually create the New directory in the directory package */
+ /* Actually create the New directory in the directory package */
SetDirHandle(&dir, targetptr);
assert(!(MakeDir(&dir, OutFid, DirFid)));
DFlush();
Bad_MakeDir:
/* Write the all modified vnodes (parent, new files) and volume back */
PutVolumePackage(parentwhentargetnotdir, targetptr, parentptr, volptr);
+ FidZap(&dir);
+ FidZap(&parentdir);
ViceLog(2, ("SAFS_MakeDir returns %d\n", errorCode));
return errorCode;
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
struct rx_connection *tcon = rx_ConnectionOf(acall);
+ FidZero(&dir);
+
/* Get ptr to client data for user Id for logging */
t_client = (struct client *) rx_GetSpecific(tcon, rxcon_client_key);
logHostAddr.s_addr = rx_HostOf(rx_PeerOf(tcon));
Bad_RemoveDir:
/* Write the all modified vnodes (parent, new files) and volume back */
PutVolumePackage(parentwhentargetnotdir, targetptr, parentptr, volptr);
+ FidZap(&dir);
ViceLog(2, ("SAFS_RemoveDir returns %d\n", errorCode));
return errorCode;
ViceLog(0,("CopyOnWrite failed: volume %u in partition %s (tried reading %u, read %u, wrote %u, errno %u) volume needs salvage\n",
V_id(volptr), volptr->partition->name, length,
rdlen, wrlen, errno));
+ assert(0);
/* Decrement this inode so salvager doesn't find it. */
FDH_REALLYCLOSE(newFdP);
IH_RELEASE(newH);