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_fs_driver.patch
          1.53 MB
        2. btrfs_fs_rec.patch
          7 kB
        3. btrfs_original.patch
          18 kB
        4. btrfs_registry.patch
          1 kB
        5. btrfs_usetup.patch
          0.4 kB
        6. btrfs.patch
          1.39 MB
        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: