• Christian Brauner's avatar
    ovl: check type and offset of struct vfsmount in ovl_entry · f723edb8
    Christian Brauner authored
    Porting overlayfs to the new amount api I started experiencing random
    crashes that couldn't be explained easily. So after much debugging and
    reasoning it became clear that struct ovl_entry requires the point to
    struct vfsmount to be the first member and of type struct vfsmount.
    
    During the port I added a new member at the beginning of struct
    ovl_entry which broke all over the place in the form of random crashes
    and cache corruptions. While there's a comment in ovl_free_fs() to the
    effect of "Hack! Reuse ofs->layers as a vfsmount array before freeing
    it" there's no such comment on struct ovl_entry which makes this easy to
    trip over.
    
    Add a comment and two static asserts for both the offset and the type of
    pointer in struct ovl_entry.
    Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
    Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
    f723edb8
ovl_entry.h 4.87 KB