• Amir Goldstein's avatar
    ovl: fix corner case of non-constant st_dev;st_ino · b7bf9908
    Amir Goldstein authored
    On non-samefs overlay without xino, non pure upper inodes should use a
    pseudo_dev assigned to each unique lower fs, but if lower layer is on the
    same fs and upper layer, it has no pseudo_dev assigned.
    
    In this overlay layers setup:
     - two filesystems, A and B
     - upper layer is on A
     - lower layer 1 is also on A
     - lower layer 2 is on B
    
    Non pure upper overlay inode, whose origin is in layer 1 will have the
    st_dev;st_ino values of the real lower inode before copy up and the
    st_dev;st_ino values of the real upper inode after copy up.
    
    Fix this inconsitency by assigning a unique pseudo_dev also for upper fs,
    that will be used as st_dev value along with the lower inode st_dev for
    overlay inodes in the case above.
    Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
    Signed-off-by: default avatarMiklos Szeredi <mszeredi@redhat.com>
    b7bf9908
inode.c 25.9 KB