mirror of
				https://github.com/winfsp/winfsp.git
				synced 2025-10-31 12:08:41 -05:00 
			
		
		
		
	sys, dll: implement POSIX semantics for Rename
This commit is contained in:
		| @@ -383,7 +383,10 @@ NTSTATUS FspFileSystemRenameCheck(FSP_FILE_SYSTEM *FileSystem, | ||||
|         Request->Req.SetInformation.Info.Rename.NewFileName.Size; | ||||
|     CreateRequest->Kind = FspFsctlTransactCreateKind; | ||||
|     CreateRequest->Req.Create.CreateOptions = | ||||
|         FILE_DELETE_ON_CLOSE |          /* force read-only check! */ | ||||
|         (65/*FileRenameInformationEx*/ == Request->Req.SetInformation.FileInformationClass && | ||||
|         0 != (0x40/*IGNORE_READONLY_ATTRIBUTE*/ & Request->Req.SetInformation.Info.RenameEx.Flags) ? | ||||
|             0 : | ||||
|             FILE_DELETE_ON_CLOSE) |     /* force read-only check! */ | ||||
|         FILE_OPEN_REPARSE_POINT;        /* allow rename over reparse point */ | ||||
|     CreateRequest->Req.Create.AccessToken = Request->Req.SetInformation.Info.Rename.AccessToken; | ||||
|     CreateRequest->Req.Create.UserMode = TRUE; | ||||
|   | ||||
| @@ -141,7 +141,8 @@ NTSTATUS fsp_fuse_op_enter(FSP_FILE_SYSTEM *FileSystem, | ||||
|         AccessToken = Request->Req.Create.AccessToken; | ||||
|     } | ||||
|     else if (FspFsctlTransactSetInformationKind == Request->Kind && | ||||
|         10/*FileRenameInformation*/ == Request->Req.SetInformation.FileInformationClass) | ||||
|         (10/*FileRenameInformation*/ == Request->Req.SetInformation.FileInformationClass || | ||||
|         65/*FileRenameInformationEx*/ == Request->Req.SetInformation.FileInformationClass)) | ||||
|     { | ||||
|         FileName = (PWSTR)(Request->Buffer + Request->Req.SetInformation.Info.Rename.NewFileName.Offset); | ||||
|         AccessToken = Request->Req.SetInformation.Info.Rename.AccessToken; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user