Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers into modules, and delete rossubsys.
[NTOSKRNL] Don't call MmBuildMdlForNonPagedPool in CcWriteVirtualAddress(): - BaseAddress comes from PagedPood - Windows returns a locked MDL from paged pool - See tests from r75833 that are getting fixed with that revision This fixes assertions failures on BtrFS write. CORE-13763 CORE-13769 svn path=/trunk/; revision=75834
[NTOSKRNL] While attempting to read data from disk in CcReadVirtualAddress(), always align our read size by pages. That means that even on boundaries, we will read a complete page. This fixes FSD relying on Cc to properly align reads and thus poorly failing in disk.sys because of unaligned reads. Notably, it helps MS FastFAT loading a bit farther in ReactOS (but it still fails :-(). This also fixes a few kmtests. CORE-11003 CORE-11819 svn path=/trunk/; revision=72186
[NTOS:CC] - Gracefully handle failure to obtain virtual memory when creating a VACB. We now no longer crash when running out of virtual memory during (large) file operations (but will still crash when running out of physical memory). CORE-11533 svn path=/trunk/; revision=72164
[NTOS:CC] - Unconditionally acquire the VACB lock during map/pin/unpin operations and release it appropriately CORE-11555 #resolve CORE-11654 CORE-11504 CORE-11328 #comment This might be fixed with r71993. Could you retry please? svn path=/trunk/; revision=71993
[NTOSKRNL] Rework a bit the way mapping and pinning is working in ReactOS Cc. This is still wrong regarding the way Windows does it, but at least, it offers us more features for a more compatible behavior exposed to FSDs. First of all, reintroduce the mutex used to lock VACB. Moving there to a resource wasn't enough to work address the issue. This reverts r71387. Introduce the resource in the BCB, as it should be. This resource will be unused until pinning occurs. In such case, the VACB mutex gets unused so that we can get the BCB released by another thread without deadlocking the associated VACB. The VACB can be locked again after the last unpinning operation. Basically, that fixes drivers than pin in a thread and unpin in another thread, after having changed BCB owner. Until now, it would just have deadlock or crashed ReactOS. The implementation of this preserves hacks and stubplementations already in place in Cc (let's say it's another hack on top of hacks). It was successfully tested with Ext2Fsd 0.66. Short summary: - Replace the VACB resource by a mutex - Introduce a resource in the BCB - Fixed CcPinRead() implementation so that it respects PIN_EXCLUSIVE flag - Implement CcUnpinDataForThread() so that it can unpin data which ownership was changed - Implement CcSetBcbOwnerPointer() so that it properly set BCB owner and allows unpinning with CcUnpinDataForThread() CORE-11310 #resolve #comment Committed in r71406 svn path=/trunk/; revision=71406
[NTOSKRNL] On CcInitializeCacheMap() call, keep track of the PinAccess value so that we can later check it on pinning. It shouldn't be set to FALSE when the user attempts to perform pinning CORE-11310 svn path=/trunk/; revision=71404