• Amir Goldstein's avatar
    ovl: do not cleanup unsupported index entries · fa0096e3
    Amir Goldstein authored
    With index=on, ovl_indexdir_cleanup() tries to cleanup invalid index
    entries (e.g. bad index name). This behavior could result in cleaning of
    entries created by newer kernels and is therefore undesirable.
    Instead, abort mount if such entries are encountered. We still cleanup
    'stale' entries and 'orphan' entries, both those cases can be a result
    of offline changes to lower and upper dirs.
    
    When encoutering an index entry of type directory or whiteout, kernel
    was supposed to fallback to read-only mount, but the fill_super()
    operation returns EROFS in this case instead of returning success with
    read-only mount flag, so mount fails when encoutering directory or
    whiteout index entries. Bless this behavior by returning -EINVAL on
    directory and whiteout index entries as we do for all unsupported index
    entries.
    
    Fixes: 61b67471 ("ovl: do not cleanup directory and whiteout index..")
    Cc: <stable@vger.kernel.org> # v4.13
    Signed-off-by: default avatarAmir Goldstein <amir73il@gmail.com>
    fa0096e3
readdir.c 22.7 KB