Re: [PATCH] overlay/071: Fix undefined OVL_BASE_SCRATCH_DIR

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Wed, Sep 30, 2020 at 8:33 AM Xiao Yang <yangx.jy@xxxxxxxxxxxxxx> wrote:
>
> Hi Amir,
>
> I always got diffenent inode number if underlying fileystem is ext4.
> ------------------------------------------------
> # diff -u /var/lib/xfstests/tests/overlay/071.out
> /var/lib/xfstests/results//overlay/071.out.bad
> --- /var/lib/xfstests/tests/overlay/071.out 2020-09-30
> 12:59:30.478968816 +0800
> +++ /var/lib/xfstests/results//overlay/071.out.bad 2020-09-30
> 13:13:02.342920819 +0800
> @@ -1,2 +1,26 @@
> QA output created by 071
> +--- /tmp/25096.lower.lo 2020-09-30 13:12:59.594920981 +0800
> ++++ /tmp/25096.before.lo 2020-09-30 13:12:59.706920975 +0800
> +@@ -1,7 +1,7 @@
> +-8590721028 file
> +-8590721029 symlink
> +-8590721030 link
> +-8590721031 chrdev
> +-8590721032 blkdev
> +-8590721033 fifo
> +-8590721034 socket
> ++9223372045445496836 file
> ++9223372045445496837 symlink
> ++9223372045445496838 link
> ++9223372045445496839 chrdev
> ++9223372045445496840 blkdev
> ++9223372045445496841 fifo
> ++9223372045445496842 socket
> +file not found by ino 8590721028 (from /tmp/25096.lower.lo) - see
> /var/lib/xfstests/results//overlay/071.full
> +symlink not found by ino 8590721029 (from /tmp/25096.lower.lo) - see
> /var/lib/xfstests/results//overlay/071.full
> +link not found by ino 8590721030 (from /tmp/25096.lower.lo) - see
> /var/lib/xfstests/results//overlay/071.full
> +chrdev not found by ino 8590721031 (from /tmp/25096.lower.lo) - see
> /var/lib/xfstests/results//overlay/071.full
> +blkdev not found by ino 8590721032 (from /tmp/25096.lower.lo) - see
> /var/lib/xfstests/results//overlay/071.full
> +fifo not found by ino 8590721033 (from /tmp/25096.lower.lo) - see
> /var/lib/xfstests/results//overlay/071.full
> +socket not found by ino 8590721034 (from /tmp/25096.lower.lo) - see
> /var/lib/xfstests/results//overlay/071.full
> Silence is golde
> ------------------------------------------------
> Is this expected behavior? :-)

Yes and No :-)

The result is expected. It is not expected for the test to fail.
This is a test bug.

The bug is in this line and in the comment above it:
# Compare inode numbers in lower overlay vs. nested overlay
# With nested xino lower/lower, all inode numbers overflow xino bits and
# d_ino/i_ino in nested overlay are the same as in lower overlay.
check_inode_numbers $lowertestdir $tmp.lower.lo $tmp.before.lo

This test is meant to cover the case of "xino=on/auto, ino overflow" from:
https://github.com/torvalds/linux/blob/master/Documentation/filesystems/overlayfs.rst#inode-properties

The correct part of the comment is:
# With nested xino lower, all inode numbers overflow xino bits
Meaning that all inode numbers at $lowertestdir have the MSB set
(e.g. file ino 9223372045445496836  = 0x80000002000C0004)

With lower fs xfs, the other part of the comment is also correct:
# ...and d_ino/i_ino in nested overlay are the same as in lower overlay

Because in the lower overlay ($SCRATCH_MNT/lowertestdir)
lower files also have the MSB set.

However, because ext4 has a known inode number limit of 32bit
(see ovl_can_decode_fh) the lower overlay inodes do not have the
MSB set (e.g. file ino 8590721028 = 0x2000C0004).

Long story short, I think we need to remove this line and comment
from the test and leave it the same as overlay/070:

# Record inode numbers before copy up
record_inode_numbers $lowertestdir $tmp.before.lo
record_inode_numbers $uppertestdir $tmp.before.up

This recording is just for the sake of logging info in 070.full.

>
> Best Regards,
> Xiao Yang
> On 2020/9/30 13:04, Xiao Yang wrote:
> > Replace undefined OVL_BASE_SCRATCH_DIR with OVL_BASE_SCRATCH_MNT
> >
> > Signed-off-by: Xiao Yang <yangx.jy@xxxxxxxxxxxxxx>

Reviewed-by: Amir Goldstein <amir73il@xxxxxxxxx>

Will you also fix the test bug please.

Thanks!
Amir.



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux