Linux SCSI Driver for btrfs

Job ID: 40570606

Budget: €8 – €30 EUR

I need a custom SCSI driver written for Linux that cleanly mounts and manages storage devices formatted with the btrfs file system. The goal is to expose full read/write functionality, pass-through standard SCSI commands, and report accurate SMART data without compromising kernel stability or btrfs’s advanced features such as snapshots and checksums.

Scope
• Develop a loadable kernel module that detects hot-plugged SCSI storage and registers the device so the kernel’s btrfs layer sees it as a native block device.
• Implement the essential INQUIRY, READ/WRITE(10/16), MODE SENSE/SELECT, and REQUEST SENSE command set, plus TRIM/UNMAP for efficient space reclaim on btrfs.
• Provide I/O queue management that keeps latency low and honours Linux’s blk-mq scheduling.
• Include udev rules (or systemd-udevd snippets) for automatic device naming.

Deliverables
1. Well-commented C source code that builds against the current LTS kernel.
2. A Makefile and concise build/install guide.
3. Sample btrfs stress-test script demonstrating successful read/write, snapshot, send/receive, and scrub operations.
4. A short report summarising performance metrics and any limitations.

Acceptance criteria
• Driver loads with no kernel oops or warnings (checked via dmesg).
• btrfs file system passes fsck and scrub after a randomized fio workload.
• Sequential R/W throughput within 5 % of raw device speeds.

If you have prior kernel-space SCSI work or patches submitted upstream, mention them in your proposal so I can gauge alignment with this project’s depth.