• Artem Bityutskiy's avatar
    UBIFS: do not use inc_link when i_nlink is zero · c43be108
    Artem Bityutskiy authored
    This patch changes the 'i_nlink' counter handling in 'ubifs_unlink()',
    'ubifs_rmdir()' and 'ubifs_rename()'. In these function  'i_nlink' may become 0,
    and if 'ubifs_jnl_update()' failed, we would use 'inc_nlink()' to restore
    the previous 'i_nlink' value, which is incorrect from the VFS point of view and
    would cause a 'WARN_ON()' (see 'inc_nlink() implementation).
    
    This patches saves the previous 'i_nlink' value in a local variable and uses it
    at the error path instead of calling 'inc_nlink()'. We do this only for the
    inodes where 'i_nlink' may potentially become zero.
    
    This change has been requested by Al Viro <viro@ZenIV.linux.org.uk>.
    Signed-off-by: default avatarArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
    c43be108
dir.c 32.4 KB