symlink: nfs41_symlink_follow() for readdir and open
added nfs41_file_info.symlink_dir to replace readdir's info.cansettime hack. when nfs_file_info_to_attributes() finds info.type==NF4LNK, it adds the FILE_ATTRIBUTE_DIRECTORY flag if info.symlink_dir is set renamed nfs41_symlink_follow() to nfs41_symlink_target() generalized lookup_symlink() into nfs41_symlink_follow(), which is called by readdir and open (also avoids an extra lookup) added queries for symlink target type when doing normal GETATTRs (getattr.c) and opens with OPEN_REPARSE_POINT set (open.c) Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
a8f66804d5
commit
eb9d9bbd4c
7 changed files with 80 additions and 36 deletions
|
|
@ -1022,11 +1022,17 @@ int nfs41_link(
|
|||
OUT OPTIONAL nfs41_path_fh *link_out);
|
||||
|
||||
/* symlink.c */
|
||||
int nfs41_symlink_follow(
|
||||
int nfs41_symlink_target(
|
||||
IN nfs41_session *session,
|
||||
IN nfs41_path_fh *file,
|
||||
OUT nfs41_abs_path *target);
|
||||
|
||||
int nfs41_symlink_follow(
|
||||
IN nfs41_root *root,
|
||||
IN nfs41_session *session,
|
||||
IN nfs41_path_fh *symlink,
|
||||
OUT nfs41_file_info *info);
|
||||
|
||||
int nfs41_readlink(
|
||||
IN nfs41_session *session,
|
||||
IN nfs41_path_fh *file,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue