OpenAFS CVS Commit: openafs/src/WINNT/afsd by jaltman
cvs@GRAND.CENTRAL.ORG
cvs@GRAND.CENTRAL.ORG
Fri, 20 Feb 2009 23:19:23 EST
Update of /cvs/openafs/src/WINNT/afsd
In directory GRAND.CENTRAL.ORG:/home/jaltman/openafs/cvs-head/src/WINNT/afsd
Modified Files:
cm_vnodeops.c
Log Message:
DELTA windows-rename-cross-dir-invalid-handle-20090220
AUTHOR jaltman@secure-endpoints.com
LICENSE MIT
Problems with the cm_Rename() functions:
* when a rename occurs across directories, the file server allocates
a new vnode which in turn alters the FID. Since the new FID and
potentially version number is unknown to the client, it is not
possible to update the target directory with the new name and
FID thereby avoiding reading the directory from the file server.
* when the old vnode is removed, the callback is broken but the
client did not discard the cm_scache_t object
In order to optimize the client cache AFS requires a RXAFS_RenameEx
rpc that is equivalent to the current RPC but returns the new FID
and status. This would permit the cache manager to relabel the
data buffers and cm_scache_t that are known to contain valid data.
--- DELTA config follows ---
windows-rename-cross-dir-invalid-handle-20090220 openafs/src/WINNT/afsd/cm_vnodeops.c 1.164 1.165