https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e6cd48809abe178cc9b5c20670ce1a8770ae9d2d

commit e6cd48809abe178cc9b5c20670ce1a8770ae9d2d
Author:     Pierre Schweitzer <pie...@reactos.org>
AuthorDate: Tue Dec 25 13:50:07 2018 +0100
Commit:     Pierre Schweitzer <pie...@reactos.org>
CommitDate: Tue Dec 25 13:50:41 2018 +0100

    [BTRFS] Reduce diff with upstream
    
    CORE-15452
---
 drivers/filesystems/btrfs/btrfs_drv.h | 12 ++++++++++++
 drivers/filesystems/btrfs/create.c    |  6 ------
 2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/drivers/filesystems/btrfs/btrfs_drv.h 
b/drivers/filesystems/btrfs/btrfs_drv.h
index e6ea5891f3..3ccb10ac06 100644
--- a/drivers/filesystems/btrfs/btrfs_drv.h
+++ b/drivers/filesystems/btrfs/btrfs_drv.h
@@ -1856,6 +1856,11 @@ NTSTATUS NTAPI ZwQueryInformationProcess(
 #endif
 #endif
 
+#if defined(__REACTOS__) && (NTDDI_VERSION < NTDDI_VISTA)
+typedef struct _ECP_LIST ECP_LIST;
+typedef struct _ECP_LIST *PECP_LIST;
+#endif
+
 #if defined(__REACTOS__) && (NTDDI_VERSION < NTDDI_WIN7)
 NTSTATUS WINAPI RtlUnicodeToUTF8N(CHAR *utf8_dest, ULONG utf8_bytes_max,
                                   ULONG *utf8_bytes_written,
@@ -1870,6 +1875,13 @@ NTSTATUS NTAPI FsRtlRemoveDotsFromPath(PWSTR 
OriginalString,
 NTSTATUS NTAPI FsRtlValidateReparsePointBuffer(ULONG BufferLength,
                                                PREPARSE_DATA_BUFFER 
ReparseBuffer);
 ULONG NTAPI KeQueryActiveProcessorCount(PKAFFINITY ActiveProcessors);
+NTSTATUS NTAPI FsRtlGetEcpListFromIrp(IN PIRP Irp,
+                                      OUT PECP_LIST *EcpList);
+NTSTATUS NTAPI FsRtlGetNextExtraCreateParameter(IN PECP_LIST EcpList,
+                                                IN PVOID CurrentEcpContext,
+                                                OUT LPGUID NextEcpType 
OPTIONAL,
+                                                OUT PVOID *NextEcpContext,
+                                                OUT PULONG NextEcpContextSize 
OPTIONAL);
 #endif /* defined(__REACTOS__) && (NTDDI_VERSION < NTDDI_VISTA) */
 
 #endif
diff --git a/drivers/filesystems/btrfs/create.c 
b/drivers/filesystems/btrfs/create.c
index 1b4417e802..2cde2371e8 100644
--- a/drivers/filesystems/btrfs/create.c
+++ b/drivers/filesystems/btrfs/create.c
@@ -2510,10 +2510,8 @@ static NTSTATUS file_create(PIRP Irp, 
_Requires_lock_held_(_Curr_->tree_lock) _R
     UNICODE_STRING dsus, fpus, stream;
     PIO_STACK_LOCATION IrpSp = IoGetCurrentIrpStackLocation(Irp);
     POOL_TYPE pool_type = IrpSp->Flags & SL_OPEN_PAGING_FILE ? NonPagedPool : 
PagedPool;
-#ifndef __REACTOS__
     ECP_LIST* ecp_list;
     ATOMIC_CREATE_ECP_CONTEXT* acec = NULL;
-#endif
 #ifdef DEBUG_FCB_REFCOUNTS
     LONG oc;
 #endif
@@ -2526,7 +2524,6 @@ static NTSTATUS file_create(PIRP Irp, 
_Requires_lock_held_(_Curr_->tree_lock) _R
     if (options & FILE_DELETE_ON_CLOSE && 
IrpSp->Parameters.Create.FileAttributes & FILE_ATTRIBUTE_READONLY)
         return STATUS_CANNOT_DELETE;
 
-#ifndef __REACTOS__
     if (NT_SUCCESS(FsRtlGetEcpListFromIrp(Irp, &ecp_list)) && ecp_list) {
         void* ctx = NULL;
         GUID type;
@@ -2543,7 +2540,6 @@ static NTSTATUS file_create(PIRP Irp, 
_Requires_lock_held_(_Curr_->tree_lock) _R
             }
         } while (NT_SUCCESS(Status));
     }
-#endif
 
     dsus.Buffer = (WCHAR*)datasuf;
     dsus.Length = dsus.MaximumLength = sizeof(datasuf) - sizeof(WCHAR);
@@ -2720,7 +2716,6 @@ static NTSTATUS file_create(PIRP Irp, 
_Requires_lock_held_(_Curr_->tree_lock) _R
 
     FileObject->SectionObjectPointer = &fileref->fcb->nonpaged->segment_object;
 
-#ifndef __REACTOS__
     // FIXME - ATOMIC_CREATE_ECP_IN_FLAG_BEST_EFFORT
     if (acec && acec->InFlags & 
ATOMIC_CREATE_ECP_IN_FLAG_REPARSE_POINT_SPECIFIED) {
         if (acec->ReparseBufferLength > sizeof(UINT32) && 
*(UINT32*)acec->ReparseBuffer == IO_REPARSE_TAG_SYMLINK) {
@@ -2751,7 +2746,6 @@ static NTSTATUS file_create(PIRP Irp, 
_Requires_lock_held_(_Curr_->tree_lock) _R
 
         acec->OutFlags |= ATOMIC_CREATE_ECP_OUT_FLAG_REPARSE_POINT_SET;
     }
-#endif
 
     fileref->dc->type = fileref->fcb->type;
 

Reply via email to