Kazuya Mio
fcb2c2e950
wake up s_wait_unfrozen when ->freeze_fs fails
...
commit e1616300a2 upstream.
dd slept infinitely when fsfeeze failed because of EIO.
To fix this problem, if ->freeze_fs fails, freeze_super() wakes up
the tasks waiting for the filesystem to become unfrozen.
When s_frozen isn't SB_UNFROZEN in __generic_file_aio_write(),
the function sleeps until FITHAW ioctl wakes up s_wait_unfrozen.
However, if ->freeze_fs fails, s_frozen is set to SB_UNFROZEN and then
freeze_super() returns an error number. In this case, FITHAW ioctl returns
EINVAL because s_frozen is already SB_UNFROZEN. There is no way to wake up
s_wait_unfrozen, so __generic_file_aio_write() sleeps infinitely.
Signed-off-by: Kazuya Mio <k-mio@sx.jp.nec.com >
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2012-05-21 09:40:05 -07:00
..
2011-10-03 11:40:22 -07:00
2011-03-31 11:26:23 -03:00
2011-05-28 01:02:53 -04:00
2012-03-23 11:20:51 -07:00
2012-05-07 08:56:37 -07:00
2011-08-29 13:29:06 -07:00
2011-05-28 01:02:50 -04:00
2012-04-27 09:51:17 -07:00
2011-03-31 11:26:23 -03:00
2011-07-16 23:43:58 -04:00
2012-04-02 09:27:17 -07:00
2011-06-20 10:44:19 -04:00
2011-05-28 01:02:54 -04:00
2011-07-17 23:22:02 -04:00
2011-05-19 16:55:28 +09:30
2011-03-22 17:44:17 -07:00
2011-05-26 13:19:00 -07:00
2012-02-29 16:33:41 -08:00
2011-03-10 08:52:07 +01:00
2011-07-17 23:20:29 -04:00
2011-03-15 02:21:44 -04:00
2011-05-26 07:26:56 -04:00
2012-05-21 09:40:04 -07:00
2012-05-21 09:40:04 -07:00
2011-05-31 19:42:24 +09:00
2011-05-10 10:16:21 +02:00
2011-07-21 10:59:16 -07:00
2011-12-21 12:57:44 -08:00
2011-08-04 21:58:42 -07:00
2011-12-21 12:57:41 -08:00
2012-05-07 08:56:50 -07:00
2011-05-28 01:02:52 -04:00
2011-05-28 01:02:54 -04:00
2011-11-11 09:35:59 -08:00
2012-04-02 09:27:11 -07:00
2011-06-18 07:25:42 -07:00
2011-12-21 12:57:40 -08:00
2012-04-27 09:51:07 -07:00
2012-05-21 09:40:03 -07:00
2011-06-20 17:53:24 -05:00
2012-04-27 09:51:18 -07:00
2011-06-20 10:44:26 -04:00
2011-05-28 01:02:54 -04:00
2011-05-28 01:02:53 -04:00
2012-05-21 09:40:04 -07:00
2011-03-31 11:26:23 -03:00
2012-05-07 08:56:35 -07:00
2012-03-23 11:20:50 -07:00
2012-01-25 17:24:49 -08:00
2011-03-31 11:26:23 -03:00
2012-04-27 09:51:18 -07:00
2011-06-24 08:34:22 -07:00
2011-01-07 17:50:26 +11:00
2012-03-19 08:57:58 -07:00
2012-04-02 09:27:18 -07:00
2011-05-16 11:05:00 -07:00
2011-03-10 08:52:07 +01:00
2011-11-11 09:36:22 -08:00
2011-04-14 16:06:56 -07:00
2012-01-12 11:35:05 -08:00
2011-06-27 18:00:12 -07:00
2011-05-29 11:19:45 -07:00
2012-04-02 09:26:53 -07:00
2011-05-28 01:02:50 -04:00
2012-01-25 17:25:06 -08:00
2012-04-02 09:27:19 -07:00
2011-07-17 23:21:35 -04:00
2012-04-02 09:27:20 -07:00
2012-03-19 08:57:43 -07:00
2011-01-16 13:47:07 -05:00
2011-05-28 12:02:09 -04:00
2011-06-20 10:44:00 -04:00
2011-07-06 12:15:16 -07:00
2012-03-12 10:32:41 -07:00
2011-05-03 10:10:51 +10:00
2010-10-29 04:16:28 -04:00
2011-03-17 11:11:05 +01:00
2011-05-28 14:44:46 +02:00
2012-03-19 08:57:58 -07:00
2011-06-16 11:44:46 -04:00
2011-01-13 10:45:01 -08:00
2011-01-07 14:39:20 -08:00
2011-04-09 15:53:56 +02:00
2012-04-02 09:27:19 -07:00
2011-05-31 16:33:35 +02:00
2011-03-24 10:16:26 -07:00
2011-05-25 08:39:26 -07:00
2011-02-21 15:07:04 -08:00
2012-04-27 09:51:09 -07:00
2011-10-16 14:14:54 -07:00
2011-03-23 19:47:13 -07:00
2011-04-14 16:06:56 -07:00
2011-03-21 00:16:09 -04:00
2011-03-16 13:26:17 -07:00
2011-04-28 11:28:20 -07:00
2011-04-17 10:42:01 -07:00
2011-01-16 13:47:07 -05:00
2011-10-03 11:40:44 -07:00
2011-03-23 19:47:13 -07:00
2011-06-27 18:00:13 -07:00
2011-03-24 21:17:51 -04:00
2011-03-21 00:16:08 -04:00
2010-11-15 10:23:31 +01:00
2011-05-26 09:52:14 -07:00
2010-10-27 18:03:12 -07:00
2011-07-19 22:09:30 -07:00
2011-07-06 10:41:13 -07:00
2011-03-16 19:01:29 -07:00
2011-05-25 08:39:26 -07:00
2011-05-26 10:01:43 -06:00
2012-03-19 08:57:44 -07:00
2011-12-21 12:57:36 -08:00
2011-03-14 09:15:28 -04:00
2011-03-21 01:10:41 -04:00
2012-05-07 08:56:36 -07:00
2011-01-07 17:50:33 +11:00
2011-01-25 15:24:47 -05:00
2011-01-12 20:06:58 -05:00
2011-03-21 00:16:08 -04:00
2011-12-21 12:57:36 -08:00
2012-02-29 16:34:35 -08:00
2012-04-27 09:51:18 -07:00
2011-11-11 09:36:19 -08:00
2011-11-11 09:37:08 -08:00
2012-05-21 09:40:05 -07:00
2011-03-24 10:16:26 -07:00
2011-06-14 11:46:14 +02:00
2011-03-23 19:47:13 -07:00
2011-05-28 12:02:09 -04:00