• Jeff Mahoney's avatar
    reiserfs: fix race in prealloc discard · 08db141b
    Jeff Mahoney authored
    The main loop in __discard_prealloc is protected by the reiserfs write lock
    which is dropped across schedules like the BKL it replaced.  The problem is
    that it checks the value, calls a routine that schedules, and then adjusts
    the state.  As a result, two threads that are calling
    reiserfs_prealloc_discard at the same time can race when one calls
    reiserfs_free_prealloc_block, the lock is dropped, and the other calls
    reiserfs_free_prealloc_block with the same block number.  In the right
    circumstances, it can cause the prealloc count to go negative.
    Signed-off-by: 's avatarJeff Mahoney <jeffm@suse.com>
    Signed-off-by: 's avatarJan Kara <jack@suse.cz>
    08db141b
Name
Last commit
Last update
..
Kconfig Loading commit data...
Makefile Loading commit data...
README Loading commit data...
acl.h Loading commit data...
bitmap.c Loading commit data...
dir.c Loading commit data...
do_balan.c Loading commit data...
file.c Loading commit data...
fix_node.c Loading commit data...
hashes.c Loading commit data...
ibalance.c Loading commit data...
inode.c Loading commit data...
ioctl.c Loading commit data...
item_ops.c Loading commit data...
journal.c Loading commit data...
lbalance.c Loading commit data...
lock.c Loading commit data...
namei.c Loading commit data...
objectid.c Loading commit data...
prints.c Loading commit data...
procfs.c Loading commit data...
reiserfs.h Loading commit data...
resize.c Loading commit data...
stree.c Loading commit data...
super.c Loading commit data...
tail_conversion.c Loading commit data...
xattr.c Loading commit data...
xattr.h Loading commit data...
xattr_acl.c Loading commit data...
xattr_security.c Loading commit data...
xattr_trusted.c Loading commit data...
xattr_user.c Loading commit data...