Trond Myklebust
3aff4ebb95
NFS: Prevent a deadlock in the new writeback code
...
We have to unlock the nfs_page before we call nfs_end_page_writeback
to avoid races with functions that expect the page to be unlocked
when PG_locked and PG_writeback are not set.
The problem is that nfs_unlock_request also releases the nfs_page,
causing a deadlock if the release of the nfs_open_context
triggers an iput() while the PG_writeback flag is still set...
The solution is to separate the unlocking and release of the nfs_page,
so that we can do the former before nfs_end_page_writeback and the
latter after.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Cc: Fred Isaman <iisaman@netapp.com>
2012-05-09 15:16:07 -04:00
..
2012-04-15 17:35:19 -07:00
2012-03-28 10:01:29 -07:00
2012-04-23 14:23:32 +03:00
2012-04-16 16:45:34 +02:00
2012-04-16 21:27:07 +02:00
2012-04-20 20:30:19 -04:00
2012-03-30 17:31:56 -07:00
2012-04-09 16:29:34 +02:00
2012-04-16 15:19:12 -04:00
2012-04-11 09:31:01 +02:00
2012-04-02 14:41:25 -07:00
2012-04-04 10:09:30 -07:00
2012-03-28 12:34:33 -07:00
2012-04-16 08:35:33 -07:00
2012-03-30 16:45:39 -07:00
2012-03-30 12:33:28 +02:00
2012-03-28 18:30:03 +01:00
2012-03-29 18:12:23 -07:00
2012-03-30 03:23:30 -04:00
2012-03-29 15:38:31 +10:30
2012-03-29 14:46:05 -07:00
2012-03-29 19:52:48 +08:00
2012-03-28 15:58:21 -07:00
2012-03-28 16:36:44 +02:00
2012-03-28 15:02:41 -07:00
2012-04-04 17:13:43 -07:00
2012-04-10 15:30:16 -07:00
2012-03-28 14:24:40 -07:00
2012-03-28 18:30:03 +01:00
2012-04-06 02:43:12 -04:00
2012-03-31 16:03:16 -04:00
2012-04-02 14:41:27 -07:00
2012-04-05 15:30:34 -07:00
2012-04-12 12:57:08 +02:00
2012-03-28 14:08:46 -07:00
2012-03-28 15:58:21 -07:00
2012-03-27 22:45:26 -04:00
2012-03-28 18:30:03 +01:00
2012-04-23 11:04:29 +10:00
2012-04-12 00:37:48 -06:00
2012-04-02 09:50:40 -07:00
2012-04-12 18:35:58 -07:00
2012-03-31 13:34:04 -07:00
2012-03-29 17:41:25 -05:00
2012-03-28 23:30:28 +02:00
2012-04-11 22:55:25 -03:00
2012-03-28 18:30:03 +01:00
2012-04-03 09:49:59 -07:00
2012-04-21 01:58:20 -04:00
2012-03-27 16:30:09 -07:00
2012-04-03 17:23:23 -04:00
2012-05-01 19:16:43 -04:00
2012-05-09 15:16:07 -04:00
2012-05-01 15:42:44 -04:00
2012-03-28 14:41:36 -07:00
2012-03-28 18:30:03 +01:00
2012-03-28 17:14:36 -07:00
2012-03-28 23:31:24 +02:00
2012-03-28 17:14:37 -07:00
2012-03-28 18:30:03 +01:00
2012-03-28 15:58:21 -07:00
2012-04-09 10:38:30 -07:00
2012-04-13 13:09:19 -04:00
2012-03-28 15:04:26 -07:00
2012-03-28 17:14:35 -07:00
2012-04-05 19:04:27 -04:00
2012-03-28 15:58:21 -07:00
2012-04-14 07:47:49 -07:00
2012-03-28 18:30:03 +01:00
2012-04-05 15:25:51 -07:00
2012-03-29 18:12:23 -07:00
2012-03-28 18:30:03 +01:00
2012-04-10 22:39:17 -06:00
2012-04-11 09:36:00 +01:00
2012-03-27 16:30:09 -07:00
2012-03-31 08:09:50 +05:30
2012-03-28 18:30:03 +01:00