Jan Kara
3a7578afc3
udf: Fix deadlock between writeback and udf_setsize()
...
commit f2e95355891153f66d4156bf3a142c6489cd78c6 upstream.
udf_setsize() called truncate_setsize() with i_data_sem held. Thus
truncate_pagecache() called from truncate_setsize() could lock a page
under i_data_sem which can deadlock as page lock ranks below
i_data_sem - e. g. writeback can hold page lock and try to acquire
i_data_sem to map a block.
Fix the problem by moving truncate_setsize() calls from under
i_data_sem. It is safe for us to change i_size without holding
i_data_sem as all the places that depend on i_size being stable already
hold inode_lock.
CC: stable@vger.kernel.org
Fixes: 7e49b6f248
Signed-off-by: Jan Kara <jack@suse.cz >
Signed-off-by: Willy Tarreau <w@1wt.eu >
2017-11-02 10:45:57 +01:00
..
2017-06-08 00:46:47 +02:00
2015-04-29 10:34:00 +02:00
2015-04-29 10:34:00 +02:00
2013-05-31 15:17:56 -04:00
2017-06-19 20:28:15 +02:00
2015-04-29 10:34:00 +02:00
2017-06-20 14:04:42 +02:00
2015-04-29 10:34:00 +02:00
2013-11-29 11:11:53 -08:00
2015-04-29 10:34:00 +02:00
2016-02-25 11:57:46 -08:00
2016-08-27 11:40:31 +02:00
2016-03-16 08:41:37 -07:00
2014-02-13 13:48:00 -08:00
2015-04-29 10:34:00 +02:00
2017-06-08 00:46:47 +02:00
2017-06-08 00:46:47 +02:00
2017-11-02 07:16:21 +01:00
2017-06-08 00:46:49 +02:00
2017-06-20 14:04:27 +02:00
2017-11-02 07:16:17 +01:00
2017-11-01 22:12:44 +01:00
2017-06-20 14:04:50 +02:00
2015-10-01 12:07:34 +02:00
2015-10-01 12:07:34 +02:00
2017-02-10 11:03:30 +01:00
2015-09-21 10:00:10 -07:00
2017-06-21 15:42:43 +02:00
2017-02-10 11:03:30 +01:00
2017-06-20 08:02:35 +02:00
2017-06-08 00:46:47 +02:00
2017-06-08 00:46:47 +02:00
2016-03-03 15:06:20 -08:00
2015-04-29 10:34:00 +02:00
2017-06-20 14:04:24 +02:00
2017-06-20 14:04:53 +02:00
2016-08-27 11:40:30 +02:00
2015-08-16 20:51:35 -07:00
2017-06-20 08:03:01 +02:00
2015-06-05 23:19:54 -07:00
2017-06-21 15:42:43 +02:00
2017-02-10 11:04:02 +01:00
2013-05-31 15:17:31 -04:00
2015-01-29 17:40:57 -08:00
2017-06-08 00:46:47 +02:00
2016-02-19 14:22:39 -08:00
2017-06-08 00:46:56 +02:00
2017-11-02 10:45:57 +01:00
2017-06-20 14:04:32 +02:00
2016-02-25 11:57:46 -08:00
2014-06-16 13:42:52 -07:00
2016-02-19 14:22:41 -08:00
2014-03-23 21:38:21 -07:00
2013-10-05 07:13:09 -07:00
2017-06-08 00:46:49 +02:00
2014-11-14 08:47:54 -08:00
2017-02-06 23:33:05 +01:00
2017-06-20 14:04:14 +02:00
2014-02-13 13:48:00 -08:00
2017-11-02 07:16:05 +01:00
2017-11-01 22:12:42 +01:00
2015-06-05 23:20:00 -07:00
2015-07-03 19:48:08 -07:00
2014-02-22 12:41:25 -08:00
2015-01-16 06:59:02 -08:00
2017-06-08 00:46:47 +02:00
2015-07-10 10:40:22 -07:00
2015-07-03 19:48:08 -07:00
2017-06-20 08:02:37 +02:00
2015-04-29 10:34:00 +02:00
2016-03-09 15:31:53 -08:00
2014-02-06 11:08:16 -08:00
2016-03-03 15:06:24 -08:00
2015-01-08 09:58:16 -08:00
2015-07-03 19:48:08 -07:00
2016-08-21 23:22:36 +02:00
2013-05-31 15:16:33 -04:00
2017-06-08 00:46:47 +02:00
2014-02-13 13:48:00 -08:00
2017-02-10 11:03:29 +01:00
2015-08-16 20:51:42 -07:00
2017-06-20 14:04:20 +02:00
2015-01-29 17:40:57 -08:00
2013-10-18 07:45:44 -07:00
2017-02-10 11:03:29 +01:00