ms-nfs41-client/daemon
Casey Bodley 30cc2e1d32 symlink: readdir and directory symlinks
windows differentiates between directory and file symlinks because a file can have both FILE_ATTRIBUTE_DIRECTORY and FILE_ATTRIBUTE_REPARSE_POINT flags.  nfs can only be one of NF4REG/DIR/LNK, so we have to do a readlink and look up the target file for symlinks to know whether or not to set the directory attribute flag.  this is done recursively when we encounter links to links

Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
2010-10-14 12:42:37 -04:00
..
callback_server.c cb_args should be allocated 2010-10-13 14:46:02 -04:00
callback_xdr.c fresh git tree for public release 2010-10-12 10:15:48 -04:00
daemon_debug.c symlink: daemon parses SYMLINK upcall 2010-10-14 12:42:33 -04:00
daemon_debug.h daemon: logging to files 2010-10-12 10:36:04 -04:00
from_kernel.h volume: daemon handles FileFsAttributeInformation 2010-10-12 10:35:51 -04:00
getattr.c symlink: set reparse tag for symlinks 2010-10-14 12:42:32 -04:00
list.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
lock.c upcall: set upcall.status on parse failure 2010-10-12 10:36:08 -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 max_path: make an abs_path for lookup on mount 2010-10-12 10:36:10 -04:00
name_cache.c name cache: bug fix for name_cache_search() 2010-10-12 10:35:48 -04:00
name_cache.h name cache: insert supports negative entries 2010-10-12 10:35:43 -04:00
namespace.c max_path: make an abs_path for lookup on mount 2010-10-12 10:36:10 -04:00
nfs41.h max_path: make an abs_path for lookup on mount 2010-10-12 10:36:10 -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 bumping seq if decoded successfully 2010-10-13 14:46:25 -04:00
nfs41_compound.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
nfs41_const.h max_path: raise MAX_PATH and UPCALL_BUF_SIZE 2010-10-12 10:36:11 -04:00
nfs41_daemon.c upcall: set upcall.status on parse failure 2010-10-12 10:36:08 -04:00
nfs41_ops.c symlink: nfs41_create() can create symlinks 2010-10-14 12:42:35 -04:00
nfs41_ops.h symlink: nfs41_create() can create symlinks 2010-10-14 12:42:35 -04:00
nfs41_rpc.c daemon: logging to files 2010-10-12 10:36:04 -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 timestamps: superblock stores attributes cansettime,time_delta 2010-10-12 10:35:52 -04:00
nfs41_types.h timestamps: superblock stores attributes cansettime,time_delta 2010-10-12 10:35:52 -04:00
nfs41_xdr.c symlink: nfs41_create() can create symlinks 2010-10-14 12:42:35 -04:00
nfs41_xdr.h fresh git tree for public release 2010-10-12 10:15:48 -04:00
open.c symlink: handle_open() detects symlink creation 2010-10-14 12:42:36 -04:00
pnfs.h pnfs: set stateid.seqid to 0 for data server io 2010-10-12 12:11:27 -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 pnfs: check status of pnfs_file_device_io_unit() 2010-10-12 12:11:49 -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 symlink: readdir and directory symlinks 2010-10-14 12:42:37 -04:00
readwrite.c upcall: set upcall.status on parse failure 2010-10-12 10:36:08 -04:00
service.c first stab at nfsd as a service 2010-10-12 10:36:03 -04:00
service.h first stab at nfsd as a service 2010-10-12 10:36:03 -04:00
setattr.c max_path: get_name() avoids copying from upcall buffer 2010-10-12 10:36:10 -04:00
sources STANDALONE_NFSD enabled 2010-10-14 11:45:51 -04:00
symlink.c symlink: handle_open() detects symlink creation 2010-10-14 12:42:36 -04:00
upcall.c symlink: daemon parses SYMLINK upcall 2010-10-14 12:42:33 -04:00
upcall.h symlink: daemon parses SYMLINK upcall 2010-10-14 12:42:33 -04:00
util.c symlink: handle_open() detects symlink creation 2010-10-14 12:42:36 -04:00
util.h max_path: get_name() avoids copying from upcall buffer 2010-10-12 10:36:10 -04:00
volume.c upcall: set upcall.status on parse failure 2010-10-12 10:36:08 -04:00