d_path() and overlay fs

From: Karel Zak
Date: Fri Mar 20 2015 - 09:29:23 EST



Hi,

kernel-4.0.0-0.rc4.git1.3.fc23 (I have nothing more recent right now,
sorry it the problem is already fixed).

It seems like d_path() kernel function returns nonsenses for overlay fs.

Example:

# mount -t overlay overlay -olowerdir=/mnt/low,upperdir=/mnt/up/data,workdir=/mnt/up/work /mnt/merged
# dd if=/dev/zero of=/mnt/merged/image count=1 bs=1MiB

# losetup -f /mnt/merged/image

# cat /sys/block/loop0/loop/backing_file
/image


...should be /mnt/merged/image.

drivers/block/loop.c: loop_attr_backing_file_show() uses d_path()

It seems like serious problem because kernel uses d_path() (and
friends) on many places to generate path strings for userspace in
/proc and /sys and people already use overlay fs in containers.

Another example:

# cat /proc/swaps
Filename Type Size Used Priority
/dev/sda6 partition 8191996 258308 -1
/image file 1020 0 -2


Karel

--
Karel Zak <kzak@xxxxxxxxxx>
http://karelzak.blogspot.com
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/