• Jeff Mahoney's avatar
    reiserfs: call truncate_setsize under tailpack mutex · 22e7478d
    Jeff Mahoney authored
    Prior to commit 0e4f6a79 (Fix reiserfs_file_release()), reiserfs
    truncates serialized on i_mutex. They mostly still do, with the exception
    of reiserfs_file_release. That blocks out other writers via the tailpack
    mutex and the inode openers counter adjusted in reiserfs_file_open.
    
    However, NFS will call reiserfs_setattr without having called ->open, so
    we end up with a race when nfs is calling ->setattr while another
    process is releasing the file. Ultimately, it triggers the
    BUG_ON(inode->i_size != new_file_size) check in maybe_indirect_to_direct.
    
    The solution is to pull the lock into reiserfs_setattr to encompass the
    truncate_setsize call as well.
    Signed-off-by: default avatarJeff Mahoney <jeffm@suse.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarJan Kara <jack@suse.cz>
    22e7478d
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...