NeilBrown
4a9be28c45
NFS: fix mount/umount race in nlmclnt.
...
If the last NFSv3 unmount from a given host races with a mount from the
same host, we can destroy an nlm_host that is still in use.
Specifically nlmclnt_lookup_host() can increment h_count on
an nlm_host that nlmclnt_release_host() has just successfully called
refcount_dec_and_test() on.
Once nlmclnt_lookup_host() drops the mutex, nlm_destroy_host_lock()
will be called to destroy the nlmclnt which is now in use again.
The cause of the problem is that the dec_and_test happens outside the
locked region. This is easily fixed by using
refcount_dec_and_mutex_lock().
Fixes: 8ea6ecc8b0 ("lockd: Create client-side nlm_host cache")
Cc: stable@vger.kernel.org (v2.6.38+)
Signed-off-by: NeilBrown <neilb@suse.com >
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com >
2019-03-18 22:39:34 -04:00
..
2019-03-17 09:10:56 -07:00
2019-03-12 14:08:19 -07:00
2019-03-07 18:32:01 -08:00
2019-01-04 13:13:47 -08:00
2019-03-12 14:53:57 -07:00
2018-11-30 16:00:58 +00:00
2019-03-05 18:55:17 +01:00
2019-03-14 19:32:36 -05:00
2018-10-30 12:46:25 -07:00
2019-03-09 10:54:24 -08:00
2019-02-11 09:09:02 +01:00
2019-01-24 13:38:30 -05:00
2019-02-03 11:17:31 -08:00
2019-01-25 18:41:52 +08:00
2018-11-23 09:08:17 -05:00
2019-03-07 09:01:33 -08:00
2019-03-12 15:03:21 -07:00
2019-03-15 13:42:53 -07:00
2019-03-07 18:32:01 -08:00
2018-11-30 15:57:31 +00:00
2019-03-12 14:46:26 -07:00
2019-03-09 11:52:11 -08:00
2018-11-30 14:56:14 -08:00
2019-01-04 13:13:47 -08:00
2019-03-12 09:58:03 -07:00
2019-03-12 14:08:19 -07:00
2018-09-29 22:47:48 -04:00
2019-03-01 00:36:57 -05:00
2018-12-02 09:20:34 +01:00
2018-09-20 09:28:49 -05:00
2019-03-12 14:08:19 -07:00
2019-03-18 22:39:34 -04:00
2019-03-18 13:14:24 -04:00
2019-03-12 15:06:54 -07:00
2019-02-06 13:12:15 -05:00
2019-02-21 11:47:23 +01:00
2018-12-28 12:11:47 -08:00
2019-03-05 21:07:13 -08:00
2018-11-18 13:35:19 -08:00
2019-03-12 13:27:20 -07:00
2019-02-13 11:14:46 +01:00
2019-03-16 13:47:14 -07:00
2019-02-12 13:45:53 -08:00
2018-12-18 18:29:15 +01:00
2018-10-31 08:54:14 -07:00
2019-03-16 10:31:02 -07:00
2018-11-10 08:02:40 -05:00
2019-03-13 09:34:35 -07:00
2019-02-21 19:25:36 +01:00
2019-03-15 13:55:30 -07:00
2019-03-05 14:08:26 -08:00
2019-03-05 10:00:35 -08:00
2019-03-07 18:32:01 -08:00
2019-02-18 16:49:36 -08:00
2019-02-24 08:20:17 -07:00
2019-02-28 13:59:41 -07:00
2018-10-29 14:29:58 -07:00
2018-10-03 16:47:43 +02:00
2019-03-01 17:24:48 -08:00
2019-01-30 11:02:11 -08:00
2019-02-15 08:40:11 -07:00
2019-02-01 15:46:24 -08:00
2019-03-07 18:32:01 -08:00
2019-03-07 18:32:01 -08:00
2018-10-03 16:47:43 +02:00
2019-02-28 08:24:23 -07:00
2019-03-08 14:48:40 -08:00
2019-02-28 03:29:26 -05:00
2019-02-28 03:29:37 -05:00
2019-02-28 03:28:53 -05:00
2019-01-21 17:48:13 +01:00
2019-01-22 14:39:38 -07:00
2019-03-05 21:07:13 -08:00
2019-02-28 03:28:53 -05:00
2019-03-12 10:04:01 -07:00
2019-01-03 18:57:57 -08:00
2019-02-24 08:20:17 -07:00
2019-03-12 14:08:19 -07:00
2019-02-28 07:55:37 +01:00
2019-03-12 14:08:19 -07:00
2019-01-30 17:44:07 -05:00
2019-02-15 08:40:11 -07:00
2019-03-12 14:08:19 -07:00
2019-03-12 14:08:19 -07:00
2019-03-12 13:27:20 -07:00
2019-01-30 17:14:50 -05:00
2019-01-30 17:14:50 -05:00
2019-03-12 13:27:20 -07:00
2019-01-03 18:57:57 -08:00
2019-02-07 00:13:27 +01:00
2018-10-03 16:47:43 +02:00
2019-03-12 13:27:20 -07:00
2019-02-01 01:55:45 -05:00
2019-02-07 16:38:35 +01:00
2019-02-28 03:29:38 -05:00
2019-02-07 00:13:27 +01:00
2018-12-28 12:11:51 -08:00
2019-02-07 00:13:27 +01:00
2018-09-18 07:30:48 -04:00