• Fan Li's avatar
    f2fs: fix to update cached_en of extent tree properly · f8b703da
    Fan Li authored
    In f2fs_lookup_extent_tree, et->cached_en was read and updated with only
    read lock held,
    it could cause __lookup_extent_tree within return entirely wrong
    extent_node, if other
    thread update et->cached_en just before __lookup_extent_tree return.
    
    However, there are two things about this patch that need to be noticed:
    1. It does no good to arrange the order of concurrent read/write, the result
    would still
    be random in such case.
    2. It's built on this assumption: the mix up of reads and writes on a single
    pointer would
    not make the pointer partially wrong at any time. Please let me know if I'm
    wrong, thx.
    Signed-off-by: default avatarFan li <fanofcode.li@samsung.com>
    Reviewed-by: default avatarChao Yu <chao2.yu@samsung.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk@kernel.org>
    f8b703da
extent_cache.c 17.4 KB