• A
    ovl: avoid possible inode number collisions with xino=on · dfe51d47
    Amir Goldstein 提交于
    When xino feature is enabled and a real directory inode number overflows
    the lower xino bits, we cannot map this directory inode number to a unique
    and persistent inode number and we fall back to the real inode st_ino and
    overlay st_dev.
    
    The real inode st_ino with high bits may collide with a lower inode number
    on overlay st_dev that was mapped using xino.
    
    To avoid possible collision with legitimate xino values, map a non
    persistent inode number to a dedicated range in the xino address space.
    The dedicated range is created by adding one more bit to the number of
    reserved high xino bits.  We could have added just one more fsid, but that
    would have had the undesired effect of changing persistent overlay inode
    numbers on kernel or require more complex xino mapping code.
    Signed-off-by: NAmir Goldstein <amir73il@gmail.com>
    Signed-off-by: NMiklos Szeredi <mszeredi@redhat.com>
    dfe51d47
super.c 45.0 KB