ms-nfs41-client/daemon
Casey Bodley c72007f076 name cache: LINK inserts target to name cache
the link part of basic test7 was failing because LINK's target was still cached as a negative entry, leading to the error "can't stat newfile.0 after link".  the solution is to replace the negative entry with the real fh and attributes of the target file

so instead of doing RESTOREFH+GETATTR on the source file and calling nfs41_attr_cache_update(), nfs41_link() uses LOOKUP+GETATTR+GETFH to get attributes for the target file and passes them to nfs41_name_cache_insert() along with dst_dir's changeinfo.  because the source and target file will have the same fileid attribute, nfs41_name_cache_insert() will update the attributes of both at the same time.  added the target file as an optional return parameter

Signed-off-by: Casey Bodley <cbodley@umich.edu>
2010-10-12 10:35:48 -04:00
..
callback_server.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
callback_xdr.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
daemon_debug.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
daemon_debug.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
from_kernel.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
getattr.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
list.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
lock.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
lookup.c name cache: lookup semantics match nfs41_lookup() on NOENT 2010-10-12 10:35:47 -04:00
makefile fresh git tree for public release 2010-10-12 10:15:48 -04:00
mount.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
name_cache.c cosmetic: comment describing negative lookup caching 2010-10-12 10:35:47 -04:00
name_cache.h name cache: insert supports negative entries 2010-10-12 10:35:43 -04:00
namespace.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_callback.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_client.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_compound.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_compound.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_const.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_daemon.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_ops.c name cache: LINK inserts target to name cache 2010-10-12 10:35:48 -04:00
nfs41_ops.h name cache: LINK inserts target to name cache 2010-10-12 10:35:48 -04:00
nfs41_rpc.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_server.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_session.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_superblock.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_types.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_xdr.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_xdr.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
open.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
pnfs.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
pnfs_debug.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
pnfs_device.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
pnfs_io.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
pnfs_layout.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
rbtree.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
rbtree.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
readdir.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
readwrite.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
setattr.c name cache: LINK inserts target to name cache 2010-10-12 10:35:48 -04:00
sources fresh git tree for public release 2010-10-12 10:15:48 -04:00
upcall.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
upcall.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
util.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
util.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
volume.c fresh git tree for public release 2010-10-12 10:15:48 -04:00