Files
linux/fs
Jeff Mahoney 3d8e24ef90 reiserfs: call truncate_setsize under tailpack mutex
commit 22e7478ddb upstream.

Prior to commit 0e4f6a791b (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: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-06 18:59:12 -07:00
..
2014-05-06 13:04:59 -07:00
2014-06-30 20:14:02 -07:00
2014-06-30 20:14:01 -07:00
2014-04-28 16:43:44 +02:00
2013-12-04 12:27:46 +01:00
2014-01-25 03:14:05 -05:00
2013-06-29 12:57:04 +04:00
2013-10-24 23:34:54 -04:00
2014-04-19 13:23:31 -07:00
2013-11-09 00:16:20 -05:00
2013-10-24 23:34:54 -04:00
2014-02-07 16:08:57 -08:00
2014-02-07 16:08:57 -08:00
2014-04-01 23:19:09 -04:00
2013-11-23 22:33:47 -08:00
2014-04-01 23:19:08 -04:00
2014-04-01 23:19:08 -04:00
2014-04-01 23:19:09 -04:00
2013-10-24 23:34:54 -04:00
2014-05-28 01:54:52 -04:00
2013-11-09 00:16:31 -05:00
2014-04-16 11:53:08 -07:00