reiserfs: don't preallocate blocks for extended attributes
authorJeff Mahoney <jeffm@suse.com>
Thu, 22 Jun 2017 20:35:04 +0000 (16:35 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 31 Jan 2018 11:55:52 +0000 (12:55 +0100)
commit0ccfbd4d6f02ff010dcc59e439f19864ad3a4efa
treea717eb22a1d82c063b10f5ab321e920fdd607420
parentb7d25282b75ea7da56ca7b1a11f7a9c4970fc5e0
reiserfs: don't preallocate blocks for extended attributes

commit 54930dfeb46e978b447af0fb8ab4e181c1bf9d7a upstream.

Most extended attributes will fit in a single block.  More importantly,
we drop the reference to the inode while holding the transaction open
so the preallocated blocks aren't released.  As a result, the inode
may be evicted before it's removed from the transaction's prealloc list
which can cause memory corruption.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/reiserfs/bitmap.c