summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortorben2015-11-05 15:25:43 +0100
committertorben2015-11-05 15:25:43 +0100
commit5d853b5a1f037ef0888fd039fdf4bd86739fcb11 (patch)
tree1d92b1a99fb8a3faf79cb3aec130bf4929fa87cc
parentMerge branch 'master' of git.openslx.org:openslx-ng/systemd-init (diff)
downloadsystemd-init-5d853b5a1f037ef0888fd039fdf4bd86739fcb11.tar.gz
systemd-init-5d853b5a1f037ef0888fd039fdf4bd86739fcb11.tar.xz
systemd-init-5d853b5a1f037ef0888fd039fdf4bd86739fcb11.zip
Refactor structure.
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/binaries/busybox/busybox (renamed from builder/dnbd3-qcow2-rootfs/binaries/busybox)bin504912 -> 504912 bytes
m---------builder/dnbd3-qcow2-rootfs/binaries/dnbd30
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/binaries/dnbd3-clientbin31150 -> 0 bytes
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.ko.cmd1
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.mod.o.cmd595
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.o.cmd1145
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/.tmp_versions/nbd.mod2
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/Makefile (renamed from builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/Makefile)0
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/Module.symvers0
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/modules.order1
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.c1136
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.kobin0 -> 36992 bytes
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.mod.c105
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.mod.obin0 -> 7592 bytes
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.obin0 -> 32344 bytes
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/binaries/systemd-preserve-process-markerbin7728 -> 0 bytes
-rw-r--r--builder/dnbd3-qcow2-rootfs/binaries/systemd-preserve-process-marker/systemd-preserve-process-marker.c (renamed from builder/dnbd3-qcow2-rootfs/systemd-preserve-process-marker.c)0
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/hooks/cmdline/mark-root-device.sh9
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh (renamed from builder/dnbd3-qcow2-rootfs/hooks/cmdline/expand-kcl-ip.sh)0
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/hooks/cmdline/set-dracut-environment-variables.sh5
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/hooks/mount/mount-root-device.sh5
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/hooks/pre-mount/prepare-root-partition.sh42
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/hooks/pre-udev/load-custom-kernel-modules.sh (renamed from builder/dnbd3-qcow2-rootfs/hooks/pre-udev/load-dnbd3-nbd-modules.sh)0
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/hooks/pre-udev/setup-loopback-device.sh (renamed from builder/dnbd3-qcow2-rootfs/hooks/pre-udev/lo-setup.sh)0
-rwxr-xr-xbuilder/dnbd3-qcow2-rootfs/module-setup.sh115
-rw-r--r--builder/dnbd3-qcow2-rootfs/scripts/utils.sh38
-rw-r--r--dev_tools/snippets.sh2
27 files changed, 3107 insertions, 94 deletions
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/busybox b/builder/dnbd3-qcow2-rootfs/binaries/busybox/busybox
index 7eceacf7..7eceacf7 100755
--- a/builder/dnbd3-qcow2-rootfs/binaries/busybox
+++ b/builder/dnbd3-qcow2-rootfs/binaries/busybox/busybox
Binary files differ
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/dnbd3 b/builder/dnbd3-qcow2-rootfs/binaries/dnbd3
new file mode 160000
+Subproject c3c050851dc866f2311d33a262ed81af8c57ce2
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/dnbd3-client b/builder/dnbd3-qcow2-rootfs/binaries/dnbd3-client
deleted file mode 100755
index 76924b49..00000000
--- a/builder/dnbd3-qcow2-rootfs/binaries/dnbd3-client
+++ /dev/null
Binary files differ
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.ko.cmd b/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.ko.cmd
new file mode 100644
index 00000000..17386f08
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.ko.cmd
@@ -0,0 +1 @@
+cmd_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.ko := ld -r -m elf_x86_64 -T ./scripts/module-common.lds --build-id -o /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.ko /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.o /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.o
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.mod.o.cmd b/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.mod.o.cmd
new file mode 100644
index 00000000..1248ea8a
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.mod.o.cmd
@@ -0,0 +1,595 @@
+cmd_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.o := gcc -Wp,-MD,/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/.nbd.mod.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(nbd.mod)" -D"KBUILD_MODNAME=KBUILD_STR(nbd)" -DMODULE -c -o /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.o /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.c
+
+source_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.o := /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.c
+
+deps_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.o := \
+ $(wildcard include/config/module/unload.h) \
+ include/linux/module.h \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/sysfs.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ $(wildcard include/config/module/sig.h) \
+ $(wildcard include/config/modules/tree/lookup.h) \
+ $(wildcard include/config/generic/bug.h) \
+ $(wildcard include/config/kallsyms.h) \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/tracepoints.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/event/tracing.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ $(wildcard include/config/livepatch.h) \
+ $(wildcard include/config/constructors.h) \
+ $(wildcard include/config/debug/set/module/ronx.h) \
+ include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ include/uapi/linux/types.h \
+ arch/x86/include/uapi/asm/types.h \
+ include/uapi/asm-generic/types.h \
+ include/asm-generic/int-ll64.h \
+ include/uapi/asm-generic/int-ll64.h \
+ arch/x86/include/uapi/asm/bitsperlong.h \
+ include/asm-generic/bitsperlong.h \
+ include/uapi/asm-generic/bitsperlong.h \
+ include/uapi/linux/posix_types.h \
+ include/linux/stddef.h \
+ include/uapi/linux/stddef.h \
+ include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ $(wildcard include/config/gcov/kernel.h) \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ arch/x86/include/asm/posix_types.h \
+ $(wildcard include/config/x86/32.h) \
+ arch/x86/include/uapi/asm/posix_types_64.h \
+ include/uapi/asm-generic/posix_types.h \
+ include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ include/uapi/linux/const.h \
+ include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/mmu.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/panic/timeout.h) \
+ /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/include/stdarg.h \
+ include/linux/linkage.h \
+ include/linux/stringify.h \
+ include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modversions.h) \
+ arch/x86/include/asm/linkage.h \
+ $(wildcard include/config/x86/64.h) \
+ $(wildcard include/config/x86/alignment/16.h) \
+ include/linux/bitops.h \
+ arch/x86/include/asm/bitops.h \
+ $(wildcard include/config/x86/cmov.h) \
+ arch/x86/include/asm/alternative.h \
+ $(wildcard include/config/paravirt.h) \
+ arch/x86/include/asm/asm.h \
+ arch/x86/include/asm/ptrace.h \
+ $(wildcard include/config/x86/debugctlmsr.h) \
+ arch/x86/include/asm/segment.h \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/x86/32/lazy/gs.h) \
+ arch/x86/include/asm/cache.h \
+ $(wildcard include/config/x86/l1/cache/shift.h) \
+ $(wildcard include/config/x86/internode/cache/shift.h) \
+ $(wildcard include/config/x86/vsmp.h) \
+ arch/x86/include/asm/page_types.h \
+ $(wildcard include/config/physical/start.h) \
+ $(wildcard include/config/physical/align.h) \
+ arch/x86/include/asm/page_64_types.h \
+ $(wildcard include/config/kasan.h) \
+ $(wildcard include/config/randomize/base.h) \
+ $(wildcard include/config/randomize/base/max/offset.h) \
+ arch/x86/include/uapi/asm/ptrace.h \
+ arch/x86/include/uapi/asm/ptrace-abi.h \
+ arch/x86/include/asm/processor-flags.h \
+ $(wildcard include/config/vm86.h) \
+ arch/x86/include/uapi/asm/processor-flags.h \
+ arch/x86/include/asm/paravirt_types.h \
+ $(wildcard include/config/x86/local/apic.h) \
+ $(wildcard include/config/pgtable/levels.h) \
+ $(wildcard include/config/x86/pae.h) \
+ $(wildcard include/config/queued/spinlocks.h) \
+ $(wildcard include/config/paravirt/debug.h) \
+ arch/x86/include/asm/desc_defs.h \
+ arch/x86/include/asm/kmap_types.h \
+ $(wildcard include/config/debug/highmem.h) \
+ include/asm-generic/kmap_types.h \
+ arch/x86/include/asm/pgtable_types.h \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/mem/soft/dirty.h) \
+ $(wildcard include/config/proc/fs.h) \
+ arch/x86/include/asm/pgtable_64_types.h \
+ arch/x86/include/asm/sparsemem.h \
+ $(wildcard include/config/sparsemem.h) \
+ arch/x86/include/asm/spinlock_types.h \
+ $(wildcard include/config/paravirt/spinlocks.h) \
+ $(wildcard include/config/nr/cpus.h) \
+ include/asm-generic/qspinlock_types.h \
+ include/asm-generic/qrwlock_types.h \
+ include/asm-generic/ptrace.h \
+ arch/x86/include/asm/cpufeature.h \
+ $(wildcard include/config/x86/feature/names.h) \
+ $(wildcard include/config/x86/debug/static/cpu/has.h) \
+ arch/x86/include/asm/required-features.h \
+ $(wildcard include/config/x86/minimum/cpu/family.h) \
+ $(wildcard include/config/math/emulation.h) \
+ $(wildcard include/config/x86/cmpxchg64.h) \
+ $(wildcard include/config/x86/use/3dnow.h) \
+ $(wildcard include/config/x86/p6/nop.h) \
+ $(wildcard include/config/matom.h) \
+ arch/x86/include/asm/disabled-features.h \
+ $(wildcard include/config/x86/intel/mpx.h) \
+ arch/x86/include/asm/rmwcc.h \
+ arch/x86/include/asm/barrier.h \
+ $(wildcard include/config/x86/ppro/fence.h) \
+ arch/x86/include/asm/nops.h \
+ $(wildcard include/config/mk7.h) \
+ include/asm-generic/bitops/find.h \
+ $(wildcard include/config/generic/find/first/bit.h) \
+ include/asm-generic/bitops/sched.h \
+ arch/x86/include/asm/arch_hweight.h \
+ include/asm-generic/bitops/const_hweight.h \
+ include/asm-generic/bitops/le.h \
+ arch/x86/include/uapi/asm/byteorder.h \
+ include/linux/byteorder/little_endian.h \
+ include/uapi/linux/byteorder/little_endian.h \
+ include/linux/swab.h \
+ include/uapi/linux/swab.h \
+ arch/x86/include/uapi/asm/swab.h \
+ include/linux/byteorder/generic.h \
+ include/asm-generic/bitops/ext2-atomic-setbit.h \
+ include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ include/linux/typecheck.h \
+ include/linux/printk.h \
+ $(wildcard include/config/message/loglevel/default.h) \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ $(wildcard include/config/lto.h) \
+ include/linux/kern_levels.h \
+ include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ include/uapi/linux/kernel.h \
+ include/uapi/linux/sysinfo.h \
+ include/linux/dynamic_debug.h \
+ include/linux/stat.h \
+ arch/x86/include/uapi/asm/stat.h \
+ include/uapi/linux/stat.h \
+ include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ include/linux/seqlock.h \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ $(wildcard include/config/preempt.h) \
+ include/linux/preempt.h \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/preempt/tracer.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ arch/x86/include/asm/preempt.h \
+ arch/x86/include/asm/percpu.h \
+ $(wildcard include/config/x86/64/smp.h) \
+ include/asm-generic/percpu.h \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ include/linux/threads.h \
+ $(wildcard include/config/base/small.h) \
+ include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ include/linux/thread_info.h \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ include/linux/bug.h \
+ arch/x86/include/asm/bug.h \
+ $(wildcard include/config/debug/bugverbose.h) \
+ include/asm-generic/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ arch/x86/include/asm/thread_info.h \
+ $(wildcard include/config/ia32/emulation.h) \
+ arch/x86/include/asm/page.h \
+ arch/x86/include/asm/page_64.h \
+ $(wildcard include/config/debug/virtual.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/x86/vsyscall/emulation.h) \
+ include/linux/range.h \
+ include/asm-generic/memory_model.h \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/asm-generic/getorder.h \
+ arch/x86/include/asm/processor.h \
+ $(wildcard include/config/m486.h) \
+ $(wildcard include/config/xen.h) \
+ arch/x86/include/asm/vm86.h \
+ arch/x86/include/uapi/asm/vm86.h \
+ arch/x86/include/asm/math_emu.h \
+ arch/x86/include/asm/sigcontext.h \
+ arch/x86/include/uapi/asm/sigcontext.h \
+ arch/x86/include/asm/current.h \
+ arch/x86/include/asm/msr.h \
+ arch/x86/include/asm/msr-index.h \
+ arch/x86/include/uapi/asm/errno.h \
+ include/uapi/asm-generic/errno.h \
+ include/uapi/asm-generic/errno-base.h \
+ arch/x86/include/asm/cpumask.h \
+ include/linux/cpumask.h \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ include/linux/bitmap.h \
+ include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ include/uapi/linux/string.h \
+ arch/x86/include/asm/string.h \
+ arch/x86/include/asm/string_64.h \
+ arch/x86/include/uapi/asm/msr.h \
+ include/uapi/linux/ioctl.h \
+ arch/x86/include/uapi/asm/ioctl.h \
+ include/asm-generic/ioctl.h \
+ include/uapi/asm-generic/ioctl.h \
+ arch/x86/include/asm/paravirt.h \
+ arch/x86/include/asm/special_insns.h \
+ arch/x86/include/asm/fpu/types.h \
+ include/linux/personality.h \
+ include/uapi/linux/personality.h \
+ include/linux/math64.h \
+ $(wildcard include/config/arch/supports/int128.h) \
+ arch/x86/include/asm/div64.h \
+ include/asm-generic/div64.h \
+ include/linux/err.h \
+ include/linux/irqflags.h \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ arch/x86/include/asm/irqflags.h \
+ include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ arch/x86/include/asm/atomic.h \
+ arch/x86/include/asm/cmpxchg.h \
+ arch/x86/include/asm/cmpxchg_64.h \
+ arch/x86/include/asm/atomic64_64.h \
+ include/asm-generic/atomic-long.h \
+ include/linux/bottom_half.h \
+ include/linux/spinlock_types.h \
+ include/linux/lockdep.h \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/lock/stat.h) \
+ include/linux/rwlock_types.h \
+ arch/x86/include/asm/spinlock.h \
+ include/linux/jump_label.h \
+ $(wildcard include/config/jump/label.h) \
+ arch/x86/include/asm/jump_label.h \
+ arch/x86/include/asm/qspinlock.h \
+ include/asm-generic/qspinlock.h \
+ arch/x86/include/asm/qrwlock.h \
+ include/asm-generic/qrwlock.h \
+ include/linux/rwlock.h \
+ include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ include/linux/time64.h \
+ include/uapi/linux/time.h \
+ include/linux/uidgid.h \
+ $(wildcard include/config/multiuser.h) \
+ $(wildcard include/config/user/ns.h) \
+ include/linux/highuid.h \
+ include/linux/kmod.h \
+ include/linux/gfp.h \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/deferred/struct/page/init.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/cma.h) \
+ include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/compaction.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/page/extension.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ include/linux/wait.h \
+ include/uapi/linux/wait.h \
+ include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ include/linux/nodemask.h \
+ $(wildcard include/config/movable/node.h) \
+ include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ include/linux/page-flags-layout.h \
+ include/generated/bounds.h \
+ include/linux/memory_hotplug.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ include/linux/notifier.h \
+ include/linux/errno.h \
+ include/uapi/linux/errno.h \
+ include/linux/mutex.h \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ include/linux/osq_lock.h \
+ include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/spin/on/owner.h) \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ arch/x86/include/asm/rwsem.h \
+ include/linux/srcu.h \
+ include/linux/rcupdate.h \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/rcu/stall/common.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ $(wildcard include/config/tasks/rcu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/rcu/nocb/cpu/all.h) \
+ $(wildcard include/config/no/hz/full/sysidle.h) \
+ include/linux/completion.h \
+ include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ include/linux/ktime.h \
+ include/linux/jiffies.h \
+ include/linux/timex.h \
+ include/uapi/linux/timex.h \
+ include/uapi/linux/param.h \
+ arch/x86/include/uapi/asm/param.h \
+ include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ include/uapi/asm-generic/param.h \
+ arch/x86/include/asm/timex.h \
+ arch/x86/include/asm/tsc.h \
+ $(wildcard include/config/x86/tsc.h) \
+ include/generated/timeconst.h \
+ include/linux/timekeeping.h \
+ include/linux/rcutree.h \
+ include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ include/linux/rbtree.h \
+ include/uapi/linux/sysctl.h \
+ arch/x86/include/asm/mmzone.h \
+ arch/x86/include/asm/mmzone_64.h \
+ arch/x86/include/asm/smp.h \
+ $(wildcard include/config/x86/io/apic.h) \
+ $(wildcard include/config/x86/32/smp.h) \
+ $(wildcard include/config/debug/nmi/selftest.h) \
+ arch/x86/include/asm/mpspec.h \
+ $(wildcard include/config/eisa.h) \
+ $(wildcard include/config/x86/mpparse.h) \
+ arch/x86/include/asm/mpspec_def.h \
+ arch/x86/include/asm/x86_init.h \
+ arch/x86/include/uapi/asm/bootparam.h \
+ include/linux/screen_info.h \
+ include/uapi/linux/screen_info.h \
+ include/linux/apm_bios.h \
+ include/uapi/linux/apm_bios.h \
+ include/linux/edd.h \
+ include/uapi/linux/edd.h \
+ arch/x86/include/asm/e820.h \
+ $(wildcard include/config/efi.h) \
+ $(wildcard include/config/hibernation.h) \
+ arch/x86/include/uapi/asm/e820.h \
+ $(wildcard include/config/x86/pmem/legacy.h) \
+ $(wildcard include/config/intel/txt.h) \
+ include/linux/ioport.h \
+ arch/x86/include/asm/ist.h \
+ arch/x86/include/uapi/asm/ist.h \
+ include/video/edid.h \
+ $(wildcard include/config/x86.h) \
+ include/uapi/video/edid.h \
+ arch/x86/include/asm/apicdef.h \
+ arch/x86/include/asm/apic.h \
+ $(wildcard include/config/x86/x2apic.h) \
+ include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ arch/x86/include/asm/fixmap.h \
+ $(wildcard include/config/paravirt/clock.h) \
+ $(wildcard include/config/provide/ohci1394/dma/init.h) \
+ $(wildcard include/config/pci/mmconfig.h) \
+ $(wildcard include/config/x86/intel/mid.h) \
+ arch/x86/include/asm/acpi.h \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/acpi/numa.h) \
+ include/acpi/pdc_intel.h \
+ arch/x86/include/asm/numa.h \
+ $(wildcard include/config/numa/emu.h) \
+ arch/x86/include/asm/topology.h \
+ include/asm-generic/topology.h \
+ arch/x86/include/asm/mmu.h \
+ arch/x86/include/asm/realmode.h \
+ $(wildcard include/config/acpi/sleep.h) \
+ arch/x86/include/asm/io.h \
+ $(wildcard include/config/mtrr.h) \
+ arch/x86/include/generated/asm/early_ioremap.h \
+ include/asm-generic/early_ioremap.h \
+ $(wildcard include/config/generic/early/ioremap.h) \
+ include/asm-generic/iomap.h \
+ $(wildcard include/config/has/ioport/map.h) \
+ $(wildcard include/config/pci.h) \
+ $(wildcard include/config/generic/iomap.h) \
+ include/asm-generic/pci_iomap.h \
+ $(wildcard include/config/no/generic/pci/ioport/map.h) \
+ $(wildcard include/config/generic/pci/iomap.h) \
+ include/xen/xen.h \
+ $(wildcard include/config/xen/dom0.h) \
+ $(wildcard include/config/xen/pvh.h) \
+ include/xen/interface/xen.h \
+ arch/x86/include/asm/xen/interface.h \
+ arch/x86/include/asm/xen/interface_64.h \
+ arch/x86/include/asm/pvclock-abi.h \
+ arch/x86/include/asm/xen/hypervisor.h \
+ include/xen/features.h \
+ include/xen/interface/features.h \
+ arch/x86/include/asm/pvclock.h \
+ include/linux/clocksource.h \
+ $(wildcard include/config/arch/clocksource/data.h) \
+ $(wildcard include/config/clocksource/watchdog.h) \
+ $(wildcard include/config/clksrc/of.h) \
+ arch/x86/include/asm/clocksource.h \
+ arch/x86/include/uapi/asm/vsyscall.h \
+ include/asm-generic/fixmap.h \
+ arch/x86/include/asm/idle.h \
+ arch/x86/include/asm/io_apic.h \
+ arch/x86/include/asm/irq_vectors.h \
+ $(wildcard include/config/have/kvm.h) \
+ $(wildcard include/config/pci/msi.h) \
+ include/linux/topology.h \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ $(wildcard include/config/sched/smt.h) \
+ include/linux/smp.h \
+ $(wildcard include/config/up/late/init.h) \
+ include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ include/linux/pfn.h \
+ include/linux/elf.h \
+ arch/x86/include/asm/elf.h \
+ $(wildcard include/config/x86/x32/abi.h) \
+ arch/x86/include/asm/user.h \
+ arch/x86/include/asm/user_64.h \
+ arch/x86/include/uapi/asm/auxvec.h \
+ arch/x86/include/asm/vdso.h \
+ $(wildcard include/config/x86/x32.h) \
+ include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ include/linux/auxvec.h \
+ include/uapi/linux/auxvec.h \
+ include/linux/uprobes.h \
+ $(wildcard include/config/uprobes.h) \
+ arch/x86/include/asm/uprobes.h \
+ include/uapi/linux/elf.h \
+ include/uapi/linux/elf-em.h \
+ include/linux/kobject.h \
+ $(wildcard include/config/uevent/helper.h) \
+ $(wildcard include/config/debug/kobject/release.h) \
+ include/linux/sysfs.h \
+ include/linux/kernfs.h \
+ $(wildcard include/config/kernfs.h) \
+ include/linux/idr.h \
+ include/linux/kobject_ns.h \
+ include/linux/kref.h \
+ include/linux/moduleparam.h \
+ $(wildcard include/config/alpha.h) \
+ $(wildcard include/config/ia64.h) \
+ $(wildcard include/config/ppc64.h) \
+ include/linux/rbtree_latch.h \
+ arch/x86/include/asm/module.h \
+ $(wildcard include/config/m586.h) \
+ $(wildcard include/config/m586tsc.h) \
+ $(wildcard include/config/m586mmx.h) \
+ $(wildcard include/config/mcore2.h) \
+ $(wildcard include/config/m686.h) \
+ $(wildcard include/config/mpentiumii.h) \
+ $(wildcard include/config/mpentiumiii.h) \
+ $(wildcard include/config/mpentiumm.h) \
+ $(wildcard include/config/mpentium4.h) \
+ $(wildcard include/config/mk6.h) \
+ $(wildcard include/config/mk8.h) \
+ $(wildcard include/config/melan.h) \
+ $(wildcard include/config/mcrusoe.h) \
+ $(wildcard include/config/mefficeon.h) \
+ $(wildcard include/config/mwinchipc6.h) \
+ $(wildcard include/config/mwinchip3d.h) \
+ $(wildcard include/config/mcyrixiii.h) \
+ $(wildcard include/config/mviac3/2.h) \
+ $(wildcard include/config/mviac7.h) \
+ $(wildcard include/config/mgeodegx1.h) \
+ $(wildcard include/config/mgeode/lx.h) \
+ include/asm-generic/module.h \
+ $(wildcard include/config/have/mod/arch/specific.h) \
+ $(wildcard include/config/modules/use/elf/rel.h) \
+ $(wildcard include/config/modules/use/elf/rela.h) \
+ include/linux/vermagic.h \
+ include/generated/utsrelease.h \
+
+/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.o: $(deps_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.o)
+
+$(deps_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.mod.o):
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.o.cmd b/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.o.cmd
new file mode 100644
index 00000000..b4c40a04
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/.nbd.o.cmd
@@ -0,0 +1,1145 @@
+cmd_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.o := gcc -Wp,-MD,/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/.nbd.o.d -nostdinc -isystem /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/include -I./arch/x86/include -Iarch/x86/include/generated/uapi -Iarch/x86/include/generated -Iinclude -I./arch/x86/include/uapi -Iarch/x86/include/generated/uapi -I./include/uapi -Iinclude/generated/uapi -include ./include/linux/kconfig.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -std=gnu89 -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_FXSAVEQ=1 -DCONFIG_AS_SSSE3=1 -DCONFIG_AS_CRC32=1 -DCONFIG_AS_AVX=1 -DCONFIG_AS_AVX2=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fno-delete-null-pointer-checks -O2 --param=allow-store-data-races=0 -Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-var-tracking-assignments -pg -mfentry -DCC_USING_FENTRY -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -fconserve-stack -Werror=implicit-int -Werror=strict-prototypes -Werror=date-time -DCC_HAVE_ASM_GOTO -DMODULE -D"KBUILD_STR(s)=\#s" -D"KBUILD_BASENAME=KBUILD_STR(nbd)" -D"KBUILD_MODNAME=KBUILD_STR(nbd)" -c -o /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/.tmp_nbd.o /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.c
+
+source_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.o := /media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.c
+
+deps_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.o := \
+ $(wildcard include/config/debug/fs.h) \
+ include/uapi/linux/major.h \
+ include/linux/blkdev.h \
+ $(wildcard include/config/block.h) \
+ $(wildcard include/config/blk/cgroup.h) \
+ $(wildcard include/config/blk/dev/integrity.h) \
+ $(wildcard include/config/pm.h) \
+ $(wildcard include/config/blk/dev/io/trace.h) \
+ $(wildcard include/config/blk/dev/bsg.h) \
+ $(wildcard include/config/blk/dev/throttling.h) \
+ $(wildcard include/config/bounce.h) \
+ $(wildcard include/config/mmu.h) \
+ include/linux/sched.h \
+ $(wildcard include/config/smp.h) \
+ $(wildcard include/config/no/hz/common.h) \
+ $(wildcard include/config/sched/debug.h) \
+ $(wildcard include/config/debug/atomic/sleep.h) \
+ $(wildcard include/config/prove/rcu.h) \
+ $(wildcard include/config/lockup/detector.h) \
+ $(wildcard include/config/detect/hung/task.h) \
+ $(wildcard include/config/core/dump/default/elf/headers.h) \
+ $(wildcard include/config/preempt/count.h) \
+ $(wildcard include/config/sched/autogroup.h) \
+ $(wildcard include/config/virt/cpu/accounting/native.h) \
+ $(wildcard include/config/bsd/process/acct.h) \
+ $(wildcard include/config/taskstats.h) \
+ $(wildcard include/config/audit.h) \
+ $(wildcard include/config/inotify/user.h) \
+ $(wildcard include/config/fanotify.h) \
+ $(wildcard include/config/epoll.h) \
+ $(wildcard include/config/posix/mqueue.h) \
+ $(wildcard include/config/keys.h) \
+ $(wildcard include/config/perf/events.h) \
+ $(wildcard include/config/sched/info.h) \
+ $(wildcard include/config/task/delay/acct.h) \
+ $(wildcard include/config/schedstats.h) \
+ $(wildcard include/config/sched/smt.h) \
+ $(wildcard include/config/sched/mc.h) \
+ $(wildcard include/config/numa.h) \
+ $(wildcard include/config/fair/group/sched.h) \
+ $(wildcard include/config/rt/group/sched.h) \
+ $(wildcard include/config/cgroup/sched.h) \
+ $(wildcard include/config/preempt/notifiers.h) \
+ $(wildcard include/config/preempt/rcu.h) \
+ $(wildcard include/config/tasks/rcu.h) \
+ $(wildcard include/config/memcg/kmem.h) \
+ $(wildcard include/config/compat/brk.h) \
+ $(wildcard include/config/cc/stackprotector.h) \
+ $(wildcard include/config/virt/cpu/accounting/gen.h) \
+ $(wildcard include/config/sysvipc.h) \
+ $(wildcard include/config/auditsyscall.h) \
+ $(wildcard include/config/rt/mutexes.h) \
+ $(wildcard include/config/debug/mutexes.h) \
+ $(wildcard include/config/trace/irqflags.h) \
+ $(wildcard include/config/lockdep.h) \
+ $(wildcard include/config/task/xacct.h) \
+ $(wildcard include/config/cpusets.h) \
+ $(wildcard include/config/cgroups.h) \
+ $(wildcard include/config/futex.h) \
+ $(wildcard include/config/compat.h) \
+ $(wildcard include/config/debug/preempt.h) \
+ $(wildcard include/config/numa/balancing.h) \
+ $(wildcard include/config/fault/injection.h) \
+ $(wildcard include/config/latencytop.h) \
+ $(wildcard include/config/kasan.h) \
+ $(wildcard include/config/function/graph/tracer.h) \
+ $(wildcard include/config/tracing.h) \
+ $(wildcard include/config/memcg.h) \
+ $(wildcard include/config/uprobes.h) \
+ $(wildcard include/config/bcache.h) \
+ $(wildcard include/config/arch/wants/dynamic/task/struct.h) \
+ $(wildcard include/config/cpumask/offstack.h) \
+ $(wildcard include/config/have/unstable/sched/clock.h) \
+ $(wildcard include/config/irq/time/accounting.h) \
+ $(wildcard include/config/hotplug/cpu.h) \
+ $(wildcard include/config/no/hz/full.h) \
+ $(wildcard include/config/proc/fs.h) \
+ $(wildcard include/config/stack/growsup.h) \
+ $(wildcard include/config/have/copy/thread/tls.h) \
+ $(wildcard include/config/debug/stack/usage.h) \
+ $(wildcard include/config/preempt.h) \
+ include/uapi/linux/sched.h \
+ include/linux/sched/prio.h \
+ arch/x86/include/uapi/asm/param.h \
+ include/asm-generic/param.h \
+ $(wildcard include/config/hz.h) \
+ include/uapi/asm-generic/param.h \
+ include/linux/capability.h \
+ $(wildcard include/config/multiuser.h) \
+ include/uapi/linux/capability.h \
+ include/linux/types.h \
+ $(wildcard include/config/uid16.h) \
+ $(wildcard include/config/lbdaf.h) \
+ $(wildcard include/config/arch/dma/addr/t/64bit.h) \
+ $(wildcard include/config/phys/addr/t/64bit.h) \
+ $(wildcard include/config/64bit.h) \
+ include/uapi/linux/types.h \
+ arch/x86/include/uapi/asm/types.h \
+ include/uapi/asm-generic/types.h \
+ include/asm-generic/int-ll64.h \
+ include/uapi/asm-generic/int-ll64.h \
+ arch/x86/include/uapi/asm/bitsperlong.h \
+ include/asm-generic/bitsperlong.h \
+ include/uapi/asm-generic/bitsperlong.h \
+ include/uapi/linux/posix_types.h \
+ include/linux/stddef.h \
+ include/uapi/linux/stddef.h \
+ include/linux/compiler.h \
+ $(wildcard include/config/sparse/rcu/pointer.h) \
+ $(wildcard include/config/trace/branch/profiling.h) \
+ $(wildcard include/config/profile/all/branches.h) \
+ $(wildcard include/config/enable/must/check.h) \
+ $(wildcard include/config/enable/warn/deprecated.h) \
+ $(wildcard include/config/kprobes.h) \
+ include/linux/compiler-gcc.h \
+ $(wildcard include/config/arch/supports/optimized/inlining.h) \
+ $(wildcard include/config/optimize/inlining.h) \
+ $(wildcard include/config/gcov/kernel.h) \
+ $(wildcard include/config/arch/use/builtin/bswap.h) \
+ arch/x86/include/asm/posix_types.h \
+ $(wildcard include/config/x86/32.h) \
+ arch/x86/include/uapi/asm/posix_types_64.h \
+ include/uapi/asm-generic/posix_types.h \
+ include/linux/threads.h \
+ $(wildcard include/config/nr/cpus.h) \
+ $(wildcard include/config/base/small.h) \
+ include/linux/kernel.h \
+ $(wildcard include/config/preempt/voluntary.h) \
+ $(wildcard include/config/prove/locking.h) \
+ $(wildcard include/config/panic/timeout.h) \
+ $(wildcard include/config/ftrace/mcount/record.h) \
+ /usr/lib/gcc/x86_64-unknown-linux-gnu/5.2.0/include/stdarg.h \
+ include/linux/linkage.h \
+ include/linux/stringify.h \
+ include/linux/export.h \
+ $(wildcard include/config/have/underscore/symbol/prefix.h) \
+ $(wildcard include/config/modules.h) \
+ $(wildcard include/config/modversions.h) \
+ $(wildcard include/config/unused/symbols.h) \
+ arch/x86/include/asm/linkage.h \
+ $(wildcard include/config/x86/64.h) \
+ $(wildcard include/config/x86/alignment/16.h) \
+ include/linux/bitops.h \
+ arch/x86/include/asm/bitops.h \
+ $(wildcard include/config/x86/cmov.h) \
+ arch/x86/include/asm/alternative.h \
+ $(wildcard include/config/paravirt.h) \
+ arch/x86/include/asm/asm.h \
+ arch/x86/include/asm/ptrace.h \
+ $(wildcard include/config/x86/debugctlmsr.h) \
+ arch/x86/include/asm/segment.h \
+ $(wildcard include/config/x86/32/lazy/gs.h) \
+ include/uapi/linux/const.h \
+ arch/x86/include/asm/cache.h \
+ $(wildcard include/config/x86/l1/cache/shift.h) \
+ $(wildcard include/config/x86/internode/cache/shift.h) \
+ $(wildcard include/config/x86/vsmp.h) \
+ arch/x86/include/asm/page_types.h \
+ $(wildcard include/config/physical/start.h) \
+ $(wildcard include/config/physical/align.h) \
+ arch/x86/include/asm/page_64_types.h \
+ $(wildcard include/config/randomize/base.h) \
+ $(wildcard include/config/randomize/base/max/offset.h) \
+ arch/x86/include/uapi/asm/ptrace.h \
+ arch/x86/include/uapi/asm/ptrace-abi.h \
+ arch/x86/include/asm/processor-flags.h \
+ $(wildcard include/config/vm86.h) \
+ arch/x86/include/uapi/asm/processor-flags.h \
+ arch/x86/include/asm/paravirt_types.h \
+ $(wildcard include/config/x86/local/apic.h) \
+ $(wildcard include/config/pgtable/levels.h) \
+ $(wildcard include/config/x86/pae.h) \
+ $(wildcard include/config/queued/spinlocks.h) \
+ $(wildcard include/config/paravirt/debug.h) \
+ arch/x86/include/asm/desc_defs.h \
+ arch/x86/include/asm/kmap_types.h \
+ $(wildcard include/config/debug/highmem.h) \
+ include/asm-generic/kmap_types.h \
+ arch/x86/include/asm/pgtable_types.h \
+ $(wildcard include/config/kmemcheck.h) \
+ $(wildcard include/config/mem/soft/dirty.h) \
+ arch/x86/include/asm/pgtable_64_types.h \
+ arch/x86/include/asm/sparsemem.h \
+ $(wildcard include/config/sparsemem.h) \
+ arch/x86/include/asm/spinlock_types.h \
+ $(wildcard include/config/paravirt/spinlocks.h) \
+ include/asm-generic/qspinlock_types.h \
+ include/asm-generic/qrwlock_types.h \
+ include/asm-generic/ptrace.h \
+ arch/x86/include/asm/cpufeature.h \
+ $(wildcard include/config/x86/feature/names.h) \
+ $(wildcard include/config/x86/debug/static/cpu/has.h) \
+ arch/x86/include/asm/required-features.h \
+ $(wildcard include/config/x86/minimum/cpu/family.h) \
+ $(wildcard include/config/math/emulation.h) \
+ $(wildcard include/config/x86/cmpxchg64.h) \
+ $(wildcard include/config/x86/use/3dnow.h) \
+ $(wildcard include/config/x86/p6/nop.h) \
+ $(wildcard include/config/matom.h) \
+ arch/x86/include/asm/disabled-features.h \
+ $(wildcard include/config/x86/intel/mpx.h) \
+ arch/x86/include/asm/rmwcc.h \
+ arch/x86/include/asm/barrier.h \
+ $(wildcard include/config/x86/ppro/fence.h) \
+ arch/x86/include/asm/nops.h \
+ $(wildcard include/config/mk7.h) \
+ include/asm-generic/bitops/find.h \
+ $(wildcard include/config/generic/find/first/bit.h) \
+ include/asm-generic/bitops/sched.h \
+ arch/x86/include/asm/arch_hweight.h \
+ include/asm-generic/bitops/const_hweight.h \
+ include/asm-generic/bitops/le.h \
+ arch/x86/include/uapi/asm/byteorder.h \
+ include/linux/byteorder/little_endian.h \
+ include/uapi/linux/byteorder/little_endian.h \
+ include/linux/swab.h \
+ include/uapi/linux/swab.h \
+ arch/x86/include/uapi/asm/swab.h \
+ include/linux/byteorder/generic.h \
+ include/asm-generic/bitops/ext2-atomic-setbit.h \
+ include/linux/log2.h \
+ $(wildcard include/config/arch/has/ilog2/u32.h) \
+ $(wildcard include/config/arch/has/ilog2/u64.h) \
+ include/linux/typecheck.h \
+ include/linux/printk.h \
+ $(wildcard include/config/message/loglevel/default.h) \
+ $(wildcard include/config/early/printk.h) \
+ $(wildcard include/config/printk.h) \
+ $(wildcard include/config/dynamic/debug.h) \
+ include/linux/init.h \
+ $(wildcard include/config/broken/rodata.h) \
+ $(wildcard include/config/lto.h) \
+ include/linux/kern_levels.h \
+ include/linux/cache.h \
+ $(wildcard include/config/arch/has/cache/line/size.h) \
+ include/uapi/linux/kernel.h \
+ include/uapi/linux/sysinfo.h \
+ include/linux/dynamic_debug.h \
+ include/linux/timex.h \
+ include/uapi/linux/timex.h \
+ include/linux/time.h \
+ $(wildcard include/config/arch/uses/gettimeoffset.h) \
+ include/linux/seqlock.h \
+ $(wildcard include/config/debug/lock/alloc.h) \
+ include/linux/spinlock.h \
+ $(wildcard include/config/debug/spinlock.h) \
+ $(wildcard include/config/generic/lockbreak.h) \
+ include/linux/preempt.h \
+ $(wildcard include/config/preempt/tracer.h) \
+ include/linux/list.h \
+ $(wildcard include/config/debug/list.h) \
+ include/linux/poison.h \
+ $(wildcard include/config/illegal/pointer/value.h) \
+ arch/x86/include/asm/preempt.h \
+ arch/x86/include/asm/percpu.h \
+ $(wildcard include/config/x86/64/smp.h) \
+ include/asm-generic/percpu.h \
+ $(wildcard include/config/have/setup/per/cpu/area.h) \
+ include/linux/percpu-defs.h \
+ $(wildcard include/config/debug/force/weak/per/cpu.h) \
+ include/linux/thread_info.h \
+ include/linux/bug.h \
+ $(wildcard include/config/generic/bug.h) \
+ arch/x86/include/asm/bug.h \
+ $(wildcard include/config/debug/bugverbose.h) \
+ include/asm-generic/bug.h \
+ $(wildcard include/config/bug.h) \
+ $(wildcard include/config/generic/bug/relative/pointers.h) \
+ arch/x86/include/asm/thread_info.h \
+ $(wildcard include/config/ia32/emulation.h) \
+ arch/x86/include/asm/page.h \
+ arch/x86/include/asm/page_64.h \
+ $(wildcard include/config/debug/virtual.h) \
+ $(wildcard include/config/flatmem.h) \
+ $(wildcard include/config/x86/vsyscall/emulation.h) \
+ include/linux/range.h \
+ include/asm-generic/memory_model.h \
+ $(wildcard include/config/discontigmem.h) \
+ $(wildcard include/config/sparsemem/vmemmap.h) \
+ include/asm-generic/getorder.h \
+ arch/x86/include/asm/processor.h \
+ $(wildcard include/config/m486.h) \
+ $(wildcard include/config/xen.h) \
+ arch/x86/include/asm/vm86.h \
+ arch/x86/include/uapi/asm/vm86.h \
+ arch/x86/include/asm/math_emu.h \
+ arch/x86/include/asm/sigcontext.h \
+ arch/x86/include/uapi/asm/sigcontext.h \
+ arch/x86/include/asm/current.h \
+ arch/x86/include/asm/msr.h \
+ arch/x86/include/asm/msr-index.h \
+ arch/x86/include/uapi/asm/errno.h \
+ include/uapi/asm-generic/errno.h \
+ include/uapi/asm-generic/errno-base.h \
+ arch/x86/include/asm/cpumask.h \
+ include/linux/cpumask.h \
+ $(wildcard include/config/debug/per/cpu/maps.h) \
+ include/linux/bitmap.h \
+ include/linux/string.h \
+ $(wildcard include/config/binary/printf.h) \
+ include/uapi/linux/string.h \
+ arch/x86/include/asm/string.h \
+ arch/x86/include/asm/string_64.h \
+ arch/x86/include/uapi/asm/msr.h \
+ include/uapi/linux/ioctl.h \
+ arch/x86/include/uapi/asm/ioctl.h \
+ include/asm-generic/ioctl.h \
+ include/uapi/asm-generic/ioctl.h \
+ arch/x86/include/asm/paravirt.h \
+ arch/x86/include/asm/special_insns.h \
+ arch/x86/include/asm/fpu/types.h \
+ include/linux/personality.h \
+ include/uapi/linux/personality.h \
+ include/linux/math64.h \
+ $(wildcard include/config/arch/supports/int128.h) \
+ arch/x86/include/asm/div64.h \
+ include/asm-generic/div64.h \
+ include/linux/err.h \
+ include/linux/irqflags.h \
+ $(wildcard include/config/irqsoff/tracer.h) \
+ $(wildcard include/config/trace/irqflags/support.h) \
+ arch/x86/include/asm/irqflags.h \
+ include/linux/atomic.h \
+ $(wildcard include/config/arch/has/atomic/or.h) \
+ $(wildcard include/config/generic/atomic64.h) \
+ arch/x86/include/asm/atomic.h \
+ arch/x86/include/asm/cmpxchg.h \
+ arch/x86/include/asm/cmpxchg_64.h \
+ arch/x86/include/asm/atomic64_64.h \
+ include/asm-generic/atomic-long.h \
+ include/linux/bottom_half.h \
+ include/linux/spinlock_types.h \
+ include/linux/lockdep.h \
+ $(wildcard include/config/lock/stat.h) \
+ include/linux/rwlock_types.h \
+ arch/x86/include/asm/spinlock.h \
+ include/linux/jump_label.h \
+ $(wildcard include/config/jump/label.h) \
+ arch/x86/include/asm/jump_label.h \
+ arch/x86/include/asm/qspinlock.h \
+ include/asm-generic/qspinlock.h \
+ arch/x86/include/asm/qrwlock.h \
+ include/asm-generic/qrwlock.h \
+ include/linux/rwlock.h \
+ include/linux/spinlock_api_smp.h \
+ $(wildcard include/config/inline/spin/lock.h) \
+ $(wildcard include/config/inline/spin/lock/bh.h) \
+ $(wildcard include/config/inline/spin/lock/irq.h) \
+ $(wildcard include/config/inline/spin/lock/irqsave.h) \
+ $(wildcard include/config/inline/spin/trylock.h) \
+ $(wildcard include/config/inline/spin/trylock/bh.h) \
+ $(wildcard include/config/uninline/spin/unlock.h) \
+ $(wildcard include/config/inline/spin/unlock/bh.h) \
+ $(wildcard include/config/inline/spin/unlock/irq.h) \
+ $(wildcard include/config/inline/spin/unlock/irqrestore.h) \
+ include/linux/rwlock_api_smp.h \
+ $(wildcard include/config/inline/read/lock.h) \
+ $(wildcard include/config/inline/write/lock.h) \
+ $(wildcard include/config/inline/read/lock/bh.h) \
+ $(wildcard include/config/inline/write/lock/bh.h) \
+ $(wildcard include/config/inline/read/lock/irq.h) \
+ $(wildcard include/config/inline/write/lock/irq.h) \
+ $(wildcard include/config/inline/read/lock/irqsave.h) \
+ $(wildcard include/config/inline/write/lock/irqsave.h) \
+ $(wildcard include/config/inline/read/trylock.h) \
+ $(wildcard include/config/inline/write/trylock.h) \
+ $(wildcard include/config/inline/read/unlock.h) \
+ $(wildcard include/config/inline/write/unlock.h) \
+ $(wildcard include/config/inline/read/unlock/bh.h) \
+ $(wildcard include/config/inline/write/unlock/bh.h) \
+ $(wildcard include/config/inline/read/unlock/irq.h) \
+ $(wildcard include/config/inline/write/unlock/irq.h) \
+ $(wildcard include/config/inline/read/unlock/irqrestore.h) \
+ $(wildcard include/config/inline/write/unlock/irqrestore.h) \
+ include/linux/time64.h \
+ include/uapi/linux/time.h \
+ include/uapi/linux/param.h \
+ arch/x86/include/asm/timex.h \
+ arch/x86/include/asm/tsc.h \
+ $(wildcard include/config/x86/tsc.h) \
+ include/linux/jiffies.h \
+ include/generated/timeconst.h \
+ include/linux/plist.h \
+ $(wildcard include/config/debug/pi/list.h) \
+ include/linux/rbtree.h \
+ include/linux/rcupdate.h \
+ $(wildcard include/config/tiny/rcu.h) \
+ $(wildcard include/config/tree/rcu.h) \
+ $(wildcard include/config/rcu/trace.h) \
+ $(wildcard include/config/rcu/stall/common.h) \
+ $(wildcard include/config/rcu/user/qs.h) \
+ $(wildcard include/config/rcu/nocb/cpu.h) \
+ $(wildcard include/config/debug/objects/rcu/head.h) \
+ $(wildcard include/config/rcu/boost.h) \
+ $(wildcard include/config/rcu/nocb/cpu/all.h) \
+ $(wildcard include/config/no/hz/full/sysidle.h) \
+ include/linux/completion.h \
+ include/linux/wait.h \
+ include/uapi/linux/wait.h \
+ include/linux/debugobjects.h \
+ $(wildcard include/config/debug/objects.h) \
+ $(wildcard include/config/debug/objects/free.h) \
+ include/linux/ktime.h \
+ include/linux/timekeeping.h \
+ include/linux/rcutree.h \
+ include/linux/errno.h \
+ include/uapi/linux/errno.h \
+ include/linux/nodemask.h \
+ $(wildcard include/config/highmem.h) \
+ $(wildcard include/config/movable/node.h) \
+ include/linux/numa.h \
+ $(wildcard include/config/nodes/shift.h) \
+ include/linux/mm_types.h \
+ $(wildcard include/config/split/ptlock/cpus.h) \
+ $(wildcard include/config/arch/enable/split/pmd/ptlock.h) \
+ $(wildcard include/config/have/cmpxchg/double.h) \
+ $(wildcard include/config/have/aligned/struct/page.h) \
+ $(wildcard include/config/transparent/hugepage.h) \
+ $(wildcard include/config/aio.h) \
+ $(wildcard include/config/mmu/notifier.h) \
+ $(wildcard include/config/compaction.h) \
+ include/linux/auxvec.h \
+ include/uapi/linux/auxvec.h \
+ arch/x86/include/uapi/asm/auxvec.h \
+ include/linux/rwsem.h \
+ $(wildcard include/config/rwsem/spin/on/owner.h) \
+ $(wildcard include/config/rwsem/generic/spinlock.h) \
+ include/linux/osq_lock.h \
+ arch/x86/include/asm/rwsem.h \
+ include/linux/uprobes.h \
+ arch/x86/include/asm/uprobes.h \
+ include/linux/notifier.h \
+ include/linux/mutex.h \
+ $(wildcard include/config/mutex/spin/on/owner.h) \
+ include/linux/srcu.h \
+ include/linux/workqueue.h \
+ $(wildcard include/config/debug/objects/work.h) \
+ $(wildcard include/config/freezer.h) \
+ $(wildcard include/config/sysfs.h) \
+ include/linux/timer.h \
+ $(wildcard include/config/timer/stats.h) \
+ $(wildcard include/config/debug/objects/timers.h) \
+ include/linux/sysctl.h \
+ $(wildcard include/config/sysctl.h) \
+ include/uapi/linux/sysctl.h \
+ include/linux/page-flags-layout.h \
+ include/generated/bounds.h \
+ arch/x86/include/asm/mmu.h \
+ include/linux/cputime.h \
+ arch/x86/include/generated/asm/cputime.h \
+ include/asm-generic/cputime.h \
+ $(wildcard include/config/virt/cpu/accounting.h) \
+ include/asm-generic/cputime_jiffies.h \
+ include/linux/smp.h \
+ $(wildcard include/config/up/late/init.h) \
+ include/linux/llist.h \
+ $(wildcard include/config/arch/have/nmi/safe/cmpxchg.h) \
+ arch/x86/include/asm/smp.h \
+ $(wildcard include/config/x86/io/apic.h) \
+ $(wildcard include/config/x86/32/smp.h) \
+ $(wildcard include/config/debug/nmi/selftest.h) \
+ arch/x86/include/asm/mpspec.h \
+ $(wildcard include/config/eisa.h) \
+ $(wildcard include/config/x86/mpparse.h) \
+ arch/x86/include/asm/mpspec_def.h \
+ arch/x86/include/asm/x86_init.h \
+ arch/x86/include/uapi/asm/bootparam.h \
+ include/linux/screen_info.h \
+ include/uapi/linux/screen_info.h \
+ include/linux/apm_bios.h \
+ include/uapi/linux/apm_bios.h \
+ include/linux/edd.h \
+ include/uapi/linux/edd.h \
+ arch/x86/include/asm/e820.h \
+ $(wildcard include/config/efi.h) \
+ $(wildcard include/config/hibernation.h) \
+ arch/x86/include/uapi/asm/e820.h \
+ $(wildcard include/config/x86/pmem/legacy.h) \
+ $(wildcard include/config/intel/txt.h) \
+ include/linux/ioport.h \
+ $(wildcard include/config/memory/hotremove.h) \
+ arch/x86/include/asm/ist.h \
+ arch/x86/include/uapi/asm/ist.h \
+ include/video/edid.h \
+ $(wildcard include/config/x86.h) \
+ include/uapi/video/edid.h \
+ arch/x86/include/asm/apicdef.h \
+ arch/x86/include/asm/apic.h \
+ $(wildcard include/config/x86/x2apic.h) \
+ include/linux/pm.h \
+ $(wildcard include/config/vt/console/sleep.h) \
+ $(wildcard include/config/pm/sleep.h) \
+ $(wildcard include/config/pm/clk.h) \
+ $(wildcard include/config/pm/generic/domains.h) \
+ arch/x86/include/asm/fixmap.h \
+ $(wildcard include/config/paravirt/clock.h) \
+ $(wildcard include/config/provide/ohci1394/dma/init.h) \
+ $(wildcard include/config/pci/mmconfig.h) \
+ $(wildcard include/config/x86/intel/mid.h) \
+ arch/x86/include/asm/acpi.h \
+ $(wildcard include/config/acpi.h) \
+ $(wildcard include/config/acpi/numa.h) \
+ include/acpi/pdc_intel.h \
+ arch/x86/include/asm/numa.h \
+ $(wildcard include/config/numa/emu.h) \
+ arch/x86/include/asm/topology.h \
+ include/asm-generic/topology.h \
+ $(wildcard include/config/have/memoryless/nodes.h) \
+ arch/x86/include/asm/realmode.h \
+ $(wildcard include/config/acpi/sleep.h) \
+ arch/x86/include/asm/io.h \
+ $(wildcard include/config/mtrr.h) \
+ arch/x86/include/generated/asm/early_ioremap.h \
+ include/asm-generic/early_ioremap.h \
+ $(wildcard include/config/generic/early/ioremap.h) \
+ include/asm-generic/iomap.h \
+ $(wildcard include/config/has/ioport/map.h) \
+ $(wildcard include/config/pci.h) \
+ $(wildcard include/config/generic/iomap.h) \
+ include/asm-generic/pci_iomap.h \
+ $(wildcard include/config/no/generic/pci/ioport/map.h) \
+ $(wildcard include/config/generic/pci/iomap.h) \
+ include/xen/xen.h \
+ $(wildcard include/config/xen/dom0.h) \
+ $(wildcard include/config/xen/pvh.h) \
+ include/xen/interface/xen.h \
+ arch/x86/include/asm/xen/interface.h \
+ arch/x86/include/asm/xen/interface_64.h \
+ arch/x86/include/asm/pvclock-abi.h \
+ arch/x86/include/asm/xen/hypervisor.h \
+ include/xen/features.h \
+ include/xen/interface/features.h \
+ arch/x86/include/asm/pvclock.h \
+ include/linux/clocksource.h \
+ $(wildcard include/config/arch/clocksource/data.h) \
+ $(wildcard include/config/clocksource/watchdog.h) \
+ $(wildcard include/config/clksrc/of.h) \
+ arch/x86/include/asm/clocksource.h \
+ arch/x86/include/uapi/asm/vsyscall.h \
+ include/asm-generic/fixmap.h \
+ arch/x86/include/asm/idle.h \
+ arch/x86/include/asm/io_apic.h \
+ arch/x86/include/asm/irq_vectors.h \
+ $(wildcard include/config/have/kvm.h) \
+ $(wildcard include/config/pci/msi.h) \
+ include/linux/sem.h \
+ include/uapi/linux/sem.h \
+ include/linux/ipc.h \
+ include/linux/uidgid.h \
+ $(wildcard include/config/user/ns.h) \
+ include/linux/highuid.h \
+ include/uapi/linux/ipc.h \
+ arch/x86/include/uapi/asm/ipcbuf.h \
+ include/uapi/asm-generic/ipcbuf.h \
+ arch/x86/include/uapi/asm/sembuf.h \
+ include/linux/shm.h \
+ include/uapi/linux/shm.h \
+ arch/x86/include/uapi/asm/shmbuf.h \
+ include/uapi/asm-generic/shmbuf.h \
+ arch/x86/include/asm/shmparam.h \
+ include/linux/signal.h \
+ $(wildcard include/config/old/sigaction.h) \
+ include/uapi/linux/signal.h \
+ arch/x86/include/asm/signal.h \
+ arch/x86/include/uapi/asm/signal.h \
+ include/uapi/asm-generic/signal-defs.h \
+ arch/x86/include/uapi/asm/siginfo.h \
+ include/asm-generic/siginfo.h \
+ include/uapi/asm-generic/siginfo.h \
+ include/linux/pid.h \
+ include/linux/percpu.h \
+ $(wildcard include/config/need/per/cpu/embed/first/chunk.h) \
+ $(wildcard include/config/need/per/cpu/page/first/chunk.h) \
+ include/linux/mmdebug.h \
+ $(wildcard include/config/debug/vm.h) \
+ include/linux/pfn.h \
+ include/linux/topology.h \
+ $(wildcard include/config/use/percpu/numa/node/id.h) \
+ include/linux/mmzone.h \
+ $(wildcard include/config/force/max/zoneorder.h) \
+ $(wildcard include/config/cma.h) \
+ $(wildcard include/config/memory/isolation.h) \
+ $(wildcard include/config/zone/dma.h) \
+ $(wildcard include/config/zone/dma32.h) \
+ $(wildcard include/config/memory/hotplug.h) \
+ $(wildcard include/config/have/memblock/node/map.h) \
+ $(wildcard include/config/flat/node/mem/map.h) \
+ $(wildcard include/config/page/extension.h) \
+ $(wildcard include/config/no/bootmem.h) \
+ $(wildcard include/config/deferred/struct/page/init.h) \
+ $(wildcard include/config/have/memory/present.h) \
+ $(wildcard include/config/need/node/memmap/size.h) \
+ $(wildcard include/config/need/multiple/nodes.h) \
+ $(wildcard include/config/have/arch/early/pfn/to/nid.h) \
+ $(wildcard include/config/sparsemem/extreme.h) \
+ $(wildcard include/config/have/arch/pfn/valid.h) \
+ $(wildcard include/config/holes/in/zone.h) \
+ $(wildcard include/config/arch/has/holes/memorymodel.h) \
+ include/linux/pageblock-flags.h \
+ $(wildcard include/config/hugetlb/page.h) \
+ $(wildcard include/config/hugetlb/page/size/variable.h) \
+ include/linux/memory_hotplug.h \
+ $(wildcard include/config/have/arch/nodedata/extension.h) \
+ $(wildcard include/config/have/bootmem/info/node.h) \
+ arch/x86/include/asm/mmzone.h \
+ arch/x86/include/asm/mmzone_64.h \
+ include/linux/proportions.h \
+ include/linux/percpu_counter.h \
+ include/linux/gfp.h \
+ include/linux/seccomp.h \
+ $(wildcard include/config/seccomp.h) \
+ $(wildcard include/config/have/arch/seccomp/filter.h) \
+ $(wildcard include/config/seccomp/filter.h) \
+ include/uapi/linux/seccomp.h \
+ arch/x86/include/asm/seccomp.h \
+ arch/x86/include/asm/unistd.h \
+ $(wildcard include/config/x86/x32/abi.h) \
+ arch/x86/include/uapi/asm/unistd.h \
+ arch/x86/include/generated/uapi/asm/unistd_64.h \
+ arch/x86/include/generated/asm/unistd_64_x32.h \
+ arch/x86/include/asm/ia32_unistd.h \
+ arch/x86/include/generated/asm/unistd_32_ia32.h \
+ include/asm-generic/seccomp.h \
+ include/uapi/linux/unistd.h \
+ include/linux/rculist.h \
+ include/linux/rtmutex.h \
+ $(wildcard include/config/debug/rt/mutexes.h) \
+ include/linux/resource.h \
+ include/uapi/linux/resource.h \
+ arch/x86/include/uapi/asm/resource.h \
+ include/asm-generic/resource.h \
+ include/uapi/asm-generic/resource.h \
+ include/linux/hrtimer.h \
+ $(wildcard include/config/high/res/timers.h) \
+ $(wildcard include/config/timerfd.h) \
+ include/linux/timerqueue.h \
+ include/linux/task_io_accounting.h \
+ $(wildcard include/config/task/io/accounting.h) \
+ include/linux/latencytop.h \
+ include/linux/cred.h \
+ $(wildcard include/config/debug/credentials.h) \
+ $(wildcard include/config/security.h) \
+ include/linux/key.h \
+ include/linux/assoc_array.h \
+ $(wildcard include/config/associative/array.h) \
+ include/linux/selinux.h \
+ $(wildcard include/config/security/selinux.h) \
+ include/uapi/linux/magic.h \
+ include/linux/cgroup-defs.h \
+ include/uapi/linux/limits.h \
+ include/linux/idr.h \
+ include/linux/percpu-refcount.h \
+ include/linux/percpu-rwsem.h \
+ include/linux/cgroup_subsys.h \
+ $(wildcard include/config/cgroup/cpuacct.h) \
+ $(wildcard include/config/cgroup/device.h) \
+ $(wildcard include/config/cgroup/freezer.h) \
+ $(wildcard include/config/cgroup/net/classid.h) \
+ $(wildcard include/config/cgroup/perf.h) \
+ $(wildcard include/config/cgroup/net/prio.h) \
+ $(wildcard include/config/cgroup/hugetlb.h) \
+ $(wildcard include/config/cgroup/debug.h) \
+ include/linux/genhd.h \
+ $(wildcard include/config/fail/make/request.h) \
+ $(wildcard include/config/solaris/x86/partition.h) \
+ $(wildcard include/config/bsd/disklabel.h) \
+ $(wildcard include/config/unixware/disklabel.h) \
+ $(wildcard include/config/minix/subpartition.h) \
+ include/linux/kdev_t.h \
+ include/uapi/linux/kdev_t.h \
+ include/linux/slab.h \
+ $(wildcard include/config/debug/slab.h) \
+ $(wildcard include/config/failslab.h) \
+ $(wildcard include/config/slab.h) \
+ $(wildcard include/config/slub.h) \
+ $(wildcard include/config/slob.h) \
+ include/linux/kmemleak.h \
+ $(wildcard include/config/debug/kmemleak.h) \
+ include/linux/kasan.h \
+ $(wildcard include/config/kasan/shadow/offset.h) \
+ include/linux/device.h \
+ $(wildcard include/config/debug/devres.h) \
+ $(wildcard include/config/pinctrl.h) \
+ $(wildcard include/config/dma/cma.h) \
+ $(wildcard include/config/of.h) \
+ $(wildcard include/config/devtmpfs.h) \
+ $(wildcard include/config/sysfs/deprecated.h) \
+ include/linux/kobject.h \
+ $(wildcard include/config/uevent/helper.h) \
+ $(wildcard include/config/debug/kobject/release.h) \
+ include/linux/sysfs.h \
+ include/linux/kernfs.h \
+ $(wildcard include/config/kernfs.h) \
+ include/linux/kobject_ns.h \
+ include/linux/stat.h \
+ arch/x86/include/uapi/asm/stat.h \
+ include/uapi/linux/stat.h \
+ include/linux/kref.h \
+ include/linux/klist.h \
+ include/linux/pinctrl/devinfo.h \
+ include/linux/pinctrl/consumer.h \
+ include/linux/seq_file.h \
+ include/linux/pinctrl/pinctrl-state.h \
+ include/linux/ratelimit.h \
+ arch/x86/include/asm/device.h \
+ $(wildcard include/config/x86/dev/dma/ops.h) \
+ $(wildcard include/config/intel/iommu.h) \
+ $(wildcard include/config/amd/iommu.h) \
+ include/linux/pm_wakeup.h \
+ include/linux/fs.h \
+ $(wildcard include/config/fs/posix/acl.h) \
+ $(wildcard include/config/cgroup/writeback.h) \
+ $(wildcard include/config/ima.h) \
+ $(wildcard include/config/fsnotify.h) \
+ $(wildcard include/config/file/locking.h) \
+ $(wildcard include/config/quota.h) \
+ $(wildcard include/config/fs/dax.h) \
+ $(wildcard include/config/migration.h) \
+ include/linux/dcache.h \
+ include/linux/rculist_bl.h \
+ include/linux/list_bl.h \
+ include/linux/bit_spinlock.h \
+ include/linux/lockref.h \
+ $(wildcard include/config/arch/use/cmpxchg/lockref.h) \
+ include/linux/path.h \
+ include/linux/list_lru.h \
+ include/linux/shrinker.h \
+ include/linux/radix-tree.h \
+ include/linux/semaphore.h \
+ include/uapi/linux/fiemap.h \
+ include/linux/migrate_mode.h \
+ include/linux/blk_types.h \
+ include/uapi/linux/fs.h \
+ include/linux/quota.h \
+ $(wildcard include/config/quota/netlink/interface.h) \
+ include/uapi/linux/dqblk_xfs.h \
+ include/linux/dqblk_v1.h \
+ include/linux/dqblk_v2.h \
+ include/linux/dqblk_qtree.h \
+ include/linux/projid.h \
+ include/uapi/linux/quota.h \
+ include/linux/nfs_fs_i.h \
+ include/linux/fcntl.h \
+ include/uapi/linux/fcntl.h \
+ arch/x86/include/uapi/asm/fcntl.h \
+ include/uapi/asm-generic/fcntl.h \
+ include/linux/pagemap.h \
+ include/linux/mm.h \
+ $(wildcard include/config/ppc.h) \
+ $(wildcard include/config/parisc.h) \
+ $(wildcard include/config/metag.h) \
+ $(wildcard include/config/ia64.h) \
+ $(wildcard include/config/shmem.h) \
+ $(wildcard include/config/debug/vm/rb.h) \
+ $(wildcard include/config/debug/pagealloc.h) \
+ $(wildcard include/config/hugetlbfs.h) \
+ include/linux/debug_locks.h \
+ $(wildcard include/config/debug/locking/api/selftests.h) \
+ include/linux/page_ext.h \
+ $(wildcard include/config/page/owner.h) \
+ include/linux/stacktrace.h \
+ $(wildcard include/config/stacktrace.h) \
+ $(wildcard include/config/user/stacktrace/support.h) \
+ arch/x86/include/asm/pgtable.h \
+ $(wildcard include/config/have/arch/soft/dirty.h) \
+ arch/x86/include/asm/pgtable_64.h \
+ include/asm-generic/pgtable.h \
+ $(wildcard include/config/have/arch/huge/vmap.h) \
+ include/linux/page-flags.h \
+ $(wildcard include/config/pageflags/extended.h) \
+ $(wildcard include/config/arch/uses/pg/uncached.h) \
+ $(wildcard include/config/memory/failure.h) \
+ $(wildcard include/config/swap.h) \
+ $(wildcard include/config/ksm.h) \
+ include/linux/huge_mm.h \
+ include/linux/vmstat.h \
+ $(wildcard include/config/vm/event/counters.h) \
+ $(wildcard include/config/debug/tlbflush.h) \
+ $(wildcard include/config/debug/vm/vmacache.h) \
+ include/linux/vm_event_item.h \
+ $(wildcard include/config/memory/balloon.h) \
+ $(wildcard include/config/balloon/compaction.h) \
+ include/linux/highmem.h \
+ include/linux/uaccess.h \
+ arch/x86/include/asm/uaccess.h \
+ $(wildcard include/config/x86/intel/usercopy.h) \
+ $(wildcard include/config/debug/strict/user/copy/checks.h) \
+ arch/x86/include/asm/smap.h \
+ $(wildcard include/config/x86/smap.h) \
+ arch/x86/include/asm/uaccess_64.h \
+ include/linux/hardirq.h \
+ include/linux/ftrace_irq.h \
+ $(wildcard include/config/ftrace/nmi/enter.h) \
+ include/linux/vtime.h \
+ include/linux/context_tracking_state.h \
+ $(wildcard include/config/context/tracking.h) \
+ include/linux/static_key.h \
+ arch/x86/include/asm/hardirq.h \
+ $(wildcard include/config/x86/thermal/vector.h) \
+ $(wildcard include/config/x86/mce/threshold.h) \
+ $(wildcard include/config/x86/mce/amd.h) \
+ $(wildcard include/config/hyperv.h) \
+ include/linux/irq.h \
+ $(wildcard include/config/irq/domain/hierarchy.h) \
+ $(wildcard include/config/generic/pending/irq.h) \
+ $(wildcard include/config/hardirqs/sw/resend.h) \
+ $(wildcard include/config/generic/irq/legacy/alloc/hwirq.h) \
+ $(wildcard include/config/generic/irq/legacy.h) \
+ include/linux/irqhandler.h \
+ include/linux/irqreturn.h \
+ include/linux/irqnr.h \
+ include/uapi/linux/irqnr.h \
+ include/linux/io.h \
+ arch/x86/include/asm/irq.h \
+ arch/x86/include/asm/irq_regs.h \
+ include/linux/irqdesc.h \
+ $(wildcard include/config/irq/preflow/fasteoi.h) \
+ $(wildcard include/config/sparse/irq.h) \
+ $(wildcard include/config/handle/domain/irq.h) \
+ arch/x86/include/asm/hw_irq.h \
+ $(wildcard include/config/hpet/timer.h) \
+ $(wildcard include/config/dmar/table.h) \
+ $(wildcard include/config/ht/irq.h) \
+ $(wildcard include/config/x86/uv.h) \
+ include/linux/profile.h \
+ $(wildcard include/config/profiling.h) \
+ arch/x86/include/asm/sections.h \
+ $(wildcard include/config/debug/rodata.h) \
+ include/asm-generic/sections.h \
+ arch/x86/include/asm/cacheflush.h \
+ $(wildcard include/config/debug/rodata/test.h) \
+ include/asm-generic/cacheflush.h \
+ include/linux/hugetlb_inline.h \
+ include/linux/backing-dev-defs.h \
+ include/linux/flex_proportions.h \
+ include/linux/mempool.h \
+ include/linux/bio.h \
+ include/linux/ioprio.h \
+ include/linux/iocontext.h \
+ include/linux/bsg.h \
+ include/uapi/linux/bsg.h \
+ include/linux/scatterlist.h \
+ $(wildcard include/config/debug/sg.h) \
+ $(wildcard include/config/need/sg/dma/length.h) \
+ $(wildcard include/config/arch/has/sg/chain.h) \
+ include/linux/elevator.h \
+ include/linux/hashtable.h \
+ include/linux/hash.h \
+ $(wildcard include/config/arch/has/fast/multiplier.h) \
+ include/linux/module.h \
+ $(wildcard include/config/module/sig.h) \
+ $(wildcard include/config/modules/tree/lookup.h) \
+ $(wildcard include/config/kallsyms.h) \
+ $(wildcard include/config/tracepoints.h) \
+ $(wildcard include/config/event/tracing.h) \
+ $(wildcard include/config/livepatch.h) \
+ $(wildcard include/config/module/unload.h) \
+ $(wildcard include/config/constructors.h) \
+ $(wildcard include/config/debug/set/module/ronx.h) \
+ include/linux/kmod.h \
+ include/linux/elf.h \
+ arch/x86/include/asm/elf.h \
+ arch/x86/include/asm/user.h \
+ arch/x86/include/asm/user_64.h \
+ arch/x86/include/asm/vdso.h \
+ $(wildcard include/config/x86/x32.h) \
+ include/uapi/linux/elf.h \
+ include/uapi/linux/elf-em.h \
+ include/linux/moduleparam.h \
+ $(wildcard include/config/alpha.h) \
+ $(wildcard include/config/ppc64.h) \
+ include/linux/rbtree_latch.h \
+ arch/x86/include/asm/module.h \
+ $(wildcard include/config/m586.h) \
+ $(wildcard include/config/m586tsc.h) \
+ $(wildcard include/config/m586mmx.h) \
+ $(wildcard include/config/mcore2.h) \
+ $(wildcard include/config/m686.h) \
+ $(wildcard include/config/mpentiumii.h) \
+ $(wildcard include/config/mpentiumiii.h) \
+ $(wildcard include/config/mpentiumm.h) \
+ $(wildcard include/config/mpentium4.h) \
+ $(wildcard include/config/mk6.h) \
+ $(wildcard include/config/mk8.h) \
+ $(wildcard include/config/melan.h) \
+ $(wildcard include/config/mcrusoe.h) \
+ $(wildcard include/config/mefficeon.h) \
+ $(wildcard include/config/mwinchipc6.h) \
+ $(wildcard include/config/mwinchip3d.h) \
+ $(wildcard include/config/mcyrixiii.h) \
+ $(wildcard include/config/mviac3/2.h) \
+ $(wildcard include/config/mviac7.h) \
+ $(wildcard include/config/mgeodegx1.h) \
+ $(wildcard include/config/mgeode/lx.h) \
+ include/asm-generic/module.h \
+ $(wildcard include/config/have/mod/arch/specific.h) \
+ $(wildcard include/config/modules/use/elf/rel.h) \
+ $(wildcard include/config/modules/use/elf/rela.h) \
+ include/linux/file.h \
+ include/net/sock.h \
+ $(wildcard include/config/net.h) \
+ $(wildcard include/config/ipv6.h) \
+ $(wildcard include/config/rps.h) \
+ $(wildcard include/config/net/rx/busy/poll.h) \
+ $(wildcard include/config/xfrm.h) \
+ $(wildcard include/config/inet.h) \
+ include/linux/list_nulls.h \
+ include/linux/netdevice.h \
+ $(wildcard include/config/dcb.h) \
+ $(wildcard include/config/wlan.h) \
+ $(wildcard include/config/ax25.h) \
+ $(wildcard include/config/mac80211/mesh.h) \
+ $(wildcard include/config/net/ipip.h) \
+ $(wildcard include/config/net/ipgre.h) \
+ $(wildcard include/config/ipv6/sit.h) \
+ $(wildcard include/config/ipv6/tunnel.h) \
+ $(wildcard include/config/netpoll.h) \
+ $(wildcard include/config/xps.h) \
+ $(wildcard include/config/bql.h) \
+ $(wildcard include/config/rfs/accel.h) \
+ $(wildcard include/config/fcoe.h) \
+ $(wildcard include/config/net/poll/controller.h) \
+ $(wildcard include/config/libfcoe.h) \
+ $(wildcard include/config/wireless/ext.h) \
+ $(wildcard include/config/net/switchdev.h) \
+ $(wildcard include/config/vlan/8021q.h) \
+ $(wildcard include/config/net/dsa.h) \
+ $(wildcard include/config/tipc.h) \
+ $(wildcard include/config/mpls/routing.h) \
+ $(wildcard include/config/net/cls/act.h) \
+ $(wildcard include/config/netfilter/ingress.h) \
+ $(wildcard include/config/net/flow/limit.h) \
+ include/linux/delay.h \
+ arch/x86/include/asm/delay.h \
+ include/asm-generic/delay.h \
+ include/linux/prefetch.h \
+ include/linux/dmaengine.h \
+ $(wildcard include/config/async/tx/enable/channel/switch.h) \
+ $(wildcard include/config/dma/engine.h) \
+ $(wildcard include/config/rapidio/dma/engine.h) \
+ $(wildcard include/config/async/tx/dma.h) \
+ include/linux/uio.h \
+ include/uapi/linux/uio.h \
+ include/linux/dynamic_queue_limits.h \
+ include/linux/ethtool.h \
+ include/linux/compat.h \
+ $(wildcard include/config/compat/old/sigaction.h) \
+ $(wildcard include/config/odd/rt/sigaction.h) \
+ include/linux/socket.h \
+ arch/x86/include/uapi/asm/socket.h \
+ include/uapi/asm-generic/socket.h \
+ arch/x86/include/uapi/asm/sockios.h \
+ include/uapi/asm-generic/sockios.h \
+ include/uapi/linux/sockios.h \
+ include/uapi/linux/socket.h \
+ include/uapi/linux/if.h \
+ include/uapi/linux/hdlc/ioctl.h \
+ include/uapi/linux/aio_abi.h \
+ arch/x86/include/asm/compat.h \
+ arch/x86/include/asm/user32.h \
+ include/uapi/linux/ethtool.h \
+ include/linux/if_ether.h \
+ include/linux/skbuff.h \
+ $(wildcard include/config/nf/conntrack.h) \
+ $(wildcard include/config/bridge/netfilter.h) \
+ $(wildcard include/config/ipv6/ndisc/nodetype.h) \
+ $(wildcard include/config/net/sched.h) \
+ $(wildcard include/config/network/secmark.h) \
+ $(wildcard include/config/network/phy/timestamping.h) \
+ $(wildcard include/config/netfilter/xt/target/trace.h) \
+ $(wildcard include/config/nf/tables.h) \
+ include/linux/kmemcheck.h \
+ include/linux/net.h \
+ include/linux/random.h \
+ $(wildcard include/config/arch/random.h) \
+ include/uapi/linux/random.h \
+ arch/x86/include/asm/archrandom.h \
+ include/uapi/linux/net.h \
+ include/linux/textsearch.h \
+ include/net/checksum.h \
+ arch/x86/include/asm/checksum.h \
+ arch/x86/include/asm/checksum_64.h \
+ include/linux/dma-mapping.h \
+ $(wildcard include/config/has/dma.h) \
+ $(wildcard include/config/arch/has/dma/set/coherent/mask.h) \
+ $(wildcard include/config/have/dma/attrs.h) \
+ $(wildcard include/config/need/dma/map/state.h) \
+ include/linux/dma-attrs.h \
+ include/linux/dma-direction.h \
+ arch/x86/include/asm/dma-mapping.h \
+ $(wildcard include/config/isa.h) \
+ $(wildcard include/config/x86/dma/remap.h) \
+ include/linux/dma-debug.h \
+ $(wildcard include/config/dma/api/debug.h) \
+ arch/x86/include/asm/swiotlb.h \
+ $(wildcard include/config/swiotlb.h) \
+ include/linux/swiotlb.h \
+ include/asm-generic/dma-coherent.h \
+ $(wildcard include/config/have/generic/dma/coherent.h) \
+ include/linux/dma-contiguous.h \
+ include/asm-generic/dma-mapping-common.h \
+ include/linux/netdev_features.h \
+ include/net/flow_dissector.h \
+ include/linux/in6.h \
+ include/uapi/linux/in6.h \
+ include/uapi/linux/libc-compat.h \
+ include/uapi/linux/if_ether.h \
+ include/linux/splice.h \
+ include/linux/pipe_fs_i.h \
+ include/net/net_namespace.h \
+ $(wildcard include/config/ieee802154/6lowpan.h) \
+ $(wildcard include/config/ip/sctp.h) \
+ $(wildcard include/config/ip/dccp.h) \
+ $(wildcard include/config/netfilter.h) \
+ $(wildcard include/config/nf/defrag/ipv6.h) \
+ $(wildcard include/config/wext/core.h) \
+ $(wildcard include/config/ip/vs.h) \
+ $(wildcard include/config/mpls.h) \
+ $(wildcard include/config/net/ns.h) \
+ include/net/flow.h \
+ include/net/netns/core.h \
+ include/net/netns/mib.h \
+ $(wildcard include/config/xfrm/statistics.h) \
+ include/net/snmp.h \
+ include/uapi/linux/snmp.h \
+ include/linux/u64_stats_sync.h \
+ include/net/netns/unix.h \
+ include/net/netns/packet.h \
+ include/net/netns/ipv4.h \
+ $(wildcard include/config/ip/multiple/tables.h) \
+ $(wildcard include/config/ip/route/classid.h) \
+ $(wildcard include/config/ip/mroute.h) \
+ $(wildcard include/config/ip/mroute/multiple/tables.h) \
+ include/net/inet_frag.h \
+ include/net/netns/ipv6.h \
+ $(wildcard include/config/ipv6/multiple/tables.h) \
+ $(wildcard include/config/ipv6/mroute.h) \
+ $(wildcard include/config/ipv6/mroute/multiple/tables.h) \
+ include/net/dst_ops.h \
+ include/net/netns/ieee802154_6lowpan.h \
+ include/net/netns/sctp.h \
+ include/net/netns/dccp.h \
+ include/net/netns/netfilter.h \
+ include/linux/netfilter_defs.h \
+ include/uapi/linux/netfilter.h \
+ include/linux/in.h \
+ include/uapi/linux/in.h \
+ include/net/netns/x_tables.h \
+ $(wildcard include/config/bridge/nf/ebtables.h) \
+ include/net/netns/conntrack.h \
+ $(wildcard include/config/nf/conntrack/proc/compat.h) \
+ $(wildcard include/config/nf/conntrack/events.h) \
+ $(wildcard include/config/nf/conntrack/labels.h) \
+ $(wildcard include/config/nf/nat/needed.h) \
+ include/linux/netfilter/nf_conntrack_tcp.h \
+ include/uapi/linux/netfilter/nf_conntrack_tcp.h \
+ include/net/netns/nftables.h \
+ include/net/netns/xfrm.h \
+ include/uapi/linux/xfrm.h \
+ include/net/flowcache.h \
+ include/linux/interrupt.h \
+ $(wildcard include/config/irq/forced/threading.h) \
+ $(wildcard include/config/generic/irq/probe.h) \
+ include/net/netns/mpls.h \
+ include/linux/ns_common.h \
+ include/linux/seq_file_net.h \
+ include/net/dsa.h \
+ $(wildcard include/config/net/dsa/hwmon.h) \
+ include/linux/of.h \
+ $(wildcard include/config/sparc.h) \
+ $(wildcard include/config/of/dynamic.h) \
+ $(wildcard include/config/attach/node.h) \
+ $(wildcard include/config/detach/node.h) \
+ $(wildcard include/config/add/property.h) \
+ $(wildcard include/config/remove/property.h) \
+ $(wildcard include/config/update/property.h) \
+ $(wildcard include/config/no/change.h) \
+ $(wildcard include/config/change/add.h) \
+ $(wildcard include/config/change/remove.h) \
+ $(wildcard include/config/of/resolve.h) \
+ $(wildcard include/config/of/overlay.h) \
+ include/linux/mod_devicetable.h \
+ include/linux/uuid.h \
+ include/uapi/linux/uuid.h \
+ include/linux/property.h \
+ include/linux/fwnode.h \
+ include/linux/phy.h \
+ include/linux/mii.h \
+ include/uapi/linux/mii.h \
+ include/linux/phy_fixed.h \
+ $(wildcard include/config/fixed/phy.h) \
+ include/net/netprio_cgroup.h \
+ include/linux/cgroup.h \
+ include/uapi/linux/cgroupstats.h \
+ include/uapi/linux/taskstats.h \
+ include/uapi/linux/neighbour.h \
+ include/linux/netlink.h \
+ include/net/scm.h \
+ $(wildcard include/config/security/network.h) \
+ include/linux/security.h \
+ $(wildcard include/config/security/network/xfrm.h) \
+ $(wildcard include/config/security/path.h) \
+ $(wildcard include/config/securityfs.h) \
+ include/linux/nsproxy.h \
+ include/uapi/linux/netlink.h \
+ include/uapi/linux/netdevice.h \
+ include/uapi/linux/if_packet.h \
+ include/linux/if_link.h \
+ include/uapi/linux/if_link.h \
+ include/uapi/linux/if_bonding.h \
+ include/linux/page_counter.h \
+ include/linux/memcontrol.h \
+ $(wildcard include/config/memcg/swap.h) \
+ include/linux/filter.h \
+ $(wildcard include/config/bpf/jit.h) \
+ include/uapi/linux/filter.h \
+ include/uapi/linux/bpf_common.h \
+ include/uapi/linux/bpf.h \
+ include/linux/rculist_nulls.h \
+ include/linux/poll.h \
+ include/uapi/linux/poll.h \
+ arch/x86/include/uapi/asm/poll.h \
+ include/uapi/asm-generic/poll.h \
+ include/net/dst.h \
+ include/linux/rtnetlink.h \
+ $(wildcard include/config/net/ingress.h) \
+ include/uapi/linux/rtnetlink.h \
+ include/uapi/linux/if_addr.h \
+ include/net/neighbour.h \
+ include/net/rtnetlink.h \
+ include/net/netlink.h \
+ include/net/tcp_states.h \
+ include/uapi/linux/net_tstamp.h \
+ include/linux/kthread.h \
+ include/linux/debugfs.h \
+ include/uapi/linux/nbd.h \
+
+/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.o: $(deps_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.o)
+
+$(deps_/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.o):
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/.tmp_versions/nbd.mod b/builder/dnbd3-qcow2-rootfs/binaries/nbd/.tmp_versions/nbd.mod
new file mode 100644
index 00000000..f2bc3309
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/.tmp_versions/nbd.mod
@@ -0,0 +1,2 @@
+/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.ko
+/media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.o
diff --git a/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/Makefile b/builder/dnbd3-qcow2-rootfs/binaries/nbd/Makefile
index ca0423f5..ca0423f5 100644
--- a/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/Makefile
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/Makefile
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/Module.symvers b/builder/dnbd3-qcow2-rootfs/binaries/nbd/Module.symvers
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/Module.symvers
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/modules.order b/builder/dnbd3-qcow2-rootfs/binaries/nbd/modules.order
new file mode 100644
index 00000000..8f303a78
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/modules.order
@@ -0,0 +1 @@
+kernel//media/sf_project/systemd-init/builder/dnbd3-qcow2-rootfs/kernel_modules/nbd/nbd.ko
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.c b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.c
new file mode 100644
index 00000000..1b876233
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.c
@@ -0,0 +1,1136 @@
+/*
+ * Network block device - make block devices work over TCP
+ *
+ * Note that you can not swap over this thing, yet. Seems to work but
+ * deadlocks sometimes - you can not swap over TCP in general.
+ *
+ * Copyright 1997-2000, 2008 Pavel Machek <pavel@ucw.cz>
+ * Parts copyright 2001 Steven Whitehouse <steve@chygwyn.com>
+ *
+ * This file is released under GPLv2 or later.
+ *
+ * (part of code stolen from loop.c)
+ */
+
+#include <linux/major.h>
+
+#include <linux/blkdev.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/sched.h>
+#include <linux/fs.h>
+#include <linux/bio.h>
+#include <linux/stat.h>
+#include <linux/errno.h>
+#include <linux/file.h>
+#include <linux/ioctl.h>
+#include <linux/mutex.h>
+#include <linux/compiler.h>
+#include <linux/err.h>
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <net/sock.h>
+#include <linux/net.h>
+#include <linux/kthread.h>
+#include <linux/types.h>
+#include <linux/debugfs.h>
+
+#include <asm/uaccess.h>
+#include <asm/types.h>
+
+#include <linux/nbd.h>
+
+struct nbd_device {
+ u32 flags;
+ struct socket * sock; /* If == NULL, device is not ready, yet */
+ int magic;
+
+ spinlock_t queue_lock;
+ struct list_head queue_head; /* Requests waiting result */
+ struct request *active_req;
+ wait_queue_head_t active_wq;
+ struct list_head waiting_queue; /* Requests to be sent */
+ wait_queue_head_t waiting_wq;
+
+ struct mutex tx_lock;
+ struct gendisk *disk;
+ int blksize;
+ loff_t bytesize;
+ int xmit_timeout;
+ bool disconnect; /* a disconnect has been requested by user */
+
+ struct timer_list timeout_timer;
+ spinlock_t tasks_lock;
+ struct task_struct *task_recv;
+ struct task_struct *task_send;
+
+#if IS_ENABLED(CONFIG_DEBUG_FS)
+ struct dentry *dbg_dir;
+#endif
+};
+
+#if IS_ENABLED(CONFIG_DEBUG_FS)
+static struct dentry *nbd_dbg_dir;
+#endif
+
+#define nbd_name(nbd) ((nbd)->disk->disk_name)
+
+#define NBD_MAGIC 0x68797548
+
+static unsigned int nbds_max = 16;
+static struct nbd_device *nbd_dev;
+static int max_part;
+
+/*
+ * Use just one lock (or at most 1 per NIC). Two arguments for this:
+ * 1. Each NIC is essentially a synchronization point for all servers
+ * accessed through that NIC so there's no need to have more locks
+ * than NICs anyway.
+ * 2. More locks lead to more "Dirty cache line bouncing" which will slow
+ * down each lock to the point where they're actually slower than just
+ * a single lock.
+ * Thanks go to Jens Axboe and Al Viro for their LKML emails explaining this!
+ */
+static DEFINE_SPINLOCK(nbd_lock);
+
+static inline struct device *nbd_to_dev(struct nbd_device *nbd)
+{
+ return disk_to_dev(nbd->disk);
+}
+
+static const char *nbdcmd_to_ascii(int cmd)
+{
+ switch (cmd) {
+ case NBD_CMD_READ: return "read";
+ case NBD_CMD_WRITE: return "write";
+ case NBD_CMD_DISC: return "disconnect";
+ case NBD_CMD_FLUSH: return "flush";
+ case NBD_CMD_TRIM: return "trim/discard";
+ }
+ return "invalid";
+}
+
+static void nbd_end_request(struct nbd_device *nbd, struct request *req)
+{
+ int error = req->errors ? -EIO : 0;
+ struct request_queue *q = req->q;
+ unsigned long flags;
+
+ dev_dbg(nbd_to_dev(nbd), "request %p: %s\n", req,
+ error ? "failed" : "done");
+
+ spin_lock_irqsave(q->queue_lock, flags);
+ __blk_end_request_all(req, error);
+ spin_unlock_irqrestore(q->queue_lock, flags);
+}
+
+/*
+ * Forcibly shutdown the socket causing all listeners to error
+ */
+static void sock_shutdown(struct nbd_device *nbd)
+{
+ if (!nbd->sock)
+ return;
+
+ dev_warn(disk_to_dev(nbd->disk), "shutting down socket\n");
+ kernel_sock_shutdown(nbd->sock, SHUT_RDWR);
+ nbd->sock = NULL;
+ del_timer_sync(&nbd->timeout_timer);
+}
+
+static void nbd_xmit_timeout(unsigned long arg)
+{
+ struct nbd_device *nbd = (struct nbd_device *)arg;
+ unsigned long flags;
+
+ if (list_empty(&nbd->queue_head))
+ return;
+
+ nbd->disconnect = true;
+
+ spin_lock_irqsave(&nbd->tasks_lock, flags);
+
+ if (nbd->task_recv)
+ force_sig(SIGKILL, nbd->task_recv);
+
+ if (nbd->task_send)
+ force_sig(SIGKILL, nbd->task_send);
+
+ spin_unlock_irqrestore(&nbd->tasks_lock, flags);
+
+ dev_err(nbd_to_dev(nbd), "Connection timed out, killed receiver and sender, shutting down connection\n");
+}
+
+/*
+ * Send or receive packet.
+ */
+static int sock_xmit(struct nbd_device *nbd, int send, void *buf, int size,
+ int msg_flags)
+{
+ struct socket *sock = nbd->sock;
+ int result;
+ struct msghdr msg;
+ struct kvec iov;
+ sigset_t blocked, oldset;
+ unsigned long pflags = current->flags;
+
+ if (unlikely(!sock)) {
+ dev_err(disk_to_dev(nbd->disk),
+ "Attempted %s on closed socket in sock_xmit\n",
+ (send ? "send" : "recv"));
+ return -EINVAL;
+ }
+
+ /* Allow interception of SIGKILL only
+ * Don't allow other signals to interrupt the transmission */
+ siginitsetinv(&blocked, sigmask(SIGKILL));
+ sigprocmask(SIG_SETMASK, &blocked, &oldset);
+
+ current->flags |= PF_MEMALLOC;
+ do {
+ sock->sk->sk_allocation = GFP_NOIO | __GFP_MEMALLOC;
+ iov.iov_base = buf;
+ iov.iov_len = size;
+ msg.msg_name = NULL;
+ msg.msg_namelen = 0;
+ msg.msg_control = NULL;
+ msg.msg_controllen = 0;
+ msg.msg_flags = msg_flags | MSG_NOSIGNAL;
+
+ if (send)
+ result = kernel_sendmsg(sock, &msg, &iov, 1, size);
+ else
+ result = kernel_recvmsg(sock, &msg, &iov, 1, size,
+ msg.msg_flags);
+
+ if (result <= 0) {
+ if (result == 0)
+ result = -EPIPE; /* short read */
+ break;
+ }
+ size -= result;
+ buf += result;
+ } while (size > 0);
+
+ sigprocmask(SIG_SETMASK, &oldset, NULL);
+ tsk_restore_flags(current, pflags, PF_MEMALLOC);
+
+ if (!send && nbd->xmit_timeout)
+ mod_timer(&nbd->timeout_timer, jiffies + nbd->xmit_timeout);
+
+ return result;
+}
+
+static inline int sock_send_bvec(struct nbd_device *nbd, struct bio_vec *bvec,
+ int flags)
+{
+ int result;
+ void *kaddr = kmap(bvec->bv_page);
+ result = sock_xmit(nbd, 1, kaddr + bvec->bv_offset,
+ bvec->bv_len, flags);
+ kunmap(bvec->bv_page);
+ return result;
+}
+
+/* always call with the tx_lock held */
+static int nbd_send_req(struct nbd_device *nbd, struct request *req)
+{
+ int result, flags;
+ struct nbd_request request;
+ unsigned long size = blk_rq_bytes(req);
+ u32 type;
+
+ if (req->cmd_type == REQ_TYPE_DRV_PRIV)
+ type = NBD_CMD_DISC;
+ else if (req->cmd_flags & REQ_DISCARD)
+ type = NBD_CMD_TRIM;
+ else if (req->cmd_flags & REQ_FLUSH)
+ type = NBD_CMD_FLUSH;
+ else if (rq_data_dir(req) == WRITE)
+ type = NBD_CMD_WRITE;
+ else
+ type = NBD_CMD_READ;
+
+ memset(&request, 0, sizeof(request));
+ request.magic = htonl(NBD_REQUEST_MAGIC);
+ request.type = htonl(type);
+ if (type != NBD_CMD_FLUSH && type != NBD_CMD_DISC) {
+ request.from = cpu_to_be64((u64)blk_rq_pos(req) << 9);
+ request.len = htonl(size);
+ }
+ memcpy(request.handle, &req, sizeof(req));
+
+ dev_dbg(nbd_to_dev(nbd), "request %p: sending control (%s@%llu,%uB)\n",
+ req, nbdcmd_to_ascii(type),
+ (unsigned long long)blk_rq_pos(req) << 9, blk_rq_bytes(req));
+ result = sock_xmit(nbd, 1, &request, sizeof(request),
+ (type == NBD_CMD_WRITE) ? MSG_MORE : 0);
+ if (result <= 0) {
+ dev_err(disk_to_dev(nbd->disk),
+ "Send control failed (result %d)\n", result);
+ return -EIO;
+ }
+
+ if (type == NBD_CMD_WRITE) {
+ struct req_iterator iter;
+ struct bio_vec bvec;
+ /*
+ * we are really probing at internals to determine
+ * whether to set MSG_MORE or not...
+ */
+ rq_for_each_segment(bvec, req, iter) {
+ flags = 0;
+ if (!rq_iter_last(bvec, iter))
+ flags = MSG_MORE;
+ dev_dbg(nbd_to_dev(nbd), "request %p: sending %d bytes data\n",
+ req, bvec.bv_len);
+ result = sock_send_bvec(nbd, &bvec, flags);
+ if (result <= 0) {
+ dev_err(disk_to_dev(nbd->disk),
+ "Send data failed (result %d)\n",
+ result);
+ return -EIO;
+ }
+ }
+ }
+ return 0;
+}
+
+static struct request *nbd_find_request(struct nbd_device *nbd,
+ struct request *xreq)
+{
+ struct request *req, *tmp;
+ int err;
+
+ err = wait_event_interruptible(nbd->active_wq, nbd->active_req != xreq);
+ if (unlikely(err))
+ return ERR_PTR(err);
+
+ spin_lock(&nbd->queue_lock);
+ list_for_each_entry_safe(req, tmp, &nbd->queue_head, queuelist) {
+ if (req != xreq)
+ continue;
+ list_del_init(&req->queuelist);
+ spin_unlock(&nbd->queue_lock);
+ return req;
+ }
+ spin_unlock(&nbd->queue_lock);
+
+ return ERR_PTR(-ENOENT);
+}
+
+static inline int sock_recv_bvec(struct nbd_device *nbd, struct bio_vec *bvec)
+{
+ int result;
+ void *kaddr = kmap(bvec->bv_page);
+ result = sock_xmit(nbd, 0, kaddr + bvec->bv_offset, bvec->bv_len,
+ MSG_WAITALL);
+ kunmap(bvec->bv_page);
+ return result;
+}
+
+/* NULL returned = something went wrong, inform userspace */
+static struct request *nbd_read_stat(struct nbd_device *nbd)
+{
+ int result;
+ struct nbd_reply reply;
+ struct request *req;
+
+ reply.magic = 0;
+ result = sock_xmit(nbd, 0, &reply, sizeof(reply), MSG_WAITALL);
+ if (result <= 0) {
+ dev_err(disk_to_dev(nbd->disk),
+ "Receive control failed (result %d)\n", result);
+ return ERR_PTR(result);
+ }
+
+ if (ntohl(reply.magic) != NBD_REPLY_MAGIC) {
+ dev_err(disk_to_dev(nbd->disk), "Wrong magic (0x%lx)\n",
+ (unsigned long)ntohl(reply.magic));
+ return ERR_PTR(-EPROTO);
+ }
+
+ req = nbd_find_request(nbd, *(struct request **)reply.handle);
+ if (IS_ERR(req)) {
+ result = PTR_ERR(req);
+ if (result != -ENOENT)
+ return ERR_PTR(result);
+
+ dev_err(disk_to_dev(nbd->disk), "Unexpected reply (%p)\n",
+ reply.handle);
+ return ERR_PTR(-EBADR);
+ }
+
+ if (ntohl(reply.error)) {
+ dev_err(disk_to_dev(nbd->disk), "Other side returned error (%d)\n",
+ ntohl(reply.error));
+ req->errors++;
+ return req;
+ }
+
+ dev_dbg(nbd_to_dev(nbd), "request %p: got reply\n", req);
+ if (rq_data_dir(req) != WRITE) {
+ struct req_iterator iter;
+ struct bio_vec bvec;
+
+ rq_for_each_segment(bvec, req, iter) {
+ result = sock_recv_bvec(nbd, &bvec);
+ if (result <= 0) {
+ dev_err(disk_to_dev(nbd->disk), "Receive data failed (result %d)\n",
+ result);
+ req->errors++;
+ return req;
+ }
+ dev_dbg(nbd_to_dev(nbd), "request %p: got %d bytes data\n",
+ req, bvec.bv_len);
+ }
+ }
+ return req;
+}
+
+static ssize_t pid_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ struct gendisk *disk = dev_to_disk(dev);
+ struct nbd_device *nbd = (struct nbd_device *)disk->private_data;
+
+ return sprintf(buf, "%d\n", task_pid_nr(nbd->task_recv));
+}
+
+static struct device_attribute pid_attr = {
+ .attr = { .name = "pid", .mode = S_IRUGO},
+ .show = pid_show,
+};
+
+static int nbd_thread_recv(struct nbd_device *nbd)
+{
+ struct request *req;
+ int ret;
+ unsigned long flags;
+
+ BUG_ON(nbd->magic != NBD_MAGIC);
+
+ sk_set_memalloc(nbd->sock->sk);
+
+ spin_lock_irqsave(&nbd->tasks_lock, flags);
+ nbd->task_recv = current;
+ spin_unlock_irqrestore(&nbd->tasks_lock, flags);
+
+ ret = device_create_file(disk_to_dev(nbd->disk), &pid_attr);
+ if (ret) {
+ dev_err(disk_to_dev(nbd->disk), "device_create_file failed!\n");
+
+ spin_lock_irqsave(&nbd->tasks_lock, flags);
+ nbd->task_recv = NULL;
+ spin_unlock_irqrestore(&nbd->tasks_lock, flags);
+
+ return ret;
+ }
+
+ while (1) {
+ req = nbd_read_stat(nbd);
+ if (IS_ERR(req)) {
+ ret = PTR_ERR(req);
+ break;
+ }
+
+ nbd_end_request(nbd, req);
+ }
+
+ device_remove_file(disk_to_dev(nbd->disk), &pid_attr);
+
+ spin_lock_irqsave(&nbd->tasks_lock, flags);
+ nbd->task_recv = NULL;
+ spin_unlock_irqrestore(&nbd->tasks_lock, flags);
+
+ if (signal_pending(current)) {
+ siginfo_t info;
+
+ ret = dequeue_signal_lock(current, &current->blocked, &info);
+ dev_warn(nbd_to_dev(nbd), "pid %d, %s, got signal %d\n",
+ task_pid_nr(current), current->comm, ret);
+ mutex_lock(&nbd->tx_lock);
+ sock_shutdown(nbd);
+ mutex_unlock(&nbd->tx_lock);
+ ret = -ETIMEDOUT;
+ }
+
+ return ret;
+}
+
+static void nbd_clear_que(struct nbd_device *nbd)
+{
+ struct request *req;
+
+ BUG_ON(nbd->magic != NBD_MAGIC);
+
+ /*
+ * Because we have set nbd->sock to NULL under the tx_lock, all
+ * modifications to the list must have completed by now. For
+ * the same reason, the active_req must be NULL.
+ *
+ * As a consequence, we don't need to take the spin lock while
+ * purging the list here.
+ */
+ BUG_ON(nbd->sock);
+ BUG_ON(nbd->active_req);
+
+ while (!list_empty(&nbd->queue_head)) {
+ req = list_entry(nbd->queue_head.next, struct request,
+ queuelist);
+ list_del_init(&req->queuelist);
+ req->errors++;
+ nbd_end_request(nbd, req);
+ }
+
+ while (!list_empty(&nbd->waiting_queue)) {
+ req = list_entry(nbd->waiting_queue.next, struct request,
+ queuelist);
+ list_del_init(&req->queuelist);
+ req->errors++;
+ nbd_end_request(nbd, req);
+ }
+ dev_dbg(disk_to_dev(nbd->disk), "queue cleared\n");
+}
+
+
+static void nbd_handle_req(struct nbd_device *nbd, struct request *req)
+{
+ if (req->cmd_type != REQ_TYPE_FS)
+ goto error_out;
+
+ if (rq_data_dir(req) == WRITE &&
+ (nbd->flags & NBD_FLAG_READ_ONLY)) {
+ dev_err(disk_to_dev(nbd->disk),
+ "Write on read-only\n");
+ goto error_out;
+ }
+
+ req->errors = 0;
+
+ mutex_lock(&nbd->tx_lock);
+ if (unlikely(!nbd->sock)) {
+ mutex_unlock(&nbd->tx_lock);
+ dev_err(disk_to_dev(nbd->disk),
+ "Attempted send on closed socket\n");
+ goto error_out;
+ }
+
+ nbd->active_req = req;
+
+ if (nbd->xmit_timeout && list_empty_careful(&nbd->queue_head))
+ mod_timer(&nbd->timeout_timer, jiffies + nbd->xmit_timeout);
+
+ if (nbd_send_req(nbd, req) != 0) {
+ dev_err(disk_to_dev(nbd->disk), "Request send failed\n");
+ req->errors++;
+ nbd_end_request(nbd, req);
+ } else {
+ spin_lock(&nbd->queue_lock);
+ list_add_tail(&req->queuelist, &nbd->queue_head);
+ spin_unlock(&nbd->queue_lock);
+ }
+
+ nbd->active_req = NULL;
+ mutex_unlock(&nbd->tx_lock);
+ wake_up_all(&nbd->active_wq);
+
+ return;
+
+error_out:
+ req->errors++;
+ nbd_end_request(nbd, req);
+}
+
+static int nbd_thread_send(void *data)
+{
+ struct nbd_device *nbd = data;
+ struct request *req;
+ unsigned long flags;
+
+ spin_lock_irqsave(&nbd->tasks_lock, flags);
+ nbd->task_send = current;
+ spin_unlock_irqrestore(&nbd->tasks_lock, flags);
+
+ set_user_nice(current, MIN_NICE);
+ while (!kthread_should_stop() || !list_empty(&nbd->waiting_queue)) {
+ /* wait for something to do */
+ wait_event_interruptible(nbd->waiting_wq,
+ kthread_should_stop() ||
+ !list_empty(&nbd->waiting_queue));
+
+ if (signal_pending(current)) {
+ siginfo_t info;
+ int ret;
+
+ ret = dequeue_signal_lock(current, &current->blocked,
+ &info);
+ dev_warn(nbd_to_dev(nbd), "pid %d, %s, got signal %d\n",
+ task_pid_nr(current), current->comm, ret);
+ mutex_lock(&nbd->tx_lock);
+ sock_shutdown(nbd);
+ mutex_unlock(&nbd->tx_lock);
+ break;
+ }
+
+ /* extract request */
+ if (list_empty(&nbd->waiting_queue))
+ continue;
+
+ spin_lock_irq(&nbd->queue_lock);
+ req = list_entry(nbd->waiting_queue.next, struct request,
+ queuelist);
+ list_del_init(&req->queuelist);
+ spin_unlock_irq(&nbd->queue_lock);
+
+ /* handle request */
+ nbd_handle_req(nbd, req);
+ }
+
+ spin_lock_irqsave(&nbd->tasks_lock, flags);
+ nbd->task_send = NULL;
+ spin_unlock_irqrestore(&nbd->tasks_lock, flags);
+
+ /* Clear maybe pending signals */
+ if (signal_pending(current)) {
+ siginfo_t info;
+ dequeue_signal_lock(current, &current->blocked, &info);
+ }
+
+ return 0;
+}
+
+/*
+ * We always wait for result of write, for now. It would be nice to make it optional
+ * in future
+ * if ((rq_data_dir(req) == WRITE) && (nbd->flags & NBD_WRITE_NOCHK))
+ * { printk( "Warning: Ignoring result!\n"); nbd_end_request( req ); }
+ */
+
+static void nbd_request_handler(struct request_queue *q)
+ __releases(q->queue_lock) __acquires(q->queue_lock)
+{
+ struct request *req;
+
+ while ((req = blk_fetch_request(q)) != NULL) {
+ struct nbd_device *nbd;
+
+ spin_unlock_irq(q->queue_lock);
+
+ nbd = req->rq_disk->private_data;
+
+ BUG_ON(nbd->magic != NBD_MAGIC);
+
+ dev_dbg(nbd_to_dev(nbd), "request %p: dequeued (flags=%x)\n",
+ req, req->cmd_type);
+
+ if (unlikely(!nbd->sock)) {
+ dev_err(disk_to_dev(nbd->disk),
+ "Attempted send on closed socket\n");
+ req->errors++;
+ nbd_end_request(nbd, req);
+ spin_lock_irq(q->queue_lock);
+ continue;
+ }
+
+ spin_lock_irq(&nbd->queue_lock);
+ list_add_tail(&req->queuelist, &nbd->waiting_queue);
+ spin_unlock_irq(&nbd->queue_lock);
+
+ wake_up(&nbd->waiting_wq);
+
+ spin_lock_irq(q->queue_lock);
+ }
+}
+
+static int nbd_dev_dbg_init(struct nbd_device *nbd);
+static void nbd_dev_dbg_close(struct nbd_device *nbd);
+
+/* Must be called with tx_lock held */
+
+static int __nbd_ioctl(struct block_device *bdev, struct nbd_device *nbd,
+ unsigned int cmd, unsigned long arg)
+{
+ switch (cmd) {
+ case NBD_DISCONNECT: {
+ struct request sreq;
+
+ dev_info(disk_to_dev(nbd->disk), "NBD_DISCONNECT\n");
+ if (!nbd->sock)
+ return -EINVAL;
+
+ mutex_unlock(&nbd->tx_lock);
+ fsync_bdev(bdev);
+ mutex_lock(&nbd->tx_lock);
+ blk_rq_init(NULL, &sreq);
+ sreq.cmd_type = REQ_TYPE_DRV_PRIV;
+
+ /* Check again after getting mutex back. */
+ if (!nbd->sock)
+ return -EINVAL;
+
+ nbd->disconnect = true;
+
+ nbd_send_req(nbd, &sreq);
+ return 0;
+ }
+
+ case NBD_CLEAR_SOCK: {
+ struct socket *sock = nbd->sock;
+ nbd->sock = NULL;
+ nbd_clear_que(nbd);
+ BUG_ON(!list_empty(&nbd->queue_head));
+ BUG_ON(!list_empty(&nbd->waiting_queue));
+ kill_bdev(bdev);
+ if (sock)
+ sockfd_put(sock);
+ return 0;
+ }
+
+ case NBD_SET_SOCK: {
+ struct socket *sock;
+ int err;
+ if (nbd->sock)
+ return -EBUSY;
+ sock = sockfd_lookup(arg, &err);
+ if (sock) {
+ nbd->sock = sock;
+ if (max_part > 0)
+ bdev->bd_invalidated = 1;
+ nbd->disconnect = false; /* we're connected now */
+ return 0;
+ }
+ return -EINVAL;
+ }
+
+ case NBD_SET_BLKSIZE:
+ nbd->blksize = arg;
+ nbd->bytesize &= ~(nbd->blksize-1);
+ bdev->bd_inode->i_size = nbd->bytesize;
+ set_blocksize(bdev, nbd->blksize);
+ set_capacity(nbd->disk, nbd->bytesize >> 9);
+ return 0;
+
+ case NBD_SET_SIZE:
+ nbd->bytesize = arg & ~(nbd->blksize-1);
+ bdev->bd_inode->i_size = nbd->bytesize;
+ set_blocksize(bdev, nbd->blksize);
+ set_capacity(nbd->disk, nbd->bytesize >> 9);
+ return 0;
+
+ case NBD_SET_TIMEOUT:
+ nbd->xmit_timeout = arg * HZ;
+ if (arg)
+ mod_timer(&nbd->timeout_timer,
+ jiffies + nbd->xmit_timeout);
+ else
+ del_timer_sync(&nbd->timeout_timer);
+
+ return 0;
+
+ case NBD_SET_FLAGS:
+ nbd->flags = arg;
+ return 0;
+
+ case NBD_SET_SIZE_BLOCKS:
+ nbd->bytesize = ((u64) arg) * nbd->blksize;
+ bdev->bd_inode->i_size = nbd->bytesize;
+ set_blocksize(bdev, nbd->blksize);
+ set_capacity(nbd->disk, nbd->bytesize >> 9);
+ return 0;
+
+ case NBD_DO_IT: {
+ struct task_struct *thread;
+ struct socket *sock;
+ int error;
+
+ if (nbd->task_recv)
+ return -EBUSY;
+ if (!nbd->sock)
+ return -EINVAL;
+
+ mutex_unlock(&nbd->tx_lock);
+
+ if (nbd->flags & NBD_FLAG_READ_ONLY)
+ set_device_ro(bdev, true);
+ if (nbd->flags & NBD_FLAG_SEND_TRIM)
+ queue_flag_set_unlocked(QUEUE_FLAG_DISCARD,
+ nbd->disk->queue);
+ if (nbd->flags & NBD_FLAG_SEND_FLUSH)
+ blk_queue_flush(nbd->disk->queue, REQ_FLUSH);
+ else
+ blk_queue_flush(nbd->disk->queue, 0);
+
+ thread = kthread_run(nbd_thread_send, nbd, "%s",
+ nbd_name(nbd));
+ if (IS_ERR(thread)) {
+ mutex_lock(&nbd->tx_lock);
+ return PTR_ERR(thread);
+ }
+
+ nbd_dev_dbg_init(nbd);
+ error = nbd_thread_recv(nbd);
+ nbd_dev_dbg_close(nbd);
+ kthread_stop(thread);
+
+ mutex_lock(&nbd->tx_lock);
+
+ sock_shutdown(nbd);
+ sock = nbd->sock;
+ nbd->sock = NULL;
+ nbd_clear_que(nbd);
+ kill_bdev(bdev);
+ queue_flag_clear_unlocked(QUEUE_FLAG_DISCARD, nbd->disk->queue);
+ set_device_ro(bdev, false);
+ if (sock)
+ sockfd_put(sock);
+ nbd->flags = 0;
+ nbd->bytesize = 0;
+ bdev->bd_inode->i_size = 0;
+ set_capacity(nbd->disk, 0);
+ if (max_part > 0)
+ blkdev_reread_part(bdev);
+ if (nbd->disconnect) /* user requested, ignore socket errors */
+ return 0;
+ return error;
+ }
+
+ case NBD_CLEAR_QUE:
+ /*
+ * This is for compatibility only. The queue is always cleared
+ * by NBD_DO_IT or NBD_CLEAR_SOCK.
+ */
+ return 0;
+
+ case NBD_PRINT_DEBUG:
+ dev_info(disk_to_dev(nbd->disk),
+ "next = %p, prev = %p, head = %p\n",
+ nbd->queue_head.next, nbd->queue_head.prev,
+ &nbd->queue_head);
+ return 0;
+ }
+ return -ENOTTY;
+}
+
+static int nbd_ioctl(struct block_device *bdev, fmode_t mode,
+ unsigned int cmd, unsigned long arg)
+{
+ struct nbd_device *nbd = bdev->bd_disk->private_data;
+ int error;
+
+ if (!capable(CAP_SYS_ADMIN))
+ return -EPERM;
+
+ BUG_ON(nbd->magic != NBD_MAGIC);
+
+ mutex_lock(&nbd->tx_lock);
+ error = __nbd_ioctl(bdev, nbd, cmd, arg);
+ mutex_unlock(&nbd->tx_lock);
+
+ return error;
+}
+
+static const struct block_device_operations nbd_fops =
+{
+ .owner = THIS_MODULE,
+ .ioctl = nbd_ioctl,
+};
+
+#if IS_ENABLED(CONFIG_DEBUG_FS)
+
+static int nbd_dbg_tasks_show(struct seq_file *s, void *unused)
+{
+ struct nbd_device *nbd = s->private;
+
+ if (nbd->task_recv)
+ seq_printf(s, "recv: %d\n", task_pid_nr(nbd->task_recv));
+ if (nbd->task_send)
+ seq_printf(s, "send: %d\n", task_pid_nr(nbd->task_send));
+
+ return 0;
+}
+
+static int nbd_dbg_tasks_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, nbd_dbg_tasks_show, inode->i_private);
+}
+
+static const struct file_operations nbd_dbg_tasks_ops = {
+ .open = nbd_dbg_tasks_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+
+static int nbd_dbg_flags_show(struct seq_file *s, void *unused)
+{
+ struct nbd_device *nbd = s->private;
+ u32 flags = nbd->flags;
+
+ seq_printf(s, "Hex: 0x%08x\n\n", flags);
+
+ seq_puts(s, "Known flags:\n");
+
+ if (flags & NBD_FLAG_HAS_FLAGS)
+ seq_puts(s, "NBD_FLAG_HAS_FLAGS\n");
+ if (flags & NBD_FLAG_READ_ONLY)
+ seq_puts(s, "NBD_FLAG_READ_ONLY\n");
+ if (flags & NBD_FLAG_SEND_FLUSH)
+ seq_puts(s, "NBD_FLAG_SEND_FLUSH\n");
+ if (flags & NBD_FLAG_SEND_TRIM)
+ seq_puts(s, "NBD_FLAG_SEND_TRIM\n");
+
+ return 0;
+}
+
+static int nbd_dbg_flags_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, nbd_dbg_flags_show, inode->i_private);
+}
+
+static const struct file_operations nbd_dbg_flags_ops = {
+ .open = nbd_dbg_flags_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+
+static int nbd_dev_dbg_init(struct nbd_device *nbd)
+{
+ struct dentry *dir;
+ struct dentry *f;
+
+ dir = debugfs_create_dir(nbd_name(nbd), nbd_dbg_dir);
+ if (IS_ERR_OR_NULL(dir)) {
+ dev_err(nbd_to_dev(nbd), "Failed to create debugfs dir for '%s' (%ld)\n",
+ nbd_name(nbd), PTR_ERR(dir));
+ return PTR_ERR(dir);
+ }
+ nbd->dbg_dir = dir;
+
+ f = debugfs_create_file("tasks", 0444, dir, nbd, &nbd_dbg_tasks_ops);
+ if (IS_ERR_OR_NULL(f)) {
+ dev_err(nbd_to_dev(nbd), "Failed to create debugfs file 'tasks', %ld\n",
+ PTR_ERR(f));
+ return PTR_ERR(f);
+ }
+
+ f = debugfs_create_u64("size_bytes", 0444, dir, &nbd->bytesize);
+ if (IS_ERR_OR_NULL(f)) {
+ dev_err(nbd_to_dev(nbd), "Failed to create debugfs file 'size_bytes', %ld\n",
+ PTR_ERR(f));
+ return PTR_ERR(f);
+ }
+
+ f = debugfs_create_u32("timeout", 0444, dir, &nbd->xmit_timeout);
+ if (IS_ERR_OR_NULL(f)) {
+ dev_err(nbd_to_dev(nbd), "Failed to create debugfs file 'timeout', %ld\n",
+ PTR_ERR(f));
+ return PTR_ERR(f);
+ }
+
+ f = debugfs_create_u32("blocksize", 0444, dir, &nbd->blksize);
+ if (IS_ERR_OR_NULL(f)) {
+ dev_err(nbd_to_dev(nbd), "Failed to create debugfs file 'blocksize', %ld\n",
+ PTR_ERR(f));
+ return PTR_ERR(f);
+ }
+
+ f = debugfs_create_file("flags", 0444, dir, &nbd, &nbd_dbg_flags_ops);
+ if (IS_ERR_OR_NULL(f)) {
+ dev_err(nbd_to_dev(nbd), "Failed to create debugfs file 'flags', %ld\n",
+ PTR_ERR(f));
+ return PTR_ERR(f);
+ }
+
+ return 0;
+}
+
+static void nbd_dev_dbg_close(struct nbd_device *nbd)
+{
+ debugfs_remove_recursive(nbd->dbg_dir);
+}
+
+static int nbd_dbg_init(void)
+{
+ struct dentry *dbg_dir;
+
+ dbg_dir = debugfs_create_dir("nbd", NULL);
+ if (IS_ERR(dbg_dir))
+ return PTR_ERR(dbg_dir);
+
+ nbd_dbg_dir = dbg_dir;
+
+ return 0;
+}
+
+static void nbd_dbg_close(void)
+{
+ debugfs_remove_recursive(nbd_dbg_dir);
+}
+
+#else /* IS_ENABLED(CONFIG_DEBUG_FS) */
+
+static int nbd_dev_dbg_init(struct nbd_device *nbd)
+{
+ return 0;
+}
+
+static void nbd_dev_dbg_close(struct nbd_device *nbd)
+{
+}
+
+static int nbd_dbg_init(void)
+{
+ return 0;
+}
+
+static void nbd_dbg_close(void)
+{
+}
+
+#endif
+
+/*
+ * And here should be modules and kernel interface
+ * (Just smiley confuses emacs :-)
+ */
+
+static int __init nbd_init(void)
+{
+ int err = -ENOMEM;
+ int i;
+ int part_shift;
+
+ BUILD_BUG_ON(sizeof(struct nbd_request) != 28);
+
+ if (max_part < 0) {
+ printk(KERN_ERR "nbd: max_part must be >= 0\n");
+ return -EINVAL;
+ }
+
+ part_shift = 0;
+ if (max_part > 0) {
+ part_shift = fls(max_part);
+
+ /*
+ * Adjust max_part according to part_shift as it is exported
+ * to user space so that user can know the max number of
+ * partition kernel should be able to manage.
+ *
+ * Note that -1 is required because partition 0 is reserved
+ * for the whole disk.
+ */
+ max_part = (1UL << part_shift) - 1;
+ }
+
+ if ((1UL << part_shift) > DISK_MAX_PARTS)
+ return -EINVAL;
+
+ if (nbds_max > 1UL << (MINORBITS - part_shift))
+ return -EINVAL;
+
+ nbd_dev = kcalloc(nbds_max, sizeof(*nbd_dev), GFP_KERNEL);
+ if (!nbd_dev)
+ return -ENOMEM;
+
+ for (i = 0; i < nbds_max; i++) {
+ struct gendisk *disk = alloc_disk(1 << part_shift);
+ if (!disk)
+ goto out;
+ nbd_dev[i].disk = disk;
+ /*
+ * The new linux 2.5 block layer implementation requires
+ * every gendisk to have its very own request_queue struct.
+ * These structs are big so we dynamically allocate them.
+ */
+ disk->queue = blk_init_queue(nbd_request_handler, &nbd_lock);
+ if (!disk->queue) {
+ put_disk(disk);
+ goto out;
+ }
+ /*
+ * Tell the block layer that we are not a rotational device
+ */
+ queue_flag_set_unlocked(QUEUE_FLAG_NONROT, disk->queue);
+ queue_flag_clear_unlocked(QUEUE_FLAG_ADD_RANDOM, disk->queue);
+ disk->queue->limits.discard_granularity = 512;
+ blk_queue_max_discard_sectors(disk->queue, UINT_MAX);
+ disk->queue->limits.discard_zeroes_data = 0;
+ blk_queue_max_hw_sectors(disk->queue, 65536);
+ disk->queue->limits.max_sectors = 256;
+ }
+
+ if (register_blkdev(NBD_MAJOR, "nbd")) {
+ err = -EIO;
+ goto out;
+ }
+
+ printk(KERN_INFO "nbd: registered device at major %d\n", NBD_MAJOR);
+
+ nbd_dbg_init();
+
+ for (i = 0; i < nbds_max; i++) {
+ struct gendisk *disk = nbd_dev[i].disk;
+ nbd_dev[i].magic = NBD_MAGIC;
+ INIT_LIST_HEAD(&nbd_dev[i].waiting_queue);
+ spin_lock_init(&nbd_dev[i].queue_lock);
+ spin_lock_init(&nbd_dev[i].tasks_lock);
+ INIT_LIST_HEAD(&nbd_dev[i].queue_head);
+ mutex_init(&nbd_dev[i].tx_lock);
+ init_timer(&nbd_dev[i].timeout_timer);
+ nbd_dev[i].timeout_timer.function = nbd_xmit_timeout;
+ nbd_dev[i].timeout_timer.data = (unsigned long)&nbd_dev[i];
+ init_waitqueue_head(&nbd_dev[i].active_wq);
+ init_waitqueue_head(&nbd_dev[i].waiting_wq);
+ nbd_dev[i].blksize = 1024;
+ nbd_dev[i].bytesize = 0;
+ disk->major = NBD_MAJOR;
+ disk->first_minor = i << part_shift;
+ disk->fops = &nbd_fops;
+ disk->private_data = &nbd_dev[i];
+ sprintf(disk->disk_name, "nbd%d", i);
+ set_capacity(disk, 0);
+ add_disk(disk);
+ }
+
+ return 0;
+out:
+ while (i--) {
+ blk_cleanup_queue(nbd_dev[i].disk->queue);
+ put_disk(nbd_dev[i].disk);
+ }
+ kfree(nbd_dev);
+ return err;
+}
+
+static void __exit nbd_cleanup(void)
+{
+ int i;
+
+ nbd_dbg_close();
+
+ for (i = 0; i < nbds_max; i++) {
+ struct gendisk *disk = nbd_dev[i].disk;
+ nbd_dev[i].magic = 0;
+ if (disk) {
+ del_gendisk(disk);
+ blk_cleanup_queue(disk->queue);
+ put_disk(disk);
+ }
+ }
+ unregister_blkdev(NBD_MAJOR, "nbd");
+ kfree(nbd_dev);
+ printk(KERN_INFO "nbd: unregistered device at major %d\n", NBD_MAJOR);
+}
+
+module_init(nbd_init);
+module_exit(nbd_cleanup);
+
+MODULE_DESCRIPTION("Network Block Device");
+MODULE_LICENSE("GPL");
+
+module_param(nbds_max, int, 0444);
+MODULE_PARM_DESC(nbds_max, "number of network block devices to initialize (default: 16)");
+module_param(max_part, int, 0444);
+MODULE_PARM_DESC(max_part, "number of partitions per device (default: 0)");
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.ko b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.ko
new file mode 100644
index 00000000..4829b5b6
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.ko
Binary files differ
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.mod.c b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.mod.c
new file mode 100644
index 00000000..8e9bffe6
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.mod.c
@@ -0,0 +1,105 @@
+#include <linux/module.h>
+#include <linux/vermagic.h>
+#include <linux/compiler.h>
+
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+
+__visible struct module __this_module
+__attribute__((section(".gnu.linkonce.this_module"))) = {
+ .name = KBUILD_MODNAME,
+ .init = init_module,
+#ifdef CONFIG_MODULE_UNLOAD
+ .exit = cleanup_module,
+#endif
+ .arch = MODULE_ARCH_INIT,
+};
+
+static const struct modversion_info ____versions[]
+__used
+__attribute__((section("__versions"))) = {
+ { 0x6455f54, __VMLINUX_SYMBOL_STR(module_layout) },
+ { 0x50c7d0f8, __VMLINUX_SYMBOL_STR(single_release) },
+ { 0x950ca83f, __VMLINUX_SYMBOL_STR(seq_read) },
+ { 0xef9b791f, __VMLINUX_SYMBOL_STR(seq_lseek) },
+ { 0x5538af9, __VMLINUX_SYMBOL_STR(param_ops_int) },
+ { 0xb5a459dc, __VMLINUX_SYMBOL_STR(unregister_blkdev) },
+ { 0x1b9e8318, __VMLINUX_SYMBOL_STR(del_gendisk) },
+ { 0x37a0cba, __VMLINUX_SYMBOL_STR(kfree) },
+ { 0x981936b7, __VMLINUX_SYMBOL_STR(blk_cleanup_queue) },
+ { 0x73107d7d, __VMLINUX_SYMBOL_STR(add_disk) },
+ { 0x9e88526, __VMLINUX_SYMBOL_STR(__init_waitqueue_head) },
+ { 0x9580deb, __VMLINUX_SYMBOL_STR(init_timer_key) },
+ { 0x69436492, __VMLINUX_SYMBOL_STR(__mutex_init) },
+ { 0x71a50dbc, __VMLINUX_SYMBOL_STR(register_blkdev) },
+ { 0x1ecdaab, __VMLINUX_SYMBOL_STR(blk_queue_max_hw_sectors) },
+ { 0x1a67801d, __VMLINUX_SYMBOL_STR(blk_queue_max_discard_sectors) },
+ { 0x86a65424, __VMLINUX_SYMBOL_STR(put_disk) },
+ { 0x89897b2, __VMLINUX_SYMBOL_STR(blk_init_queue) },
+ { 0xb1f77288, __VMLINUX_SYMBOL_STR(alloc_disk) },
+ { 0xd2b09ce5, __VMLINUX_SYMBOL_STR(__kmalloc) },
+ { 0x27e1a049, __VMLINUX_SYMBOL_STR(printk) },
+ { 0xc6cbbc89, __VMLINUX_SYMBOL_STR(capable) },
+ { 0x98402f5a, __VMLINUX_SYMBOL_STR(blkdev_reread_part) },
+ { 0xee59790e, __VMLINUX_SYMBOL_STR(set_device_ro) },
+ { 0xae71b343, __VMLINUX_SYMBOL_STR(kthread_stop) },
+ { 0xfd67e92, __VMLINUX_SYMBOL_STR(debugfs_remove_recursive) },
+ { 0xae5350d, __VMLINUX_SYMBOL_STR(device_remove_file) },
+ { 0xb43b11d2, __VMLINUX_SYMBOL_STR(device_create_file) },
+ { 0xbe49dab0, __VMLINUX_SYMBOL_STR(sk_set_memalloc) },
+ { 0x88c48e5a, __VMLINUX_SYMBOL_STR(debugfs_create_u32) },
+ { 0xab6db40b, __VMLINUX_SYMBOL_STR(debugfs_create_u64) },
+ { 0x2fff7016, __VMLINUX_SYMBOL_STR(debugfs_create_file) },
+ { 0xe09664fa, __VMLINUX_SYMBOL_STR(debugfs_create_dir) },
+ { 0x6c4cedbe, __VMLINUX_SYMBOL_STR(wake_up_process) },
+ { 0x98f4d672, __VMLINUX_SYMBOL_STR(kthread_create_on_node) },
+ { 0x2141fd89, __VMLINUX_SYMBOL_STR(blk_queue_flush) },
+ { 0x2f43d7d4, __VMLINUX_SYMBOL_STR(blk_rq_init) },
+ { 0xdcd71098, __VMLINUX_SYMBOL_STR(fsync_bdev) },
+ { 0x3ab93be1, __VMLINUX_SYMBOL_STR(set_blocksize) },
+ { 0xd52ba2c0, __VMLINUX_SYMBOL_STR(_dev_info) },
+ { 0x58744728, __VMLINUX_SYMBOL_STR(fput) },
+ { 0x94cc0370, __VMLINUX_SYMBOL_STR(kill_bdev) },
+ { 0x4ee1e3f, __VMLINUX_SYMBOL_STR(sockfd_lookup) },
+ { 0xc6a83d75, __VMLINUX_SYMBOL_STR(blk_fetch_request) },
+ { 0xc58a93cf, __VMLINUX_SYMBOL_STR(dequeue_signal) },
+ { 0xa6bbd805, __VMLINUX_SYMBOL_STR(__wake_up) },
+ { 0xb4f0243e, __VMLINUX_SYMBOL_STR(mutex_unlock) },
+ { 0xc23bebb2, __VMLINUX_SYMBOL_STR(mutex_lock) },
+ { 0xbfe6f427, __VMLINUX_SYMBOL_STR(_raw_spin_unlock_irq) },
+ { 0xe5815f8a, __VMLINUX_SYMBOL_STR(_raw_spin_lock_irq) },
+ { 0xb3f7646e, __VMLINUX_SYMBOL_STR(kthread_should_stop) },
+ { 0xb2fd3ea5, __VMLINUX_SYMBOL_STR(set_user_nice) },
+ { 0xef370d73, __VMLINUX_SYMBOL_STR(__blk_end_request_all) },
+ { 0x1916e38c, __VMLINUX_SYMBOL_STR(_raw_spin_unlock_irqrestore) },
+ { 0x4aafc56b, __VMLINUX_SYMBOL_STR(force_sig) },
+ { 0x680ec266, __VMLINUX_SYMBOL_STR(_raw_spin_lock_irqsave) },
+ { 0x706d051c, __VMLINUX_SYMBOL_STR(del_timer_sync) },
+ { 0xa9064ecb, __VMLINUX_SYMBOL_STR(kernel_sock_shutdown) },
+ { 0xe3fbaa2e, __VMLINUX_SYMBOL_STR(dev_warn) },
+ { 0x2f7f274e, __VMLINUX_SYMBOL_STR(seq_puts) },
+ { 0xd1f58462, __VMLINUX_SYMBOL_STR(seq_printf) },
+ { 0xe1e12065, __VMLINUX_SYMBOL_STR(single_open) },
+ { 0x1e047854, __VMLINUX_SYMBOL_STR(warn_slowpath_fmt) },
+ { 0x2ea92197, __VMLINUX_SYMBOL_STR(__dynamic_dev_dbg) },
+ { 0x30ff9767, __VMLINUX_SYMBOL_STR(dev_err) },
+ { 0x16e5c2a, __VMLINUX_SYMBOL_STR(mod_timer) },
+ { 0x7d11c268, __VMLINUX_SYMBOL_STR(jiffies) },
+ { 0x722e2a29, __VMLINUX_SYMBOL_STR(kernel_recvmsg) },
+ { 0x551b9a0e, __VMLINUX_SYMBOL_STR(kernel_sendmsg) },
+ { 0x6a5fa363, __VMLINUX_SYMBOL_STR(sigprocmask) },
+ { 0x97bb6e16, __VMLINUX_SYMBOL_STR(current_task) },
+ { 0xdb7305a1, __VMLINUX_SYMBOL_STR(__stack_chk_fail) },
+ { 0xf08242c2, __VMLINUX_SYMBOL_STR(finish_wait) },
+ { 0x2207a57f, __VMLINUX_SYMBOL_STR(prepare_to_wait_event) },
+ { 0x1000e51, __VMLINUX_SYMBOL_STR(schedule) },
+ { 0xdae80100, __VMLINUX_SYMBOL_STR(_raw_spin_unlock) },
+ { 0xe259ae9e, __VMLINUX_SYMBOL_STR(_raw_spin_lock) },
+ { 0x91715312, __VMLINUX_SYMBOL_STR(sprintf) },
+ { 0xbdfb6dbb, __VMLINUX_SYMBOL_STR(__fentry__) },
+};
+
+static const char __module_depends[]
+__used
+__attribute__((section(".modinfo"))) =
+"depends=";
+
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.mod.o b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.mod.o
new file mode 100644
index 00000000..988957a2
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.mod.o
Binary files differ
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.o b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.o
new file mode 100644
index 00000000..9da8e4d6
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/binaries/nbd/nbd.o
Binary files differ
diff --git a/builder/dnbd3-qcow2-rootfs/binaries/systemd-preserve-process-marker b/builder/dnbd3-qcow2-rootfs/binaries/systemd-preserve-process-marker
deleted file mode 100755
index 45beb51d..00000000
--- a/builder/dnbd3-qcow2-rootfs/binaries/systemd-preserve-process-marker
+++ /dev/null
Binary files differ
diff --git a/builder/dnbd3-qcow2-rootfs/systemd-preserve-process-marker.c b/builder/dnbd3-qcow2-rootfs/binaries/systemd-preserve-process-marker/systemd-preserve-process-marker.c
index 8f0fc108..8f0fc108 100644
--- a/builder/dnbd3-qcow2-rootfs/systemd-preserve-process-marker.c
+++ b/builder/dnbd3-qcow2-rootfs/binaries/systemd-preserve-process-marker/systemd-preserve-process-marker.c
diff --git a/builder/dnbd3-qcow2-rootfs/hooks/cmdline/mark-root-device.sh b/builder/dnbd3-qcow2-rootfs/hooks/cmdline/mark-root-device.sh
deleted file mode 100755
index b7282521..00000000
--- a/builder/dnbd3-qcow2-rootfs/hooks/cmdline/mark-root-device.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-# set rootok and root as dracut expects them to be set by
-# the module preparing the root filesystem.
-#
-# Once the root filesystem is mounted per dnbd3 and
-# exported as qcow2 per nbd, /dev/root will be a symlink
-# to /dev/nbd0 as this is then our rootfs-device
-rootok=1
-root=block:/dev/root
-
diff --git a/builder/dnbd3-qcow2-rootfs/hooks/cmdline/expand-kcl-ip.sh b/builder/dnbd3-qcow2-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh
index 9f617b09..9f617b09 100755
--- a/builder/dnbd3-qcow2-rootfs/hooks/cmdline/expand-kcl-ip.sh
+++ b/builder/dnbd3-qcow2-rootfs/hooks/cmdline/prepare-network-kcl-parameter.sh
diff --git a/builder/dnbd3-qcow2-rootfs/hooks/cmdline/set-dracut-environment-variables.sh b/builder/dnbd3-qcow2-rootfs/hooks/cmdline/set-dracut-environment-variables.sh
new file mode 100755
index 00000000..6deeb78f
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/hooks/cmdline/set-dracut-environment-variables.sh
@@ -0,0 +1,5 @@
+# set rootok and root as dracut expects them to be set by
+# the module preparing the root filesystem.
+
+rootok=1
+root=block:/dev/devicemapper/root
diff --git a/builder/dnbd3-qcow2-rootfs/hooks/mount/mount-root-device.sh b/builder/dnbd3-qcow2-rootfs/hooks/mount/mount-root-device.sh
index d02f9002..f0d48174 100755
--- a/builder/dnbd3-qcow2-rootfs/hooks/mount/mount-root-device.sh
+++ b/builder/dnbd3-qcow2-rootfs/hooks/mount/mount-root-device.sh
@@ -1,4 +1 @@
-# this rudimentary script just mounts the rootfs device that was symlinked to
-# /dev/root to dracut's $NEWROOT (usually /sysroot).
-
-mount /dev/root $NEWROOT
+mount /dev/mapper/root "$NEWROOT"
diff --git a/builder/dnbd3-qcow2-rootfs/hooks/pre-mount/prepare-root-partition.sh b/builder/dnbd3-qcow2-rootfs/hooks/pre-mount/prepare-root-partition.sh
new file mode 100755
index 00000000..8b5ea48e
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/hooks/pre-mount/prepare-root-partition.sh
@@ -0,0 +1,42 @@
+function create_partition_via_offset() {
+ local device="$1"
+ local nameOrUUID="$2"
+ local loopDevice=$(losetup -f)
+
+ local sectorSize=$(blockdev --getbsz $device)
+ local partitionInfo=$(partx --raw --noheadings --output START,NAME,UUID /dev/nbd0 2>/dev/null| grep $nameOrUUID)
+ local offsetSectors=$(echo $partitionInfo | cut -d' ' -f1)
+ if [ -z "$offsetSectors" ]; then
+ warn "could not find partition with label/uuid '$nameOrUUID' on device $device"
+ return 1
+ fi
+ #warn $(($offsetSectors*512)) # could overflow on 32bit systems
+ local offsetBytes=$(echo $| awk -v x=$offsetSectors -v y=$sectorSize '{print x * y}')
+
+ # test if mount works directly (problem with btrfs device id)
+ #mount -v -o loop,offset=$offsetBytes $device $mountPoint
+ losetup -v -o $offsetBytes $loopDevice $device
+ echo $loopDevice
+}
+
+# Close previous connections to be able to run this script many times.
+dnbd3-client --device /dev/dnbd0 --close && \
+dnbd3-client --host gateway --image archLinux.qcow2 --device /dev/dnbd0 && \
+qemu-nbd --connect=/dev/nbd0 /dev/dnbd0 --read-only && \
+local read_only_partition="$(create_partition_via_offset /dev/nbd0 system)" && \
+# Make read-only partition writable.
+# TODO implement persistent available indicator.
+if true; then
+ local writable_device="/dev/ram0" && \
+ mknod --mode 660 "$writable_device" b 1 1 && \
+ chown root.disk "$writable_device"
+else
+ # Use next free loop device.
+ local writable_device="$(losetup -f)" && \
+ dd if=/dev/zero of=persistent_storage.img bs=1k count=1000 && \
+ losetup "$writable_device" persistent_storage.img
+fi
+local size="$(blockdev --getsz "$read_only_partition")" && \
+local writable_partition_name="root" && \
+dmsetup create "$writable_partition_name" --table \
+ "0 $partion_size snapshot $read_only_partition $writable_device N 1"
diff --git a/builder/dnbd3-qcow2-rootfs/hooks/pre-udev/load-dnbd3-nbd-modules.sh b/builder/dnbd3-qcow2-rootfs/hooks/pre-udev/load-custom-kernel-modules.sh
index 29f9f210..29f9f210 100755
--- a/builder/dnbd3-qcow2-rootfs/hooks/pre-udev/load-dnbd3-nbd-modules.sh
+++ b/builder/dnbd3-qcow2-rootfs/hooks/pre-udev/load-custom-kernel-modules.sh
diff --git a/builder/dnbd3-qcow2-rootfs/hooks/pre-udev/lo-setup.sh b/builder/dnbd3-qcow2-rootfs/hooks/pre-udev/setup-loopback-device.sh
index 9103afd9..9103afd9 100755
--- a/builder/dnbd3-qcow2-rootfs/hooks/pre-udev/lo-setup.sh
+++ b/builder/dnbd3-qcow2-rootfs/hooks/pre-udev/setup-loopback-device.sh
diff --git a/builder/dnbd3-qcow2-rootfs/module-setup.sh b/builder/dnbd3-qcow2-rootfs/module-setup.sh
index 4d8418b3..eb81f347 100755
--- a/builder/dnbd3-qcow2-rootfs/module-setup.sh
+++ b/builder/dnbd3-qcow2-rootfs/module-setup.sh
@@ -1,114 +1,72 @@
#!/bin/bash
+source "$moddir/scripts/utils.sh"
+
check() {
- if ! type -f qemu-nbd >/dev/null; then
- echo "'qemu-nbd' not found on this system, install it to use this module."
- return 1
- fi
- if ! type -f qemu-img >/dev/null; then
- echo "'qemu-img' not found on this system, install it to use this module."
- return 1
- fi
- if ! type -f nbd-client >/dev/null; then
- echo "'nbd-client' not found on this system, install it to use this module."
- return 1
- else
- # check version
- local nbd_client_version="$(nbd-client --help 2>&1 | grep -oE '3\.[0-9]+')"
- local nbd_client_version_major="${nbd_client_version%.*}"
- local nbd_client_version_minor="${nbd_client_version#*.}"
- if [ "${nbd_client_version_major}" -ne 3 ]; then
- # nbd-client probably too old
- echo "The nbd-client major version is not 3, meaning its probably too old."
- return 1
- fi
- if [ "${nbd_client_version_minor}" -gt 11 ]; then
- # TODO check if ver = 3.9 has the same new syntax...
- echo "The nbd-client minor version is greater than 8. A new syntax has been
- introduced starting with 3.10 which we do not support."
- return 1
- fi
- return 0
- fi
+ compile_nbd && \
+ compile_dnbd3 && \
+ compile_systemd_preserve_process_marker &&
}
depends() {
echo base network bash kernel-modules
- return 0
}
installkernel() {
- instmods ext4
+ inst "$moddir/binaries/dnbd3/build/dnbd3.ko" \
+ /usr/lib/modules/current/extra/dnbd3.ko
+ inst "$moddir/binaries/nbd/nbd.ko" \
+ /usr/lib/modules/current/extra/nbd.ko
+
+ instmods ext4 btrfs
}
install() {
- ### BINARIES
- #
- # busybox: cause we want lightweight tools
- inst "$moddir/binaries/busybox" /usr/bin/busybox
- # dnbd3-client: needed to mount remote dnbd3 filesystem.
- inst "$moddir/binaries/dnbd3-client" /usr/bin/dnbd3-client
- # A generic wrapper program to prepend a "@" to each process
- # spawned by given nested programs.
- inst "$moddir/binaries/systemd-preserve-process-marker" \
- /usr/bin/systemd-preserve-process-marker
- # NOTE: These modules are build again Kernel: 3.10.0-229.1.2.el7.x86_64
- # TODO: build these in check() !
- inst "$moddir/kernel_modules/dnbd3/build/dnbd3.ko" \
- /usr/lib/modules/current/extra/dnbd3.ko
- inst "$moddir/kernel_modules/nbd/nbd.ko" \
- /usr/lib/modules/current/extra/nbd.ko
+ # region binaries
- ### HOOKS
- ## HOOK cmdline
- # enables sysrq-shortcuts
- inst_hook cmdline 00 "$moddir/hooks/cmdline/enable-sysrq.sh"
+ inst "$moddir/binaries/dnbd3/build/dnbd3-client" /usr/bin/dnbd3-client
+ inst "$moddir/binaries/systemd-preserve-process-marker/systemd-preserve-process-marker" \
+ /usr/bin/systemd-preserve-process-marker
- # expands the ip parameter in the kernel command line to
- # make it dracut-compatible
- # TODO: dracut still parses this incorrectly...
- inst_hook cmdline 10 "$moddir/hooks/cmdline/expand-kcl-ip.sh"
+ # endregion
- # sets environment variables to tell dracut which device
- # holds the future root filesystem
- inst_hook cmdline 90 "$moddir/hooks/cmdline/mark-root-device.sh"
+ # region hooks
- ## HOOK pre-udev
- # loads the dnbd3/nbd kernel modules
- inst_hook pre-udev 00 "$moddir/hooks/pre-udev/load-dnbd3-nbd-modules.sh"
+ inst_hook cmdline 00 "$moddir/hooks/cmdline/enable-sysrq.sh"
+ inst_hook cmdline 10 "$moddir/hooks/cmdline/prepare-network-kcl-parameter.sh"
+ inst_hook cmdline 90 "$moddir/hooks/cmdline/set-dracut-environment-variables.sh"
- # setup loopback device
- inst_hook pre-udev 00 "$moddir/hooks/pre-udev/lo-setup.sh"
+ inst_hook pre-udev 00 "$moddir/hooks/pre-udev/load-custom-kernel-modules.sh"
+ inst_hook pre-udev 00 "$moddir/hooks/pre-udev/setup-loopback-device.sh"
- ## HOOK pre-mount
# this is the configuration hook where the config stuff is wget'ed
- inst_hook pre-mount 00 "$moddir/hooks/pre-mount/fetch-config.sh"
-
+ # TODO
+ #inst_hook pre-mount 00 "$moddir/hooks/pre-mount/fetch-config.sh"
# this is the main hook where all the magic is triggered
- inst_hook pre-mount 10 "$moddir/hooks/pre-mount/mount-qcow.sh"
+ #inst_hook pre-mount 10 "$moddir/hooks/pre-mount/mount-qcow.sh"
+
+ inst_hook pre-mount 10 "$moddir/hooks/pre-mount/prepare-root-partition.sh"
- ## HOOK mount
- # this simply mounts the prepared /dev/root to $NEWROOT
- # aka "the dracut way"
inst_hook mount 10 "$moddir/hooks/mount/mount-root-device.sh"
- ## HOOK pre-pivot
- # this checks whether we found a partition suitable for
- # the future /tmp and if so, mounts it
inst_hook pre-pivot 00 "$moddir/hooks/pre-pivot/mount-tmp.sh"
+ # endregion
+
+ ## TODO deprecated
### SCRIPTS
# the main magic script containing all the functions needed
# to prepare the qcow2-based root filesystem
- inst "$moddir/scripts/setup-qcow2" /sbin/setup-qcow2
-
+ #inst "$moddir/scripts/setup-qcow2" /sbin/setup-qcow2
+ #
# the script triggered by udev upon finding the right partitions
- inst "$moddir/scripts/prepare-disks" /sbin/prepare-disks
-
+ #inst "$moddir/scripts/prepare-disks" /sbin/prepare-disks
+ ##
# udev rules detecting 44, 45, 46 partitions and running
# 'prepare-disks' to do then format/mount/use them
- inst "$moddir/udev/70-openslx-disk.rules" /etc/udev/rules.d/70-openslx-disk.rules
+ #inst "$moddir/udev/70-openslx-disk.rules" /etc/udev/rules.d/70-openslx-disk.rules
+ ##
# Debugging Uncomment this version if you need some useful debugging tools
# in your iniramfs.
@@ -117,5 +75,4 @@ install() {
chroot switch_root pivot_root qemu-nbd mount nbd-client fdisk mkfs.xfs
# Production:
# inst_multiple insmod qemu-img qemu-nbd
- return 0
}
diff --git a/builder/dnbd3-qcow2-rootfs/scripts/utils.sh b/builder/dnbd3-qcow2-rootfs/scripts/utils.sh
new file mode 100644
index 00000000..62f6509f
--- /dev/null
+++ b/builder/dnbd3-qcow2-rootfs/scripts/utils.sh
@@ -0,0 +1,38 @@
+function build_initramfs_compile_nbd() {
+ # Downloads and compiles nbd.
+ #
+ # Examples:
+ #
+ # >>> build_initramfs_compile_nbd
+ # ...
+ # Provides the following file:
+ # ${_KERNEL_MODULE_DIRECTORY}/nbd/nbd.ko
+ pushd "${_KERNEL_MODULE_DIRECTORY}/nbd" \
+ 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
+ build_initramfs_log 'Compile the nbd kernel module.' && \
+ make 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
+ popd 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT"
+ return $?
+ # TODO make clean
+}
+function build_initramfs_compile_dnbd3() {
+ # Downloads and compiles dnbd3.
+ #
+ # Examples:
+ #
+ # >>> build_initramfs_compile_dnbd3
+ # ...
+ # Provides the following file:
+ # ${_KERNEL_MODULE_DIRECTORY}/dnbd3/build/dnbd3.ko
+ rm --recursive --force ${_KERNEL_MODULE_DIRECTORY}/dnbd3 \
+ 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
+ pushd $_KERNEL_MODULE_DIRECTORY \
+ 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
+ git clone git://git.openslx.org/dnbd3.git \
+ 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
+ cd dnbd3 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
+ ./build.sh 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT" && \
+ popd 1>"$_STANDARD_OUTPUT" 2>"$_ERROR_OUTPUT"
+ return $?
+ # TODO rm -rf build
+}
diff --git a/dev_tools/snippets.sh b/dev_tools/snippets.sh
index 36fc447d..6f4f21cc 100644
--- a/dev_tools/snippets.sh
+++ b/dev_tools/snippets.sh
@@ -55,8 +55,6 @@ fdisk -lu
losetup -o $((1050624*512)) /dev/loop0 /dev/nbd0 -v
mount /dev/loop0 /mnt/
-
-
function create_partition_via_offset() {
local device="$1"
local nameOrUUID="$2"