- Implement RxSetRenameInfo()
- Implement the SL_OPEN_TARGET_DIRECTORY case in RxCreateFromNetRoot()
This implements renaming in RDBSS, and thus in NFS.
So far, renaming fails due to different NET_ROOT, I need to check why. So far, files are properly copied on rename failure.
CORE-8204
CORE-11327
CORE-13632
svn path=/trunk/; revision=75487
In RxRemoveNameNetFcb(), check if name was already removed. MS doesn't do this, but as we use double linked-list macros
that perform extra sanity checks, this is required. This can be called twice for a single FCB.
CORE-11327
CORE-13632
CORE-13636
svn path=/trunk/; revision=75480
Don't leak a handle when renaming a source file which is a MS mount point or a file without the reparse attribute while we can query its reparse information.
CORE-13635
svn path=/trunk/; revision=75478
-Improve the hack that lets it process arguments by using the process command line instead of the one shell32 gives to the cpl.
-Implement a new action called ActivateMSTheme that activates an msstyle file without showing any gui. If no file is passed, the classic theme is activated thus making it possible to switch themes from command line (or any other application may need to switch themes by launching desk.cpl).
svn path=/trunk/; revision=75476
Don't attempt to dereference NULL-ptr if CCB isn't set.
Fixes crash in RxFsdCommonDispatch() under rare circumstances.
CORE-11327
svn path=/trunk/; revision=75474
In spite of what its name may look like: SyncEvent is a notification event, not a sync event.
Use the correct event for synchronization. This avoids infinite wait in certain circumstances in RxScavengeFobxsForNetRoot()
CORE-11327
svn path=/trunk/; revision=75473
- Protect ARRAY access with macro's / helper functions.
- Do not store objects in the ARRAY data, but store pointers to the objects.
- Rewrite import hooking to use an ARRAY instead of single linked lists.
svn path=/trunk/; revision=75455
Implement RxPrepareToReparseSymbolicLink().
This allows symbolic links to work on a NFS share, we can now follow links that would have been exported by the server.
Safe to merge.
CORE-8204
CORE-11327
CORE-13615
svn path=/trunk/; revision=75451
In case NFS session expires while reading/writing to a file, renew the session instead of just failing.
This avoids not being able to transfer any file with slow connection, and not being able to transfer big files with normal connection.
CORE-8204
CORE-13484
svn path=/trunk/; revision=75444
In case of synchronous read, it's legit for the FSD to notify EOF by returning success & zero read length.
It fixes never ending reads when copying a file from NFS to local disk.
CORE-8204
CORE-11327
CORE-13484
svn path=/trunk/; revision=75443
Don't forget to set RX_CONTEXT_FLAG_FROM_POOL flag when allocating a new RX_CONTEXT structure from pool.
This avoids leaking it afterwards and exhausting NP pool when using NFS.
CORE-8204
CORE-11327
CORE-13484
CORE-13604
svn path=/trunk/; revision=75442
- Implement RxAcquireFcbForLazyWrite(), RxAcquireFcbForReadAhead(), RxReleaseFcbFromLazyWrite(), RxReleaseFcbFromReadAhead()
This makes RXCE better at dealing with Cc (and the other way round ;-)). This notably avoids infinite acquire loops from Cc when writing on a NFS share.
CORE-8204
CORE-11327
svn path=/trunk/; revision=75441
- Move debug heap functionality to a separate file
- Clean includes
- Remove msvcrt dependency
- Clean up string usage
- Remove some higher level functions in favor of their ntdll counterparts (wip).
svn path=/trunk/; revision=75432
Import commits by Kaho Ng <ngkaho1234@gmail.com> from upstream:
- b7657e5 Ext3Fsd: Introduce VCB_RO_COMPAT_READ_ONLY flag for struct VCB
- e7c1142 Ext3Fsd: EXT4_FEATURE_INCOMPAT_64BIT is not supported
- 785943f Ext3Fsd: fix issue #6
Refuse mounting filesystems with incompatible flags. This avoids corrupting 64bits filesystems.
Patch by Lubomir Rintel
CORE-13589
svn path=/trunk/; revision=75422
- Misc fixes with DPRINTS
[RXCE]
- In RxFinalizeSrvOpen, always dereference the FCB, it's always referenced on SRV_OPEN creation
- Misc fixes with DPRINTS
With that revision and r75419, I'm now able to mount a NFS share, browse it, read a file from it, and unmount it.
We're OK regarding references counting!
CORE-8204
CORE-11327
CORE-13581
svn path=/trunk/; revision=75420
Revert r75348.
Because of r75349, this revision was made useless, and even worse, it was leaking a handle to the directory where the FSD doesn't support notifications.
Also made some debug traces more useful
svn path=/trunk/; revision=75419
Huge "hack" for ReactOS.
In case we're asked to unmount a NFS share, and there are still active FCBs, browse the prefix table for active NET_ROOT, and then, dump their associated FCBs (prefix + refcount).
It seems we only leak the root FCB.
CORE-8204
CORE-11327
CORE-13581
svn path=/trunk/; revision=75415