- diff --git a/cygwin/README.bintarball.txt b/cygwin/README.bintarball.txt
- index 26cc9c3..a5ea187 100644
- --- a/cygwin/README.bintarball.txt
- +++ b/cygwin/README.bintarball.txt
- @@ -62,7 +62,7 @@ NFSv4.1 client and filesystem driver for Windows 10/11
- # 3. Requirements:
- #
- - Windows 10 or Windows 11
- -- Cygwin 3.5.0
- +- Cygwin 3.5.1 (or 3.6.x-devel)
- - Packages (required):
- cygwin
- cygwin-devel
- diff --git a/daemon/lookup.c b/daemon/lookup.c
- index e15046a..6023a92 100644
- --- a/daemon/lookup.c
- +++ b/daemon/lookup.c
- @@ -3,6 +3,7 @@
- *
- * Olga Kornievskaia <aglo@umich.edu>
- * Casey Bodley <cbodley@umich.edu>
- + * Roland Mainz <roland.mainz@nrubsig.org>
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by
- @@ -45,6 +46,7 @@
- * MAX_LOOKUP_COMPONENTS)|), see |max_lookup_components()| below.
- *
- * Linux 5.10.0-22-rt uses |ca_maxoperations==16|
- + * Linux 6.6.20-rt25 uses |ca_maxoperations==50|
- * simplenfs/nfs4j uses |ca_maxoperations==128|
- *
- */
- @@ -290,12 +292,16 @@ out:
- static uint32_t max_lookup_components(
- IN const nfs41_session *session)
- {
- -#define ROUNDUPDIV(x, y) (((x)+((y)-1))/(y))
- const uint32_t comps = min(
- session->fore_chan_attrs.ca_maxoperations,
- MAX_LOOKUP_COMPONENTS);
- - return ROUNDUPDIV(comps-4, 3);
- + /*
- + * Make sure we round this value down, otherwise not all
- + * our requests will fit into the
- + * |session->fore_chan_attrs.ca_maxoperations| limit
- + */
- + return ((comps-4) / 3);
- }
- static uint32_t get_component_array(
- diff --git a/daemon/nfs41_ops.c b/daemon/nfs41_ops.c
- index 5d0bb20..ce2f10b 100644
- --- a/daemon/nfs41_ops.c
- +++ b/daemon/nfs41_ops.c
- @@ -166,6 +166,13 @@ int nfs41_create_session(nfs41_client *clnt, nfs41_session *session, bool_t try_
- reply.csr_fore_chan_attrs = &session->fore_chan_attrs;
- reply.csr_back_chan_attrs = &session->back_chan_attrs;
- + DPRINTF(0, ("nfs41_create_session: "
- + "Requested req.csa_fore_chan_attrs."
- + "(ca_maxoperations=%d,ca_maxrequests=%d)\n",
- + (int)req.csa_fore_chan_attrs.ca_maxoperations,
- + (int)req.csa_fore_chan_attrs.ca_maxrequests));
- +
- +
- status = compound_encode_send_decode(session, &compound, try_recovery);
- if (status)
- goto out;
- @@ -173,6 +180,19 @@ int nfs41_create_session(nfs41_client *clnt, nfs41_session *session, bool_t try_
- if (compound_error(status = compound.res.status))
- goto out;
- + DPRINTF(0, ("nfs41_create_session: "
- + "Response from server: session->fore_chan_attrs->"
- + "(ca_maxoperations=%d,ca_maxrequests=%d)\n",
- + (int)session->fore_chan_attrs.ca_maxoperations,
- + (int)session->fore_chan_attrs.ca_maxrequests));
- +
- + if (session->fore_chan_attrs.ca_maxoperations < 64) {
- + eprintf("WARNING: Server returned ca_maxoperations(=%d) "
- + "< 64, this will lead to bad performance for deeply "
- + "nested dirs\n",
- + session->fore_chan_attrs.ca_maxoperations);
- + }
- +
- print_hexbuf(1, (unsigned char *)"session id: ", session->session_id, NFS4_SESSIONID_SIZE);
- // check that csa_sequence is same as csr_sequence
- if (reply.csr_sequence != clnt->seq_id) {
long path fix+misc
Posted by Anonymous on Sat 16th Mar 2024 13:56
raw | new post
modification of post by Anonymous (view diff)
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.