• Frederic Weisbecker's avatar
    kill-the-bkl/reiserfs: fix recursive reiserfs lock in reiserfs_mkdir() · b10ab4c3
    Frederic Weisbecker authored
    reiserfs_mkdir() acquires the reiserfs lock, assuming it has been called
    from the dir inodes callbacks, without the lock held.
    
    But it can also be called from other internal sites such as
    reiserfs_xattr_init() which already holds the lock. This recursive
    locking leads to further wrong assumptions. For example, later calls
    to reiserfs_mutex_lock_safe() won't actually unlock the reiserfs lock
    the time we acquire a given mutex, creating unexpected lock inversions.
    Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Cc: Jeff Mahoney <jeffm@suse.com>
    Cc: Chris Mason <chris.mason@oracle.com>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Alexander Beregalov <a.beregalov@gmail.com>
    Cc: Laurent Riffard <laurent.riffard@free.fr>
    b10ab4c3
namei.c 44 KB