Author: pschweitzer Date: Sun Dec 7 14:05:47 2014 New Revision: 65580
URL: http://svn.reactos.org/svn/reactos?rev=65580&view=rev Log: [NTFS] Allow direct opening of a reparse point, but don't handle yet reparse itself
Modified: trunk/reactos/drivers/filesystems/ntfs/create.c
Modified: trunk/reactos/drivers/filesystems/ntfs/create.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/filesystems/ntfs/cr... ============================================================================== --- trunk/reactos/drivers/filesystems/ntfs/create.c [iso-8859-1] (original) +++ trunk/reactos/drivers/filesystems/ntfs/create.c [iso-8859-1] Sun Dec 7 14:05:47 2014 @@ -245,6 +245,23 @@ return STATUS_NOT_A_DIRECTORY; }
+ /* Properly handle reparse points: + * - likely overwrite FO name + * - return STATUS_REPARSE to IO manager + * - Do we have to attach reparse data to Irp->Tail.Overlay.AuxiliaryBuffer? + * See: http://www.osronline.com/showThread.cfm?link=6623 + * + * If it is a reparse point & FILE_OPEN_REPARSE_POINT, then allow opening it + * as a normal file. + */ + if (NtfsFCBIsReparsePoint(Fcb) && + ((RequestedOptions & FILE_OPEN_REPARSE_POINT) != FILE_OPEN_REPARSE_POINT)) + { + DPRINT1("Reparse point not handled!\n"); + NtfsCloseFile(DeviceExt, FileObject); + return STATUS_NOT_IMPLEMENTED; + } + /* HUGLY HACK: remain RO so far... */ if (RequestedDisposition == FILE_OVERWRITE || RequestedDisposition == FILE_OVERWRITE_IF ||