29d6d30f5c8aa58b04f40a58442df3bcaae5a1d5 in btrfs_kernel_fixes failed on T
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
ubuntu-kernel-tests |
Fix Released
|
Undecided
|
Po-Hsu Lin | ||
linux (Ubuntu) |
Invalid
|
Undecided
|
Po-Hsu Lin | ||
Trusty |
Fix Released
|
Medium
|
Po-Hsu Lin |
Bug Description
== Justification ==
When doing an incremental send on a Btrfs filesystem, if we delete a directory that has N > 1 hardlinks for the same file and that file has the highest inode number inside the directory contents, an incremental send would send N times rmdir operation against the directory. This made the btrfs receive command fail on the second rmdir instruction, as the target directory didn't exist anymore.
This issue can be triggered with 29d6d30f5c8aa58
test in ubuntu_
The test will fail with:
"ERROR: rmdir o259-6-0 failed. No such file or directory" with Trusty kernel.
Performing full device TRIM (1.00GiB) ...
Turning ON incompat feature 'extref': increased hardlink limit per file to 65536
WARNING! - Btrfs v3.12 IS EXPERIMENTAL
WARNING! - see http://
fs created label (null) on /dev/loop0
nodesize 16384 leafsize 16384 sectorsize 4096 size 1.00GiB
Btrfs v3.12
Create a readonly snapshot of '/tmp/mnt-
At subvol /tmp/mnt-
Create a readonly snapshot of '/tmp/mnt-
At subvol /tmp/mnt-
Performing full device TRIM (1.00GiB) ...
Turning ON incompat feature 'extref': increased hardlink limit per file to 65536
WARNING! - Btrfs v3.12 IS EXPERIMENTAL
WARNING! - see http://
fs created label (null) on /dev/loop0
nodesize 16384 leafsize 16384 sectorsize 4096 size 1.00GiB
Btrfs v3.12
At subvol snap1
At snapshot snap2
ERROR: rmdir o259-6-0 failed. No such file or directory
incremental receive failed
== Fix ==
29d6d30f5 (Btrfs: send, don't send rmdir for same target multiple times)
This patch needs to be backported for a variable difference in the process_
In the Trusty tree:
static int process_
In the patch:
static int process_
As the new *pending_move is unrelated here, we can just backport the patch with the same logic in this function.
A test kernel could be found here:
http://
This test will pass with this kernel.
== Regression potential ==
Low,
this patch just adds an extra check to skip unnecessary rmdir operations.
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: linux-image-
ProcVersionSign
Uname: Linux 3.13.0-164-generic x86_64
AlsaDevices:
total 0
crw-rw---- 1 root audio 116, 1 Dec 27 03:14 seq
crw-rw---- 1 root audio 116, 33 Dec 27 03:14 timer
AplayDevices: Error: [Errno 2] No such file or directory: 'aplay'
ApportVersion: 2.14.1-0ubuntu3.29
Architecture: amd64
ArecordDevices: Error: [Errno 2] No such file or directory: 'arecord'
AudioDevicesInUse: Error: command ['fuser', '-v', '/dev/snd/seq', '/dev/snd/timer'] failed with exit code 1:
CurrentDmesg:
[13958.095408] btrfs: device fsid da34075a-
[13958.102670] btrfs: device fsid da34075a-
[13958.105901] btrfs: device fsid da34075a-
[13958.106099] btrfs: disk space caching is enabled
[13958.107771] btrfs: creating UUID tree
Date: Thu Dec 27 07:11:58 2018
IwConfig: Error: [Errno 2] No such file or directory: 'iwconfig'
Lsusb: Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
MachineType: QEMU Standard PC (i440FX + PIIX, 1996)
PciMultimedia:
ProcFB: 0 cirrusdrmfb
ProcKernelCmdLine: BOOT_IMAGE=
RelatedPackageV
linux-
linux-
linux-firmware 1.127.24
RfKill: Error: [Errno 2] No such file or directory: 'rfkill'
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
WifiSyslog:
dmi.bios.date: 04/01/2014
dmi.bios.vendor: SeaBIOS
dmi.bios.version: Ubuntu-
dmi.chassis.type: 1
dmi.chassis.vendor: QEMU
dmi.chassis.
dmi.modalias: dmi:bvnSeaBIOS:
dmi.product.name: Standard PC (i440FX + PIIX, 1996)
dmi.product.
dmi.sys.vendor: QEMU
CVE References
Changed in ubuntu-kernel-tests: | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux (Ubuntu): | |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in ubuntu-kernel-tests: | |
status: | New → In Progress |
Changed in linux (Ubuntu): | |
status: | Confirmed → In Progress |
description: | updated |
description: | updated |
description: | updated |
Changed in linux (Ubuntu Trusty): | |
status: | New → In Progress |
assignee: | nobody → Po-Hsu Lin (cypressyew) |
Changed in linux (Ubuntu): | |
status: | In Progress → Invalid |
Changed in linux (Ubuntu Trusty): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Trusty): | |
status: | In Progress → Fix Committed |
tags: | added: cscc |
This change was made by a bot.