Skip to contentSkip to conversation

Problem with building btrfs into the kernel instead of module

DISCUSSION Arun Bhanu 2 participants 3 messages Oct 7, 2008 – Oct 8, 2008 Btrfs file system

lore
Share & tools
lore

Arun Bhanu

author
#0 lore raw

Hi

I have compiled btrfs into the kernel instead of building as module. Then I create a btrfs filesystem on a partition and try to mount it and I get the following error.

# mkfs.btrfs /dev/sda1
fs created label (null) on /dev/sda1
        nodesize 4096 leafsize 4096 sectorsize 4096 size 4.88GB
Btrfs v0.16-8-g09ab036
# mount -t btrfs /dev/sda1 /mnt/sda1/
mount: unknown filesystem type 'btrfs'

If I perform the above steps with btrfs built as a module I don't get any error.

Is this a known issue or am I doing something wrong?

-Arun

#1 lore raw
Quoted 5 lines · Arun Bhanu

Hi

I have compiled btrfs into the kernel instead of building as module. Then I create a btrfs filesystem on a partition and try to mount it and I get the following error.

fs/btrfs/Makefile is a bit wonky. This at least makes it work both ways:

fs/btrfs/Makefile +1 -1
index 48b7909..7125716 100644
@@ -1,7 +1,7 @@
 ifneq ($(KERNELRELEASE),)
 # kbuild part of makefile
 
-obj-m  := btrfs.o
+obj-$(CONFIG_BTRFS_FS) := btrfs.o
 btrfs-y := super.o ctree.o extent-tree.o print-tree.o root-tree.o 
dir-item.o \
           file-item.o inode-item.o inode-map.o disk-io.o \
           transaction.o inode.o file.o tree-defrag.o \

@@ -14,7 +14,7 @@ else

KERNELDIR := /lib/modules/uname -r/build
all:
- $(MAKE) -C $(KERNELDIR) M=pwd modules
+ $(MAKE) -C $(KERNELDIR) M=pwd CONFIG_BTRFS_FS=m modules

modules_install:

        $(MAKE) -C $(KERNELDIR) M=`pwd` modules_install
author
#2 lore raw
Quoted 8 lines · * Sage Weil ([email protected]) wrote:
Quoted 5 lines · Arun Bhanu

Hi

I have compiled btrfs into the kernel instead of building as module. Then I create a btrfs filesystem on a partition and try to mount it and I get the following error.

fs/btrfs/Makefile is a bit wonky. This at least makes it work both ways:

Thanks. With your patch applied, it is working as expected in both cases.

Quoted 16 lines
fs/btrfs/Makefile +1 -1
index 48b7909..7125716 100644
@@ -1,7 +1,7 @@
 ifneq ($(KERNELRELEASE),)
 # kbuild part of makefile
 
-obj-m  := btrfs.o
+obj-$(CONFIG_BTRFS_FS) := btrfs.o
 btrfs-y := super.o ctree.o extent-tree.o print-tree.o root-tree.o 
 dir-item.o \
           file-item.o inode-item.o inode-map.o disk-io.o \
           transaction.o inode.o file.o tree-defrag.o \

fs/btrfs/Makefile else · line 20

Quoted 8 lines
fs/btrfs/Makefile +1 -1
@@ -14,7 +14,7 @@ else
 
 KERNELDIR := /lib/modules/`uname -r`/build
 all:
-       $(MAKE) -C $(KERNELDIR) M=`pwd` modules
+       $(MAKE) -C $(KERNELDIR) M=`pwd` CONFIG_BTRFS_FS=m modules
 
 modules_install:
        $(MAKE) -C $(KERNELDIR) M=`pwd` modules_install

-Arun