#include <afsconfig.h>
#include <afs/param.h>
-RCSID("$Header: /tmp/cvstemp/openafs/src/viced/afsfileprocs.c,v 1.8 2002/05/12 05:50:44 hartmans Exp $");
+RCSID("$Header: /tmp/cvstemp/openafs/src/viced/afsfileprocs.c,v 1.9 2002/06/10 12:02:03 hartmans Exp $");
#include <stdio.h>
#include <stdlib.h>
struct client *t_client; /* tmp ptr to client data */
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
+ 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 client *t_client; /* tmp ptr to client data */
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
+ 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 client *t_client; /* tmp ptr to client data */
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
+ 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;
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
FdHandle_t *fdP;
+ 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 client *t_client; /* tmp ptr to client data */
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
+ 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 client *t_client; /* tmp ptr to client data */
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
+ 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 client *t_client; /* tmp ptr to client data */
struct in_addr logHostAddr; /* host ip holder for inet_ntoa */
+ 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);