[Bug 268610] mounting cdevs as regular vnodes

From: <bugzilla-noreply_at_freebsd.org>
Date: Wed, 28 Dec 2022 06:33:04 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268610

            Bug ID: 268610
           Summary: mounting cdevs as regular vnodes
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: ybungalobill@gmail.com

Created attachment 239079
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=239079&action=edit
prototype implementation

FreeBSD does not implement filesystem caching for i/o done on cdevs. This makes
i/o slow when done on raw devices, and renders impossible to mmap a cdev (which
is supported by some other OSes).

I'm attaching my implementation of a 'rawfs' filesystem:

    mount -t rawfs /dev/xxx /mnt

then i/o on /mnt will be fully buffered, while giving a read-only view of the
raw data on the device.

This can be seen as an inverse of `mdconfig`.

If there's an interest in including this functionality in the base system,
please review the attached code. As it's evident, I had no prior experience
working with FreeBSD kernel code, so any comments are welcome.

-- 
You are receiving this mail because:
You are the assignee for the bug.