cem
68540557c3
getmntinfo(3): Scale faster, and return sooner
...
getmntinfo(3) is designed around a relatively static or slow growing set of
current mounts. It tried to detect a race with somewhat concurrent mount
and re-call getfsstat(2) in that case, looping indefinitely. It also
allocated space for a single extra mount as slop.
In the case where the user has a large number of mounts and is adding them
at a rapid pace, it fell over.
This patch makes two functional changes:
1. Allocate even more slop. Double whatever the last getfsstat(2) returned.
2. Abort and return some known results after looping a few times
(arbitrarily, 3). If the list is constantly changing, we can't guarantee
we return a full result to the user at any point anyways.
While here, add very basic functional tests for getmntinfo(3) to the libc
suite.
PR: 221743
Submitted by: Peter Eriksson <peter AT ifm.liu.se> (earlier version)
Sponsored by: Dell EMC Isilon
2017-08-25 16:38:21 +00:00
..
2017-08-02 08:50:42 +00:00
2017-08-24 20:19:27 +00:00
2017-08-10 14:18:09 +00:00
2017-05-24 21:02:53 +00:00
2017-01-20 03:34:59 +00:00
2017-08-02 08:50:42 +00:00
2017-01-20 03:55:21 +00:00
2017-01-20 03:55:43 +00:00
2016-06-03 19:25:30 +00:00
2017-01-20 03:56:10 +00:00
2017-04-27 15:03:24 +00:00
2017-03-26 21:14:49 +00:00
2017-05-09 01:48:23 +00:00
2017-01-20 03:58:50 +00:00
2017-08-25 16:38:21 +00:00
2017-01-20 04:04:25 +00:00
2017-07-13 21:58:45 +00:00
2017-07-11 00:32:48 +00:00
2017-08-02 08:14:06 +00:00
2017-08-09 18:15:07 +00:00
2017-08-14 19:21:37 +00:00
2017-07-13 22:01:38 +00:00
2017-01-20 04:51:36 +00:00
2017-02-28 23:42:47 +00:00
2017-08-21 17:49:01 +00:00
2017-08-02 09:00:59 +00:00
2017-02-22 18:44:57 +00:00
2016-08-30 02:07:15 +00:00
2017-01-20 04:55:14 +00:00
2017-07-11 00:32:48 +00:00
2017-01-20 04:54:21 +00:00
2017-04-28 21:05:28 +00:00
2017-07-24 18:10:42 +00:00
2017-01-20 04:54:09 +00:00
2017-07-05 02:58:46 +00:00
2017-03-27 22:34:43 +00:00
2017-01-20 04:53:40 +00:00
2017-01-20 04:53:45 +00:00
2017-08-18 18:20:36 +00:00
2016-11-11 23:28:07 +00:00
2017-07-05 13:13:38 +00:00
2017-05-28 00:28:11 +00:00
2017-04-21 19:27:33 +00:00
2017-04-21 19:27:33 +00:00
2017-07-11 00:32:48 +00:00
2017-04-13 14:44:17 +00:00
2017-04-16 19:23:10 +00:00
2017-01-20 04:50:46 +00:00
2017-08-02 08:14:06 +00:00
2017-01-20 04:50:19 +00:00
2017-01-20 04:46:20 +00:00
2017-01-20 04:45:09 +00:00
2017-07-01 21:18:06 +00:00
2016-11-20 06:10:12 +00:00
2017-05-23 09:29:05 +00:00
2017-08-02 08:50:42 +00:00
2017-07-14 17:38:44 +00:00
2017-04-06 14:36:08 +00:00
2017-01-20 04:41:53 +00:00
2017-08-02 08:50:42 +00:00
2017-01-20 04:40:10 +00:00
2017-03-22 13:16:04 +00:00
2017-08-02 08:50:42 +00:00
2017-03-07 16:06:53 +00:00
2017-01-20 04:37:03 +00:00
2017-05-24 21:02:53 +00:00
2017-08-14 19:21:37 +00:00
2017-07-29 22:25:45 +00:00
2017-04-25 10:29:08 +00:00
2017-06-19 20:47:24 +00:00
2017-07-11 00:32:48 +00:00
2017-08-02 08:50:42 +00:00
2017-03-22 18:14:55 +00:00
2017-08-02 08:14:06 +00:00
2017-01-20 04:35:36 +00:00
2017-01-20 04:35:00 +00:00
2017-01-20 04:35:18 +00:00
2017-01-20 04:34:34 +00:00
2017-03-27 22:34:43 +00:00
2017-08-04 03:48:17 +00:00
2017-01-20 04:33:45 +00:00
2017-07-22 12:51:19 +00:00
2017-07-31 19:07:45 +00:00
2017-08-02 08:50:42 +00:00
2017-04-20 21:01:59 +00:00
2016-10-15 13:17:27 +00:00
2017-05-23 09:29:05 +00:00
2017-01-20 04:29:23 +00:00
2017-01-20 04:31:19 +00:00
2017-08-09 18:06:27 +00:00
2017-08-18 16:42:58 +00:00
2017-02-14 13:35:59 +00:00
2017-01-18 18:14:50 +00:00
2017-08-03 18:07:01 +00:00
2017-02-28 23:42:47 +00:00
2017-01-20 04:28:41 +00:00
2017-04-09 03:50:48 +00:00
2017-05-09 01:48:14 +00:00
2017-08-12 18:28:02 +00:00
2017-08-12 22:20:08 +00:00
2017-07-10 14:59:21 +00:00