Ilan, On Mon, Mar 20, 2017 at 10:33 AM, Ilan Schwarts <ila...@gmail.com> wrote: > I need to cast struct inode to struct btrfs_inode. > in order to do it, i looked at implementation of btrfs_getattr. > > the code is simple: > struct btrfs_inode *btrfsInode; > btrfsInode = BTRFS_I(inode); > > in order to compile i must add the headers on top of the function: > #include "/data/kernel/linux-4.1.21-x86_64/fs/btrfs/ctree.h" > #include "/data/kernel/linux-4.1.21-x86_64/fs/btrfs/btrfs_inode.h" > > What is the problem ? > I must manually download and include ctree.h and btrfs_inode.h, they > are not provided in the kernel-headers package. > On every platform I compile my driver, I have specific VM for the > distro/kernel version, so on every VM I usually download package > kernel-headers and everything compiles perfectly. > > btrfs was introduced in kernel 3.0 above. > Arent the btrfs headers should be there ? do they exist in another > package ? maybe fs-headers or something like that ?
Try using the below simple Makefile[1] to compile btrfs loadable module. You need to have the kernel-headers package installed. You can place the makefile anywhere you want, and compile via: # make -f <path to makefile> Thanks, Alex. [1] obj-m += btrfs.o # or substitute with hard-coded kernel version KVERSION = $(shell uname -r) SRC_DIR=<path to your kernel source>/fs/btrfs BTRFS_KO=btrfs.ko # or specify any other output directory OUT_DIR=/lib/modules/$(KVERSION)/kernel/fs/btrfs all: $(OUT_DIR)/$(BTRFS_KO) $(OUT_DIR)/$(BTRFS_KO): $(SRC_DIR)/$(BTRFS_KO) cp $(SRC_DIR)/$(BTRFS_KO) $(OUT_DIR)/ $(SRC_DIR)/$(BTRFS_KO): $(SRC_DIR)/*.c $(SRC_DIR)/*.h $(MAKE) -C /lib/modules/$(KVERSION)/build M=$(SRC_DIR) modules clean: $(MAKE) -C /lib/modules/$(KVERSION)/build M=$(SRC_DIR) clean test -f $(OUT_DIR)/$(BTRFS_KO) && rm $(OUT_DIR)/$(BTRFS_KO) || true > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html