Summary: When a btrfs subvolume is mounted with -o subvol, and a nested ro subvol/snapshot is created, btrfs send returns with an error. If the top level (id 5) is mounted instead, the send command succeeds.
3.17.0-0.rc4.git0.1.fc22.i686 Btrfs v3.16 This may also be happening on x86_64, and this bug suggests the problem is commit de22c28ef31d9721606ba05965a093a8044be0de https://bugzilla.kernel.org/show_bug.cgi?id=83741 [root@lati ~]# strace btrfs send /root/rpms.ro | btrfs receive /mnt/ execve("/usr/sbin/btrfs", ["btrfs", "send", "/root/rpms.ro"], [/* 26 vars */]) = 0 brk(0) = 0x866a000 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7767000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=84972, ...}) = 0 mmap2(NULL, 84972, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7752000 close(3) = 0 open("/lib/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320\17\0\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=19100, ...}) = 0 mmap2(NULL, 20692, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb774c000 mmap2(0xb7750000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0xb7750000 close(3) = 0 open("/lib/libblkid.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320P\0\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=271276, ...}) = 0 mmap2(NULL, 271832, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7709000 mmap2(0xb7748000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3e000) = 0xb7748000 mmap2(0xb774b000, 1496, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb774b000 close(3) = 0 open("/lib/libm.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0pF\0\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=357384, ...}) = 0 mmap2(NULL, 311456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb76bc000 mmap2(0xb7707000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4b000) = 0xb7707000 close(3) = 0 open("/lib/libz.so.1", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\30\0\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=93444, ...}) = 0 mmap2(NULL, 94464, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb76a4000 mmap2(0xb76ba000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0xb76ba000 close(3) = 0 open("/lib/liblzo2.so.2", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@ \0\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=145984, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb76a3000 mmap2(NULL, 147584, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb767e000 mmap2(0xb76a1000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x22000) = 0xb76a1000 close(3) = 0 open("/lib/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\320O\0\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=142932, ...}) = 0 mmap2(NULL, 115404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7661000 mprotect(0xb7679000, 4096, PROT_NONE) = 0 mmap2(0xb767a000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x18000) = 0xb767a000 mmap2(0xb767c000, 4812, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb767c000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0\200\1\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=2166836, ...}) = 0 mmap2(NULL, 1933020, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7489000 mmap2(0xb765a000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1d0000) = 0xb765a000 mmap2(0xb765f000, 7900, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb765f000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7488000 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7487000 set_thread_area({entry_number:-1, base_addr:0xb7487800, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 (entry_number:6) mprotect(0xb765a000, 12288, PROT_READ) = 0 mprotect(0xb767a000, 4096, PROT_READ) = 0 mprotect(0xb76a1000, 4096, PROT_READ) = 0 mprotect(0xb76ba000, 4096, PROT_READ) = 0 mprotect(0xb7707000, 4096, PROT_READ) = 0 mprotect(0xb7750000, 4096, PROT_READ) = 0 mprotect(0xb7748000, 8192, PROT_READ) = 0 mprotect(0x80c8000, 8192, PROT_READ) = 0 mprotect(0xb7790000, 4096, PROT_READ) = 0 munmap(0xb7752000, 84972) = 0 set_tid_address(0xb7487868) = 3024 set_robust_list(0xb7487870, 12) = 0 rt_sigaction(SIGRTMIN, {0xb7665a50, [], SA_SIGINFO}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0xb7665ad0, [], SA_RESTART|SA_SIGINFO}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 uname({sys="Linux", node="lati.localdomain", ...}) = 0 ioctl(1, SNDCTL_TMR_TIMEBASE or SNDRV_TIMER_IOCTL_NEXT_DEVICE or TCGETS, 0xbfdfdef8) = -1 ENOTTY (Inappropriate ioctl for device) brk(0) = 0x866a000 brk(0x868c000) = 0x868c000 brk(0) = 0x868c000 lstat64("/root", {st_mode=S_IFDIR|0550, st_size=172, ...}) = 0 lstat64("/root/rpms.ro", {st_mode=S_IFDIR|0755, st_size=24834, ...}) = 0 open("/root/rpms.ro", O_RDONLY|O_LARGEFILE|O_NOATIME) = 3 close(3) = 0 open("/proc/self/mounts", O_RDONLY|O_CLOEXEC) = 3 futex(0xb765f114, FUTEX_WAKE_PRIVATE, 2147483647) = 0 fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7766000 read(3, "rootfs / rootfs rw,seclabel 0 0\n"..., 1024) = 1024 read(3, "memory 0 0\ncgroup /sys/fs/cgroup"..., 1024) = 1024 read(3, "s /run/user/42 tmpfs rw,seclabel"..., 1024) = 405 read(3, "", 1024) = 0 close(3) = 0 munmap(0xb7766000, 4096) = 0 write(2, "ERROR: /root/rpms.ro doesn't bel"..., 57ERROR: /root/rpms.ro doesn't belong to btrfs mount point ) = 57 close(0) = 0 exit_group(1) = ? +++ exited with 1 +++ Chris Murphy -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html