Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-10892

Add Mark Harmstone btrfs filesystem driver



    • Sprint:
      March 2016


      Mark Harmstone published his btrfs filesystem driver on github.
      Here is a patch that imports it into ReactOS.
      PLEASE NOTE that none of this is my work.

      Brief description of the patch:
      Changes are mostly for compiling it cleanly in ReactOS, because Mark set the driver target to Win7.
      That's why there are added 2 missing Rtl functions courtesy of Thomas (RtlUnicodeToUTF8N & RtlUTF8ToUnicodeN).
      One copy of removed hack from Pierre for IOCTL_DISK_GET_PARTITION_INFO_EX (btrfs uses this to determine its size, not sure why Mark used this instead of btrfs superblock). EDIT: Committed in http://code.reactos.org/changelog/reactos?cs=70781
      There are 3 more changes:
      1. Disabling SSE4.2 CPU check and SSE4.2 optimization when calculating crc32 (can be easily added back)
      2. Disabling FsRtlRemoveDotsFromPath which is defined for Vista+ when used for symlink path simplification.
      3. Switch a check on RemoveHeadList to IsListEmpty, because ROS checks were bugchecking when trying to remove head of the list. EDIT: same "fix" applied to drv_shutdown. EDIT2: no longer needed, Mark already changed it.
      4. Rearrange of code a bit in mount_vol to fix behavior when called for non-btrfs volumes.

      Also here is an implementation of file system recognizer for btrfs, registry entry for driver, txtsetup.sif change to copy it from CD on install.

      I can add separated patches if it will be easier for review.
      Attached also btrfs patch to the original driver code for future reimports.
      Please review and comment.


        1. btrfs.patch
          1.39 MB
        2. btrfs_fs_rec.patch
          7 kB
        3. btrfs_registry.patch
          1 kB
        4. btrfs_usetup.patch
          0.4 kB
        5. btrfs_fs_driver.patch
          1.53 MB
        6. btrfs_original.patch
          18 kB
        7. winbtrfs_02.patch
          820 kB



            • Assignee:
              Heis Spiter Pierre Schweitzer
              hater hater
            • Votes:
              6 Vote for this issue
              12 Start watching this issue


              • Created: