• Jaegeuk Kim's avatar
    f2fs: enhance alloc_nid and build_free_nids flows · 55008d84
    Jaegeuk Kim authored
    In order to avoid build_free_nid lock contention, let's change the order of
    function calls as follows.
    
    At first, check whether there is enough free nids.
     - If available, just get a free nid with spin_lock without any overhead.
     - Otherwise, conduct build_free_nids.
      : scan nat pages, journal nat entries, and nat cache entries.
    
    We should consider carefullly not to serve free nids intermediately made by
    build_free_nids.
    We can get stable free nids only after build_free_nids is done.
    Reviewed-by: default avatarNamjae Jeon <namjae.jeon@samsung.com>
    Signed-off-by: default avatarJaegeuk Kim <jaegeuk.kim@samsung.com>
    55008d84
f2fs.h 33.5 KB