Difference between
modified post 4473f846f by Anonymous on Sat 16th Mar 2024 13:56
original post 5400583a by Anonymous on Sat 16th Mar 2024 13:13
Download diff
Show
old version |
new version |
both versions
| 1 | 1 | diff --git a/cygwin/README.bintarball.txt b/cygwin/README.bintarball.txt | |
| 2 | 2 | index 26cc9c3..a5ea187 100644 | |
| 3 | 3 | --- a/cygwin/README.bintarball.txt | |
| 4 | 4 | +++ b/cygwin/README.bintarball.txt | |
| 5 | 5 | @@ -62,7 +62,7 @@ NFSv4.1 client and filesystem driver for Windows 10/11 | |
| 6 | 6 | # 3. Requirements: | |
| 7 | 7 | # | |
| 8 | 8 | - Windows 10 or Windows 11 | |
| 9 | 9 | -- Cygwin 3.5.0 | |
| 10 | 10 | +- Cygwin 3.5.1 (or 3.6.x-devel) | |
| 11 | 11 | - Packages (required): | |
| 12 | 12 | cygwin | |
| 13 | 13 | cygwin-devel | |
| 14 | 14 | diff --git a/daemon/lookup.c b/daemon/lookup.c | |
| 15 | - | index e15046a..044efc0 100644 | |
| 15 | + | index e15046a..6023a92 100644 | |
| 16 | 16 | --- a/daemon/lookup.c | |
| 17 | 17 | +++ b/daemon/lookup.c | |
| 18 | - | @@ -290,12 +290,15 @@ out: | |
| 18 | + | @@ -3,6 +3,7 @@ | |
| 19 | - | static uint32_t max_lookup_components( | |
| 19 | + | * | |
| 20 | - | IN const nfs41_session *session) | |
| 20 | + | * Olga Kornievskaia <aglo@umich.edu> | |
| 21 | - | { | |
| 21 | + | * Casey Bodley <cbodley@umich.edu> | |
| 22 | - | -#define ROUNDUPDIV(x, y) (((x)+((y)-1))/(y)) | |
| 22 | + | + * Roland Mainz <roland.mainz@nrubsig.org> | |
| 23 | - | const uint32_t comps = min( | |
| 23 | + | * | |
| 24 | - | session->fore_chan_attrs.ca_maxoperations, | |
| 24 | + | * This library is free software; you can redistribute it and/or modify it | |
| 25 | - | MAX_LOOKUP_COMPONENTS); | |
| 25 | + | * under the terms of the GNU Lesser General Public License as published by | |
| 26 | - | ||
| 26 | + | @@ -45,6 +46,7 @@ | |
| 27 | - | - return ROUNDUPDIV(comps-4, 3); | |
| 27 | + | * MAX_LOOKUP_COMPONENTS)|), see |max_lookup_components()| below. | |
| 28 | - | + /* | |
| 28 | + | * | |
| 29 | - | + * Make sure we round this value down, otherwise the NFS server | |
| 29 | + | * Linux 5.10.0-22-rt uses |ca_maxoperations==16| | |
| 30 | - | + * will not send all requests back | |
| 30 | + | + * Linux 6.6.20-rt25 uses |ca_maxoperations==50| | |
| 31 | - | + */ | |
| 31 | + | * simplenfs/nfs4j uses |ca_maxoperations==128| | |
| 32 | - | + return ((comps-4) / 3); | |
| 32 | + | * | |
| 33 | - | } | |
| 33 | + | */ | |
| 34 | + | @@ -290,12 +292,16 @@ out: | |
| 34 | 42 | ||
| 43 | + | - return ROUNDUPDIV(comps-4, 3); | |
| 35 | 52 | static uint32_t get_component_array( | |
| 36 | 53 | diff --git a/daemon/nfs41_ops.c b/daemon/nfs41_ops.c | |
| 37 | - | index 5d0bb20..1fc0c57 100644 | |
| 54 | + | index 5d0bb20..ce2f10b 100644 | |
| 38 | 55 | --- a/daemon/nfs41_ops.c | |
| 39 | 56 | +++ b/daemon/nfs41_ops.c | |
| 40 | 57 | @@ -166,6 +166,13 @@ int nfs41_create_session(nfs41_client *clnt, nfs41_session *session, bool_t try_ | |
| 41 | 58 | reply.csr_fore_chan_attrs = &session->fore_chan_attrs; | |
| 42 | 59 | reply.csr_back_chan_attrs = &session->back_chan_attrs; | |
| 43 | 60 | ||
| 44 | 61 | + DPRINTF(0, ("nfs41_create_session: " | |
| 45 | 62 | + "Requested req.csa_fore_chan_attrs." | |
| 46 | 63 | + "(ca_maxoperations=%d,ca_maxrequests=%d)\n", | |
| 47 | 64 | + (int)req.csa_fore_chan_attrs.ca_maxoperations, | |
| 48 | 65 | + (int)req.csa_fore_chan_attrs.ca_maxrequests)); | |
| 49 | 66 | + | |
| 50 | 67 | + | |
| 51 | 68 | status = compound_encode_send_decode(session, &compound, try_recovery); | |
| 52 | 69 | if (status) | |
| 53 | 70 | goto out; | |
| 54 | - | @@ -173,6 +180,18 @@ int nfs41_create_session(nfs41_client *clnt, nfs41_session *session, bool_t try_ | |
| 71 | + | @@ -173,6 +180,19 @@ int nfs41_create_session(nfs41_client *clnt, nfs41_session *session, bool_t try_ | |
| 55 | 72 | if (compound_error(status = compound.res.status)) | |
| 56 | 73 | goto out; | |
| 57 | 74 | ||
| 58 | 75 | + DPRINTF(0, ("nfs41_create_session: " | |
| 59 | 76 | + "Response from server: session->fore_chan_attrs->" | |
| 60 | 77 | + "(ca_maxoperations=%d,ca_maxrequests=%d)\n", | |
| 61 | 78 | + (int)session->fore_chan_attrs.ca_maxoperations, | |
| 62 | 79 | + (int)session->fore_chan_attrs.ca_maxrequests)); | |
| 63 | 80 | + | |
| 64 | 81 | + if (session->fore_chan_attrs.ca_maxoperations < 64) { | |
| 65 | - | + eprintf("WARNING: Server returned ca_maxoperations(=%d)" | |
| 82 | + | + eprintf("WARNING: Server returned ca_maxoperations(=%d) " | |
| 66 | - | + " < 64, this will lead to bad performance\n", | |
| 83 | + | + "< 64, this will lead to bad performance for deeply " | |
| 84 | + | + "nested dirs\n", | |
| 67 | 85 | + session->fore_chan_attrs.ca_maxoperations); | |
| 68 | 86 | + } | |
| 69 | 87 | + | |
| 70 | 88 | print_hexbuf(1, (unsigned char *)"session id: ", session->session_id, NFS4_SESSIONID_SIZE); | |
| 71 | 89 | // check that csa_sequence is same as csr_sequence | |
| 72 | 90 | if (reply.csr_sequence != clnt->seq_id) { | |
| 73 | 91 |
Submit a correction or amendment below (click here to make a fresh posting)
After submitting an amendment, you'll be able to view the differences between the old and new posts easily.
nrubsig.kpaste.net RSS