David Jeffery
1c327d962f
lockd: protect nlm_blocked access in nlmsvc_retry_blocked
...
In nlmsvc_retry_blocked, the check that the list is non-empty and acquiring
the pointer of the first entry is unprotected by any lock. This allows a rare
race condition when there is only one entry on the list. A function such as
nlmsvc_grant_callback() can be called, which will temporarily remove the entry
from the list. Between the list_empty() and list_entry(),the list may become
empty, causing an invalid pointer to be used as an nlm_block, leading to a
possible crash.
This patch adds the nlm_block_lock around these calls to prevent concurrent
use of the nlm_blocked list.
This was a regression introduced by
f904be9cc77f361d37d71468b13ff3d1a1823dea "lockd: Mostly remove BKL from
the server".
Cc: Bryan Schumaker <bjschuma@netapp.com>
Cc: stable@vger.kernel.org
Signed-off-by: David Jeffery <djeffery@redhat.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2013-07-11 17:24:07 -04:00
..
2013-05-07 20:16:25 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-05-07 20:16:25 -07:00
2013-05-06 13:06:59 -07:00
2013-04-30 09:36:50 -07:00
2013-03-03 19:36:31 -08:00
2013-05-09 13:07:40 -07:00
2013-04-09 14:12:56 -04:00
2013-05-07 20:16:25 -07:00
2013-05-04 22:18:10 -05:00
2013-04-09 14:12:56 -04:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-07 01:08:55 -08:00
2013-05-01 14:08:52 -07:00
2013-05-10 09:20:01 -07:00
2013-05-01 17:51:54 -07:00
2013-03-03 19:36:31 -08:00
2013-03-23 14:26:28 -07:00
2013-02-27 19:10:24 -08:00
2013-05-07 20:16:25 -07:00
2013-05-07 20:49:51 -07:00
2013-05-07 20:49:51 -07:00
2013-05-08 15:11:48 -07:00
2013-05-07 20:16:25 -07:00
2013-03-12 18:55:21 -07:00
2013-04-29 15:54:27 -07:00
2013-05-07 20:49:51 -07:00
2013-05-08 10:13:35 -07:00
2013-05-07 20:49:51 -07:00
2013-05-07 20:16:25 -07:00
2013-05-04 15:48:45 -04:00
2013-04-09 14:12:55 -04:00
2013-04-29 15:41:42 -04:00
2013-05-07 18:38:27 -07:00
2013-03-12 18:55:21 -07:00
2013-05-03 09:56:25 -07:00
2013-05-01 17:51:54 -07:00
2013-03-03 19:36:31 -08:00
2013-05-08 10:13:35 -07:00
2013-07-11 17:24:07 -04:00
2013-03-23 14:15:31 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-05-09 10:24:54 -07:00
2013-02-13 06:15:14 -08:00
2013-07-08 19:48:10 -04:00
2013-05-07 20:16:25 -07:00
2012-06-01 19:51:22 -07:00
2013-05-09 13:46:38 -04:00
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-05-07 08:42:20 -07:00
2013-05-09 16:42:10 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-11 22:05:56 +01:00
2013-02-26 20:16:07 -08:00
2013-05-07 20:49:51 -07:00
2013-04-29 09:17:57 +10:00
2013-03-11 07:09:48 -07:00
2013-04-05 15:35:52 -07:00
2013-03-12 18:55:21 -07:00
2013-05-07 20:16:25 -07:00
2013-05-07 20:16:25 -07:00
2013-04-30 09:36:50 -07:00
2013-05-09 13:06:20 -07:00
2013-05-07 19:46:02 -07:00
2013-02-26 02:46:11 -05:00
2012-11-20 04:17:24 -08:00
2012-12-17 17:15:12 -08:00
2013-05-01 17:51:54 -07:00
2013-05-02 10:16:16 -07:00
2013-05-02 10:16:16 -07:00
2012-12-17 17:15:23 -08:00
2013-04-29 15:40:23 -04:00
2013-04-30 17:04:03 -07:00
2012-12-20 17:40:19 -08:00
2012-11-28 21:53:38 -05:00
2013-03-23 14:26:34 -07:00
2013-05-08 10:13:35 -07:00
2013-05-08 10:13:35 -07:00
2013-05-08 10:13:35 -07:00
2012-10-22 08:50:37 +03:00
2012-10-06 03:05:17 +09:00
2013-05-04 15:03:05 -04:00
2013-05-07 20:16:25 -07:00
2013-05-04 14:45:54 -04:00
2012-10-06 03:05:15 +09:00
2013-05-04 15:43:02 -04:00
2013-03-03 23:00:23 -05:00
2013-05-08 10:13:35 -07:00
2012-12-17 17:15:27 -08:00
2013-05-01 07:21:43 -07:00
2013-05-01 17:51:54 -07:00
2013-02-22 23:31:31 -05:00
2012-12-20 14:04:11 -08:00
2013-03-01 19:48:30 -05:00
2013-05-01 17:31:42 -04:00
2013-03-03 19:36:31 -08:00
2013-03-01 23:51:07 -05:00
2013-05-08 10:13:35 -07:00
2012-09-18 01:01:35 -07:00
2013-05-01 17:51:54 -07:00
2013-04-09 14:12:58 -04:00
2013-02-22 23:31:31 -05:00
2013-04-17 13:25:09 +01:00
2013-04-30 17:04:04 -07:00
2012-12-20 18:46:29 -05:00
2013-02-22 23:31:31 -05:00
2013-05-01 17:51:54 -07:00
2013-04-09 14:12:52 -04:00
2013-05-11 14:29:11 -07:00
2013-05-04 15:18:53 -04:00
2013-03-03 22:58:33 -05:00
2013-05-07 20:16:25 -07:00
2013-05-01 17:51:54 -07:00
2013-05-01 17:51:54 -07:00
2012-09-18 01:01:35 -07:00
2012-07-14 16:32:48 +04:00
2013-05-07 20:16:25 -07:00
2013-02-22 23:31:31 -05:00
2013-02-07 20:51:08 +01:00
2013-04-09 14:13:29 -04:00
2013-03-03 22:58:46 -05:00
2013-05-01 17:51:54 -07:00
2013-02-26 02:46:08 -05:00
2012-12-20 18:50:07 -05:00
2013-02-27 19:10:24 -08:00
2013-03-03 22:46:22 -05:00
2013-03-02 09:35:13 -05:00
2012-12-20 18:50:08 -05:00
2012-10-12 13:16:48 -07:00
2012-12-20 18:50:11 -05:00