From f600d51ace8e960f142f67c4d9139fd9d0914c9f Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Tue, 13 Sep 2016 15:17:59 -0700 Subject: [PATCH] dll: fuse: SetReparsePoint testing --- src/dll/fuse/fuse_intf.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/dll/fuse/fuse_intf.c b/src/dll/fuse/fuse_intf.c index 6ae62434..32a87537 100644 --- a/src/dll/fuse/fuse_intf.c +++ b/src/dll/fuse/fuse_intf.c @@ -324,7 +324,7 @@ loopend:; memset(&stbuf, 0, sizeof stbuf); if (0 != f->ops.getattr) - err = f->ops.getattr(PosixPath, (void *)&stbuf); + err = f->ops.getattr(PosixHiddenPath, (void *)&stbuf); else err = -ENOSYS; } while (0 == err && 0 < --maxtries); @@ -2034,6 +2034,11 @@ static NTSTATUS fsp_fuse_intf_SetReparsePoint(FSP_FILE_SYSTEM *FileSystem, } } + /* + * At least SSHFS has problems with chown as it attempts to chown the target file + * rather than lchown the symlink. So comment out for now! + */ +#if 0 if (0 != f->ops.chown) { err = f->ops.chown(PosixHiddenPath, Uid, Gid); @@ -2046,6 +2051,7 @@ static NTSTATUS fsp_fuse_intf_SetReparsePoint(FSP_FILE_SYSTEM *FileSystem, goto exit; } } +#endif err = f->ops.rename(PosixHiddenPath, filedesc->PosixPath); if (0 != err)