[haiku] Re: GSoC 17: Introduction to myself and project discussion

  • From: Adrien Destugues <pulkomandy@xxxxxxxxxxxxx>
  • To: haiku@xxxxxxxxxxxxx
  • Date: Fri, 3 Mar 2017 18:49:59 +0100

On Sat, Mar 04, 2017 at 12:35:35AM +0700, Hy Che wrote:

Sorry, I accidentally sent the email ....
this is what I have done:
mount -t userlandfs -p "btrfs" /dev/disk/ata/0/slave/raw /btrfs/ -> error
mkdir ~/config/non-packaged/add-ons/userlandfs/ (and cp shared obj
btrfs to this dir)
mount -t userlandfs -p "btrfs" /dev/disk/ata/0/slave/raw /btrfs -> still error

I think you are trying to use the btrfs kernel add-on in userland.

There are two kind of filesystems in Haiku. They can run either in the
kernel, or in userspace. Userlandfs is only for the latter. It is used
in 3 cases:
- For FUSE filesystems, as it provides a compatible API, making it easy
  to port those from other OSes
- For testing filesystems that would normally be run in the kernel, as a
  development tool,
- For filesystems that are too complex/dangerous to run kernel side.

You are in case 2. However, the btrfs code was not prepared for this.

You can either mount using the kernel add-on directly:
mount -t btrfs /dev/disk/ata/0/slave/raw /btrfs/
        (by the way, is your whole slave hard disk formatted as a BTRFS
        volume, without a partition table? Otherwise you may need to adjust
        this path)

Or, you need to adjust the build files in
src/tests/add-ons/kernel/file_systems/userlandfs so you can build btrfs
as an userland module (look at the other filesystems in that directory,
the process should be pretty similar).

-- 
Adrien.

Other related posts: