pastebin - collaborative debugging tool
rovema.kpaste.net RSS


msnfs41client: Patches for longer compounds, rename/mv on long paths, less debug messages etc., 2024-01-16
Posted by Anonymous on Tue 16th Jan 2024 15:18
raw | new post

  1. From 0f4d97192a351e0c925284be767ed09bd6745eb2 Mon Sep 17 00:00:00 2001
  2. From: Roland Mainz <roland.mainz@nrubsig.org>
  3. Date: Fri, 12 Jan 2024 14:04:51 +0100
  4. Subject: [PATCH 1/7] daemon: Remove owner/owner_group |EASSERT()| for new
  5.  files
  6.  
  7. Remove owner/owner_group |EASSERT()| for new files in |copy_attrs()|,
  8. this is no longer needed.
  9.  
  10. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  11. ---
  12. daemon/name_cache.c | 4 ++--
  13.  1 file changed, 2 insertions(+), 2 deletions(-)
  14.  
  15. diff --git a/daemon/name_cache.c b/daemon/name_cache.c
  16. index 656e8ab..d7036a8 100644
  17. --- a/daemon/name_cache.c
  18. +++ b/daemon/name_cache.c
  19. @@ -350,7 +350,7 @@ static void copy_attrs(
  20.      dst->type = src->type;
  21.      dst->numlinks = src->numlinks;
  22.      dst->mode = src->mode;
  23. -    EASSERT(src->owner[0] != '\0');
  24. +
  25.      if (src->owner[0] != '\0') {
  26.          dst->owner = dst->owner_buf;
  27.          (void)strcpy(dst->owner, src->owner);
  28. @@ -359,7 +359,7 @@ static void copy_attrs(
  29.          /* this should only happen for newly created files/dirs */
  30.          dst->owner = NULL;
  31.      }
  32. -    EASSERT(src->owner_group[0] != '\0');
  33. +
  34.      if (src->owner_group[0] != '\0') {
  35.          dst->owner_group = dst->owner_group_buf;
  36.          (void)strcpy(dst->owner_group, src->owner_group);
  37. --
  38. 2.43.0
  39.  
  40. From bdfa9c78bf904495948bbc942d4eba16f3d2e943 Mon Sep 17 00:00:00 2001
  41. From: Roland Mainz <roland.mainz@nrubsig.org>
  42. Date: Fri, 12 Jan 2024 16:46:04 +0100
  43. Subject: [PATCH 2/7] daemon: Increase |MAX_PUTFH_PER_COMPOUND| to |64|
  44.  
  45. Increase the value of |MAX_PUTFH_PER_COMPOUND| from |16| to |64|
  46. for better performance.
  47.  
  48. Notes:
  49. - the real value is negotiated between NFSv4.1 server and
  50. client, |MAX_PUTFH_PER_COMPOUND| is the maximum value we support on
  51. our side.
  52.  
  53. - Linux nfsd uses |#define NFSD_MAX_OPS_PER_COMPOUND 50| in
  54. linux-6.7/fs/nfsd/nfsd.h, Solaris/Illumos nfsd uses up to
  55. |2048| (see also https://bugzilla.kernel.org/show_bug.cgi?id=216383#c0)
  56. and nfs4j JAVA NFSv4 server uses |8192|.
  57.  
  58. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  59. ---
  60. daemon/name_cache.c | 17 ++++++++++++++++-
  61.  daemon/nfs41.h      | 10 +++++++---
  62.  2 files changed, 23 insertions(+), 4 deletions(-)
  63.  
  64. diff --git a/daemon/name_cache.c b/daemon/name_cache.c
  65. index d7036a8..877b6b6 100644
  66. --- a/daemon/name_cache.c
  67. +++ b/daemon/name_cache.c
  68. @@ -1259,7 +1259,22 @@ out_unlock:
  69.  
  70.  /* nfs41_name_cache_resolve_fh() */
  71.  
  72. -#define MAX_PUTFH_PER_COMPOUND 16
  73. +/*
  74. + * MAX_PUTFH_PER_COMPOUND
  75. + *
  76. + * The maximum is negotiated with with the NFSv4 server (follow
  77. + * |max_putfh_components()| below and |NFS41_MAX_OPS_PER_COMPOUND|
  78. + * in daemon/nfs41.h).
  79. + *
  80. + * Linux nfsd uses |#define NFSD_MAX_OPS_PER_COMPOUND 50| in
  81. + * linux-6.7/fs/nfsd/nfsd.h, Solaris/Illumos nfsd uses up to
  82. + * |2048| (see also https://bugzilla.kernel.org/show_bug.cgi?id=216383#c0)
  83. + * and nfs4j JAVA NFSv4 server uses |8192|.
  84. + *
  85. + * Since bigger values eat more stack we set this to
  86. + * |64| for now.
  87. + */
  88. +#define MAX_PUTFH_PER_COMPOUND 64
  89.  
  90.  static bool_t get_path_fhs(
  91.      IN struct nfs41_name_cache *cache,
  92. diff --git a/daemon/nfs41.h b/daemon/nfs41.h
  93. index 245a625..c8216dd 100644
  94. --- a/daemon/nfs41.h
  95. +++ b/daemon/nfs41.h
  96. @@ -235,9 +235,13 @@ typedef struct __nfs41_slot_table {
  97.   * trouble with |signed int| vs. |unisgned int|, and NFSv4.x
  98.   * server implementations might want to allocate static buffers
  99.   * based on what we return.
  100. - * Linux uses |#define NFSD_MAX_OPS_PER_COMPOUND 50| in
  101. - * linux-6.7/fs/nfsd/nfsd.h and Solaris uses a much higher value
  102. - * (see also https://bugzilla.kernel.org/show_bug.cgi?id=216383#c0).
  103. + *
  104. + * Linux nfsd uses |#define NFSD_MAX_OPS_PER_COMPOUND 50| in
  105. + * linux-6.7/fs/nfsd/nfsd.h, Solaris/Illumos nfsd uses up to
  106. + * |2048| (see also https://bugzilla.kernel.org/show_bug.cgi?id=216383#c0)
  107. + * and nfs4j JAVA NFSv4 server uses |8192|.
  108. + *
  109. + * See also |MAX_PUTFH_PER_COMPOUND| in daemon/name_cache.c
  110.   */
  111.  #define NFS41_MAX_OPS_PER_COMPOUND 16384
  112.  typedef struct __nfs41_channel_attrs {
  113. --
  114. 2.43.0
  115.  
  116. From c17ab40bc36e05f159f5efbf774c0dd09095e581 Mon Sep 17 00:00:00 2001
  117. From: Roland Mainz <roland.mainz@nrubsig.org>
  118. Date: Fri, 12 Jan 2024 17:01:48 +0100
  119. Subject: [PATCH 3/7] daemon: Disable "ASSERTION 'length > 0'" for UNMOUNT
  120.  
  121. Disable 'length > 0' |EASSERT()| for UNMOUNT, as this upcall
  122. has no payload.
  123.  
  124. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  125. ---
  126. daemon/upcall.c | 6 +++++-
  127.  1 file changed, 5 insertions(+), 1 deletion(-)
  128.  
  129. diff --git a/daemon/upcall.c b/daemon/upcall.c
  130. index 7fa98ef..c1b58bd 100644
  131. --- a/daemon/upcall.c
  132. +++ b/daemon/upcall.c
  133. @@ -25,6 +25,7 @@
  134.  
  135.  #include "nfs41_build_features.h"
  136.  #include "upcall.h"
  137. +#include "nfs41_driver.h" /* only for |NFS41_UNMOUNT| */
  138.  #include "daemon_debug.h"
  139.  #include "util.h"
  140.  
  141. @@ -122,7 +123,10 @@ int upcall_parse(
  142.      /* parse the operation's arguments */
  143.      op = g_upcall_op_table[upcall->opcode];
  144.      if (op && op->parse) {
  145. -        EASSERT(length > 0);
  146. +        /* |NFS41_UNMOUNT| has 0 payload */
  147. +        if (upcall->opcode != NFS41_UNMOUNT) {
  148. +            EASSERT(length > 0);
  149. +        }
  150.          status = op->parse(buffer, length, upcall);
  151.          if (status) {
  152.              eprintf("parsing of upcall '%s' failed with %d.\n",
  153. --
  154. 2.43.0
  155.  
  156. From b306de5bb93123aff74d144d2693b3013c12537b Mon Sep 17 00:00:00 2001
  157. From: Dan Shelton <dan.f.shelton@gmail.com>
  158. Date: Tue, 16 Jan 2024 12:27:50 +0100
  159. Subject: [PATCH 4/7] daemon,libtirpc: Disable buffer checks in VC19 build
  160.  
  161. Disable buffer checks in VC19 build for daemon and libtirpc,
  162. as we have drmemory for that and it causes false positives in
  163. drmemory.
  164.  
  165. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  166. ---
  167. build.vc19/libtirpc/libtirpc.vcxproj | 6 ++++++
  168.  build.vc19/nfsd/nfsd.vcxproj         | 6 ++++++
  169.  2 files changed, 12 insertions(+)
  170.  
  171. diff --git a/build.vc19/libtirpc/libtirpc.vcxproj b/build.vc19/libtirpc/libtirpc.vcxproj
  172. index e4cb86b..6d3fda8 100644
  173. --- a/build.vc19/libtirpc/libtirpc.vcxproj
  174. +++ b/build.vc19/libtirpc/libtirpc.vcxproj
  175. @@ -91,6 +91,8 @@
  176.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  177.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  178.        <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  179. +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
  180. +      <BufferSecurityCheck>false</BufferSecurityCheck>
  181.      </ClCompile>
  182.      <Link>
  183.        <SubSystem>Windows</SubSystem>
  184. @@ -109,6 +111,8 @@
  185.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  186.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  187.        <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  188. +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
  189. +      <BufferSecurityCheck>false</BufferSecurityCheck>
  190.      </ClCompile>
  191.      <Link>
  192.        <SubSystem>Windows</SubSystem>
  193. @@ -129,6 +133,7 @@
  194.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  195.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  196.        <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  197. +      <BufferSecurityCheck>false</BufferSecurityCheck>
  198.      </ClCompile>
  199.      <Link>
  200.        <SubSystem>Windows</SubSystem>
  201. @@ -151,6 +156,7 @@
  202.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  203.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  204.        <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  205. +      <BufferSecurityCheck>false</BufferSecurityCheck>
  206.      </ClCompile>
  207.      <Link>
  208.        <SubSystem>Windows</SubSystem>
  209. diff --git a/build.vc19/nfsd/nfsd.vcxproj b/build.vc19/nfsd/nfsd.vcxproj
  210. index 5e97236..df0311a 100644
  211. --- a/build.vc19/nfsd/nfsd.vcxproj
  212. +++ b/build.vc19/nfsd/nfsd.vcxproj
  213. @@ -91,6 +91,8 @@
  214.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;..\..\sys;..\..\dll;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  215.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  216.        <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  217. +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
  218. +      <BufferSecurityCheck>false</BufferSecurityCheck>
  219.      </ClCompile>
  220.      <Link>
  221.        <SubSystem>Console</SubSystem>
  222. @@ -108,6 +110,8 @@
  223.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;..\..\sys;..\..\dll;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  224.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  225.        <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  226. +      <BasicRuntimeChecks>Default</BasicRuntimeChecks>
  227. +      <BufferSecurityCheck>false</BufferSecurityCheck>
  228.      </ClCompile>
  229.      <Link>
  230.        <SubSystem>Console</SubSystem>
  231. @@ -127,6 +131,7 @@
  232.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;..\..\sys;..\..\dll;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  233.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  234.        <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  235. +      <BufferSecurityCheck>false</BufferSecurityCheck>
  236.      </ClCompile>
  237.      <Link>
  238.        <SubSystem>Console</SubSystem>
  239. @@ -148,6 +153,7 @@
  240.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;..\..\sys;..\..\dll;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  241.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  242.        <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  243. +      <BufferSecurityCheck>false</BufferSecurityCheck>
  244.      </ClCompile>
  245.      <Link>
  246.        <SubSystem>Console</SubSystem>
  247. --
  248. 2.43.0
  249.  
  250. From d3cba4c81d7f661290b5df88b3049666c0583976 Mon Sep 17 00:00:00 2001
  251. From: Dan Shelton <dan.f.shelton@gmail.com>
  252. Date: Tue, 16 Jan 2024 12:30:01 +0100
  253. Subject: [PATCH 5/7] daemon,libtirpc: Enable string literal pooling for VC19
  254.  builds
  255.  
  256. Enable string literal pooling in daemon and libtirpc for VC19 builds.
  257.  
  258. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  259. ---
  260. build.vc19/libtirpc/libtirpc.vcxproj | 4 ++++
  261.  build.vc19/nfsd/nfsd.vcxproj         | 4 ++++
  262.  2 files changed, 8 insertions(+)
  263.  
  264. diff --git a/build.vc19/libtirpc/libtirpc.vcxproj b/build.vc19/libtirpc/libtirpc.vcxproj
  265. index 6d3fda8..bb79718 100644
  266. --- a/build.vc19/libtirpc/libtirpc.vcxproj
  267. +++ b/build.vc19/libtirpc/libtirpc.vcxproj
  268. @@ -91,6 +91,7 @@
  269.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  270.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  271.        <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  272. +      <StringPooling>true</StringPooling>
  273.        <BasicRuntimeChecks>Default</BasicRuntimeChecks>
  274.        <BufferSecurityCheck>false</BufferSecurityCheck>
  275.      </ClCompile>
  276. @@ -111,6 +112,7 @@
  277.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  278.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  279.        <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  280. +      <StringPooling>true</StringPooling>
  281.        <BasicRuntimeChecks>Default</BasicRuntimeChecks>
  282.        <BufferSecurityCheck>false</BufferSecurityCheck>
  283.      </ClCompile>
  284. @@ -133,6 +135,7 @@
  285.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  286.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  287.        <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  288. +      <StringPooling>true</StringPooling>
  289.        <BufferSecurityCheck>false</BufferSecurityCheck>
  290.      </ClCompile>
  291.      <Link>
  292. @@ -156,6 +159,7 @@
  293.        <AdditionalIncludeDirectories>..\..\libtirpc\tirpc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
  294.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  295.        <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  296. +      <StringPooling>true</StringPooling>
  297.        <BufferSecurityCheck>false</BufferSecurityCheck>
  298.      </ClCompile>
  299.      <Link>
  300. diff --git a/build.vc19/nfsd/nfsd.vcxproj b/build.vc19/nfsd/nfsd.vcxproj
  301. index df0311a..42567f6 100644
  302. --- a/build.vc19/nfsd/nfsd.vcxproj
  303. +++ b/build.vc19/nfsd/nfsd.vcxproj
  304. @@ -93,6 +93,7 @@
  305.        <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  306.        <BasicRuntimeChecks>Default</BasicRuntimeChecks>
  307.        <BufferSecurityCheck>false</BufferSecurityCheck>
  308. +      <StringPooling>true</StringPooling>
  309.      </ClCompile>
  310.      <Link>
  311.        <SubSystem>Console</SubSystem>
  312. @@ -112,6 +113,7 @@
  313.        <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
  314.        <BasicRuntimeChecks>Default</BasicRuntimeChecks>
  315.        <BufferSecurityCheck>false</BufferSecurityCheck>
  316. +      <StringPooling>true</StringPooling>
  317.      </ClCompile>
  318.      <Link>
  319.        <SubSystem>Console</SubSystem>
  320. @@ -132,6 +134,7 @@
  321.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  322.        <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  323.        <BufferSecurityCheck>false</BufferSecurityCheck>
  324. +      <StringPooling>true</StringPooling>
  325.      </ClCompile>
  326.      <Link>
  327.        <SubSystem>Console</SubSystem>
  328. @@ -154,6 +157,7 @@
  329.        <LanguageStandard_C>stdc17</LanguageStandard_C>
  330.        <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
  331.        <BufferSecurityCheck>false</BufferSecurityCheck>
  332. +      <StringPooling>true</StringPooling>
  333.      </ClCompile>
  334.      <Link>
  335.        <SubSystem>Console</SubSystem>
  336. --
  337. 2.43.0
  338.  
  339. From 5b778ffa276a9c1b501a82e6bd865e7fbaf8a582 Mon Sep 17 00:00:00 2001
  340. From: Roland Mainz <roland.mainz@nrubsig.org>
  341. Date: Tue, 16 Jan 2024 15:28:12 +0100
  342. Subject: [PATCH 6/7] daemon: Increase |MAX_LOOKUP_COMPONENTS| to |128|
  343.  
  344. Increase |MAX_LOOKUP_COMPONENTS| from |8| to |128| to optimise
  345. performance for high latency links (satellite, ssh tunnel etc.).
  346.  
  347. The real value is negotiated with the NFSv4.1 server at session
  348. creation time (e.g. (|min(session->fore_chan_attrs.ca_maxoperations|,
  349. MAX_LOOKUP_COMPONENTS)|), see |max_lookup_components()| in
  350. daemon/lookup.c
  351.  
  352. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  353. ---
  354. daemon/lookup.c | 27 +++++++++++++++++++++++----
  355.  1 file changed, 23 insertions(+), 4 deletions(-)
  356.  
  357. diff --git a/daemon/lookup.c b/daemon/lookup.c
  358. index 7299152..d6509a7 100644
  359. --- a/daemon/lookup.c
  360. +++ b/daemon/lookup.c
  361. @@ -32,8 +32,23 @@
  362.  
  363.  #define LULVL 2 /* dprintf level for lookup logging */
  364.  
  365. -
  366. -#define MAX_LOOKUP_COMPONENTS 8
  367. +/*
  368. + * MAX_LOOKUP_COMPONENTS - maximum number of compound requests
  369. + * per lookup
  370. + *
  371. + * We use |128| here to pack as much data into one compound
  372. + * to optimise for high latency links (satellite, ssh tunnel etc.)
  373. + *
  374. + * The real value is negotiated with the NFSv4.1 server
  375. + * at session creation time (e.g. (|min(
  376. + * session->fore_chan_attrs.ca_maxoperations|,
  377. + * MAX_LOOKUP_COMPONENTS)|), see |max_lookup_components()| below.
  378. + *
  379. + * Linux 5.10.0-22-rt uses |ca_maxoperations==16|
  380. + * simplenfs/nfs4j    uses |ca_maxoperations==128|
  381. + *
  382. + */
  383. +#define MAX_LOOKUP_COMPONENTS 128
  384.  
  385.  /* map NFS4ERR_MOVED to an arbitrary windows error */
  386.  #define ERROR_FILESYSTEM_ABSENT ERROR_DEVICE_REMOVED
  387. @@ -275,8 +290,12 @@ out:
  388.  static uint32_t max_lookup_components(
  389.      IN const nfs41_session *session)
  390.  {
  391. -    const uint32_t comps = (session->fore_chan_attrs.ca_maxoperations - 4) / 3;
  392. -    return min(comps, MAX_LOOKUP_COMPONENTS);
  393. +#define ROUNDUPDIV(x, y) (((x)+((y)-1))/(y))
  394. +    const uint32_t comps = min(
  395. +        session->fore_chan_attrs.ca_maxoperations,
  396. +        MAX_LOOKUP_COMPONENTS);
  397. +
  398. +    return ROUNDUPDIV(comps-4, 3);
  399.  }
  400.  
  401.  static uint32_t get_component_array(
  402. --
  403. 2.43.0
  404.  
  405. From 3104b6b354678d9f40361e4a3d99042f97edd34e Mon Sep 17 00:00:00 2001
  406. From: Roland Mainz <roland.mainz@nrubsig.org>
  407. Date: Tue, 16 Jan 2024 15:35:25 +0100
  408. Subject: [PATCH 7/7] daemon: Increase |UPCALL_BUF_SIZE| to fit rename with
  409.  long paths
  410.  
  411. Increase |UPCALL_BUF_SIZE| to |8192| to fit rename with long paths.
  412.  
  413. Fixes gcc build on in a deep subdir (e.g.
  414. $ mkdir -p a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/0/1/2/3/4/5/6/7/8/9 #)
  415.  
  416. Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
  417. ---
  418. daemon/nfs41_const.h | 7 ++++++-
  419.  1 file changed, 6 insertions(+), 1 deletion(-)
  420.  
  421. diff --git a/daemon/nfs41_const.h b/daemon/nfs41_const.h
  422. index c0ef4c8..5010816 100644
  423. --- a/daemon/nfs41_const.h
  424. +++ b/daemon/nfs41_const.h
  425. @@ -40,7 +40,12 @@
  426.  #define NFS41_MAX_SERVER_CACHE  1024
  427.  #define NFS41_MAX_RPC_REQS      128
  428.  
  429. -#define UPCALL_BUF_SIZE         4096
  430. +/*
  431. + * UPCALL_BUF_SIZE - buffer size for |DeviceIoControl()|
  432. + * This must fit at least twice the maximum path length
  433. + * (for rename) plus header
  434. + */
  435. +#define UPCALL_BUF_SIZE         8192
  436.  
  437.  /*
  438.   * NFS41_MAX_COMPONENT_LEN - MaximumComponentNameLength
  439. --
  440. 2.43.0

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.

Syntax highlighting:

To highlight particular lines, prefix each line with {%HIGHLIGHT}




All content is user-submitted.
The administrators of this site (kpaste.net) are not responsible for their content.
Abuse reports should be emailed to us at