Chris Lu and GitHub
78ed665557
webdav: answer PROPFIND child stats from the listing ( #10492 )
...
* webdav: answer PROPFIND child stats from the listing
golang.org/x/net/webdav discards the FileInfo that Readdir returned and stats
every child again, five times over, so a PROPFIND on a directory costs five
sequential filer lookups per entry: 15006 lookups and 1.4s for 3000
subdirectories, 24s for 60000. Windows Explorer times out well before that.
Hold the entries a listing already fetched for the lifetime of the request and
serve those stats from them - 6 lookups and 0.03s for the same 3000 entries.
WebDavFile.Stat has to stop dropping its request context for the held entries
to be reachable.
* webdav: keep the request context on the lookups a listing drives
stat, Readdir and Seek reached the filer on context.Background(), so a client
that walked away left the listing streaming and the lookups running. Seek also
missed the entries the listing had already fetched.
Write and cleanup paths keep their own context - a cancelled request must not
abandon a flush half done.
2026-07-30 11:58:14 -07:00
..
2025-11-04 13:02:22 -08:00
2026-05-06 19:14:36 -07:00
2026-03-18 13:20:55 -07:00
2026-06-24 20:05:43 -07:00
2026-01-03 22:45:48 -08:00
2026-06-23 20:20:11 -07:00
2026-06-23 20:20:11 -07:00
2026-07-27 14:28:29 -07:00
2026-07-21 00:19:15 -07:00
2026-07-21 00:19:15 -07:00
2026-07-21 00:19:15 -07:00
2026-05-23 14:22:42 -07:00
2026-03-30 23:29:56 -07:00
2026-03-30 23:29:56 -07:00
2026-01-07 13:06:08 -08:00
2026-04-21 23:00:11 -07:00
2026-04-21 23:00:11 -07:00
2026-07-08 18:50:54 -07:00
2026-07-02 11:56:49 -07:00
2026-05-25 13:14:05 -07:00
2026-05-25 13:14:05 -07:00
2026-06-06 18:02:28 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-23 17:44:02 -07:00
2026-07-27 14:28:29 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-04-21 11:25:09 -07:00
2026-06-10 13:08:34 -07:00
2026-06-10 13:08:34 -07:00
2026-07-15 02:32:05 -07:00
2026-06-14 21:44:10 -07:00
2026-03-29 14:18:24 -07:00
2026-06-03 10:28:42 -07:00
2026-06-03 10:28:42 -07:00
2026-07-23 17:44:02 -07:00
2026-06-11 21:56:16 -07:00
2026-03-23 18:35:15 -07:00
2026-06-24 19:36:42 -07:00
2026-05-15 13:15:20 -07:00
2026-05-15 13:15:20 -07:00
2026-07-25 19:54:41 -07:00
2026-07-25 19:54:41 -07:00
2026-01-07 13:06:08 -08:00
2026-07-25 11:17:00 -07:00
2026-05-23 21:40:41 -07:00
2026-05-23 21:40:41 -07:00
2025-08-21 08:28:07 -07:00
2026-04-16 15:51:13 -07:00
2026-07-25 11:20:41 -07:00
2026-07-11 22:45:28 -07:00
2026-02-20 18:42:00 -08:00
2026-07-11 22:45:28 -07:00
2026-07-11 22:45:28 -07:00
2026-07-11 22:45:28 -07:00
2026-07-11 22:45:28 -07:00
2026-06-24 10:47:11 -07:00
2026-05-21 10:19:59 -07:00
2026-07-17 12:30:42 -07:00
2026-07-02 15:13:46 -07:00
2026-07-16 13:55:38 -07:00
2026-01-07 13:06:08 -08:00
2022-07-29 00:17:28 -07:00
2025-12-19 00:15:39 -08:00
2026-04-04 11:50:43 -07:00
2026-07-27 14:28:29 -07:00
2026-06-01 20:33:37 -07:00
2026-07-27 14:28:29 -07:00
2026-06-30 19:31:12 -07:00
2026-06-01 20:33:37 -07:00
2025-11-26 08:01:19 -08:00
2026-07-16 13:55:38 -07:00
2026-06-04 22:26:08 -07:00
2026-03-18 23:28:07 -07:00
2026-02-09 07:46:34 -08:00
2026-03-18 23:28:07 -07:00
2026-04-15 12:29:31 -07:00
2026-04-10 17:31:14 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:45:02 -07:00
2026-05-11 13:50:48 -07:00
2026-07-15 23:24:04 -07:00
2026-06-26 14:22:57 -07:00
2026-06-26 14:22:57 -07:00
2022-07-29 00:17:28 -07:00
2026-06-13 20:05:33 -07:00
2026-05-31 23:42:33 -07:00
2026-07-27 19:37:16 -07:00
2026-06-14 01:54:04 -07:00
2026-07-10 22:06:36 -07:00
2026-06-25 10:38:14 -07:00
2026-06-25 10:38:14 -07:00
2026-07-10 22:06:36 -07:00
2026-07-27 17:56:17 -07:00
2026-07-15 23:24:04 -07:00
2026-05-11 13:50:19 -07:00
2026-04-22 11:22:21 -07:00
2026-05-12 10:11:20 -07:00
2026-06-13 21:52:59 -07:00
2026-06-30 23:20:50 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:53:29 -07:00
2026-07-25 23:53:29 -07:00
2026-05-04 21:14:55 -07:00
2026-04-03 16:04:27 -07:00
2026-04-27 12:22:42 -07:00
2025-11-26 08:01:19 -08:00
2026-07-15 23:24:04 -07:00
2026-06-04 22:26:08 -07:00
2026-07-15 23:24:04 -07:00
2026-06-04 22:26:08 -07:00
2026-07-30 11:58:14 -07:00
2026-07-30 11:58:14 -07:00
2026-07-30 11:58:14 -07:00
2026-06-11 21:56:16 -07:00
2026-06-11 21:56:16 -07:00