• Zhihao Cheng's avatar
    ubifs: Rectify space amount budget for mkdir/tmpfile operations · a6dab660
    Zhihao Cheng authored
    UBIFS should make sure the flash has enough space to store dirty (Data
    that is newer than disk) data (in memory), space budget is exactly
    designed to do that. If space budget calculates less data than we need,
    'make_reservation()' will do more work(return -ENOSPC if no free space
    lelf, sometimes we can see "cannot reserve xxx bytes in jhead xxx, error
    -28" in ubifs error messages) with ubifs inodes locked, which may effect
    other syscalls.
    
    A simple way to decide how much space do we need when make a budget:
    See how much space is needed by 'make_reservation()' in ubifs_jnl_xxx()
    function according to corresponding operation.
    
    It's better to report ENOSPC in ubifs_budget_space(), as early as we can.
    
    Fixes: 474b9370 ("ubifs: Implement O_TMPFILE")
    Fixes: 1e51764a ("UBIFS: add new flash file system")
    Signed-off-by: default avatarZhihao Cheng <chengzhihao1@huawei.com>
    Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
    a6dab660
dir.c 43.8 KB