- From 68c8e775425c7693338c5ea5be226d9becf97082 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Wed, 26 Feb 2025 16:45:47 +0100
- Subject: [PATCH 1/3] tests: Add winfsinfo "fsctlqueryallocatedranges" subcmd
- Add winfsinfo "fsctlqueryallocatedranges" subcmd, and
- use it in "testsparsefile1.ksh"
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- tests/sparsefiles/testsparsefile1.ksh | 76 +++++++-----
- tests/winfsinfo1/winfsinfo.c | 160 +++++++++++++++++++++++++-
- 2 files changed, 204 insertions(+), 32 deletions(-)
- diff --git a/tests/sparsefiles/testsparsefile1.ksh b/tests/sparsefiles/testsparsefile1.ksh
- index 293ade9..b541849 100644
- --- a/tests/sparsefiles/testsparsefile1.ksh
- +++ b/tests/sparsefiles/testsparsefile1.ksh
- @@ -35,6 +35,7 @@ function test_sparse_holeonly_dd
- {
- set -o errexit
- set -o nounset
- + set -o pipefail
- #set -o xtrace
- rm -f 'sparse_file_hole_only'
- @@ -45,20 +46,23 @@ function test_sparse_holeonly_dd
- /cygdrive/c/Windows/system32/fsutil sparse queryrange 'sparse_file_hole_only'
- integer fsutil_num_data_sections="$(/cygdrive/c/Windows/system32/fsutil sparse queryrange 'sparse_file_hole_only' | wc -l)"
- + integer winfsinfo_num_data_sections="$(winfsinfo fsctlqueryallocatedranges 'sparse_file_hole_only' | wc -l)"
- #
- # test whether the file is OK
- #
- - if (( fsutil_num_data_sections != 0 )) ; then
- - printf "# TEST failed, found %d data sections, expceted %d\n" \
- + if (( (fsutil_num_data_sections != 0) || (winfsinfo_num_data_sections != 0) )) ; then
- + printf "# TEST failed, found fsutil=%d/winfsinfo=%d data sections, expected %d\n" \
- fsutil_num_data_sections \
- + winfsinfo_num_data_sections \
- 0
- return 1
- fi
- - printf "\n#\n# TEST %q OK, found %d data sections\n#\n" \
- + printf "\n#\n# TEST %q OK, found fsutil=%d/winfsinfo=%d data sections\n#\n" \
- "$0" \
- - fsutil_num_data_sections
- + fsutil_num_data_sections \
- + winfsinfo_num_data_sections
- return 0
- }
- @@ -69,30 +73,33 @@ function test_sparse_holeonly_truncate
- set -o nounset
- #set -o xtrace
- - rm -f 'sparse_file_hole_only'
- - touch 'sparse_file_hole_only'
- - chattr -V +S 'sparse_file_hole_only'
- + rm -f 'sparse_file_hole_only_trunc'
- + touch 'sparse_file_hole_only_trunc'
- + chattr -V +S 'sparse_file_hole_only_trunc'
- - truncate -s $((256*1024*1024)) 'sparse_file_hole_only'
- + truncate -s $((256*1024*1024)) 'sparse_file_hole_only_trunc'
- - ls -l 'sparse_file_hole_only'
- - /cygdrive/c/Windows/system32/fsutil sparse queryrange 'sparse_file_hole_only'
- + ls -l 'sparse_file_hole_only_trunc'
- + /cygdrive/c/Windows/system32/fsutil sparse queryrange 'sparse_file_hole_only_trunc'
- - integer fsutil_num_data_sections="$(/cygdrive/c/Windows/system32/fsutil sparse queryrange 'sparse_file_hole_only' | wc -l)"
- + integer fsutil_num_data_sections="$(/cygdrive/c/Windows/system32/fsutil sparse queryrange 'sparse_file_hole_only_trunc' | wc -l)"
- + integer winfsinfo_num_data_sections="$(winfsinfo fsctlqueryallocatedranges 'sparse_file_hole_only_trunc' | wc -l)"
- #
- # test whether the file is OK
- #
- - if (( fsutil_num_data_sections != 0 )) ; then
- - printf "# TEST failed, found %d data sections, expceted %d\n" \
- + if (( (fsutil_num_data_sections != 0) || (winfsinfo_num_data_sections != 0) )) ; then
- + printf "# TEST failed, found fsutil=%d/winfsinfo=%d data sections, expected %d\n" \
- fsutil_num_data_sections \
- + winfsinfo_num_data_sections \
- 0
- return 1
- fi
- - printf "\n#\n# TEST %q OK, found %d data sections\n#\n" \
- + printf "\n#\n# TEST %q OK, found fsutil=%d/winfsinfo=%d data sections\n#\n" \
- "$0" \
- - fsutil_num_data_sections
- + fsutil_num_data_sections \
- + winfsinfo_num_data_sections
- return 0
- }
- @@ -111,20 +118,23 @@ function test_normal_file
- /cygdrive/c/Windows/system32/fsutil sparse queryrange 'test_normal_file'
- integer fsutil_num_data_sections="$(/cygdrive/c/Windows/system32/fsutil sparse queryrange 'test_normal_file' | wc -l)"
- + integer winfsinfo_num_data_sections="$(winfsinfo fsctlqueryallocatedranges 'test_normal_file' | wc -l)"
- #
- # test whether the file is OK
- #
- - if (( fsutil_num_data_sections != 1 )) ; then
- - printf "# TEST failed, found %d data sections, expceted %d\n" \
- + if (( (fsutil_num_data_sections != 1) || (winfsinfo_num_data_sections != 1) )) ; then
- + printf "# TEST failed, found fsutil=%d/winfsinfo=%d data sections, expected %d\n" \
- fsutil_num_data_sections \
- - 0
- + winfsinfo_num_data_sections \
- + 1
- return 1
- fi
- - printf "\n#\n# TEST %q OK, found %d data sections\n#\n" \
- + printf "\n#\n# TEST %q OK, found fsutil=%d/winfsinfo=%d data sections\n#\n" \
- "$0" \
- - fsutil_num_data_sections
- + fsutil_num_data_sections \
- + winfsinfo_num_data_sections
- return 0
- }
- @@ -192,21 +202,25 @@ function test_multihole_sparsefile1
- /cygdrive/c/Windows/system32/fsutil sparse queryrange 'mysparsefile'
- integer fsutil_num_data_sections="$(/cygdrive/c/Windows/system32/fsutil sparse queryrange 'mysparsefile' | wc -l)"
- + integer winfsinfo_num_data_sections="$(winfsinfo fsctlqueryallocatedranges 'mysparsefile' | wc -l)"
- #
- # test whether the file is OK
- #
- - if (( fsutil_num_data_sections != (c.end_data_section-c.start_data_section) )) ; then
- - printf "# TEST failed, found %d data sections, expceted %d\n" \
- + if (( (fsutil_num_data_sections != (c.end_data_section-c.start_data_section)) || \
- + (winfsinfo_num_data_sections != (c.end_data_section-c.start_data_section)) )) ; then
- + printf "# TEST failed, found fsutil=%d/winfsinfo=%d data sections, expected %d\n" \
- fsutil_num_data_sections \
- + winfsinfo_num_data_sections \
- $((c.end_data_section-c.start_data_section))
- return 1
- fi
- - printf "\n#\n# TEST %q OK, found %d data sections\n#\n" \
- + printf "\n#\n# TEST %q OK, found fsutil=%d/winfsinfo=%d data sections\n#\n" \
- "$0" \
- - fsutil_num_data_sections
- + fsutil_num_data_sections \
- + winfsinfo_num_data_sections
- return 0
- }
- @@ -231,21 +245,23 @@ function test_sparse_punchhole1
- /cygdrive/c/Windows/system32/fsutil sparse queryrange 'sparse_file_punchhole'
- integer fsutil_num_data_sections="$(/cygdrive/c/Windows/system32/fsutil sparse queryrange 'sparse_file_punchhole' | wc -l)"
- + integer winfsinfo_num_data_sections="$(winfsinfo fsctlqueryallocatedranges 'sparse_file_punchhole' | wc -l)"
- #
- # test whether the file is OK
- #
- - if (( fsutil_num_data_sections != 2 )) ; then
- - printf "# TEST %q failed, found %d data sections, expceted %d\n" \
- - "$0" \
- + if (( (fsutil_num_data_sections != 2) || (winfsinfo_num_data_sections != 2) )) ; then
- + printf "# TEST failed, found fsutil=%d/winfsinfo=%d data sections, expected %d\n" \
- fsutil_num_data_sections \
- + winfsinfo_num_data_sections \
- 2
- return 1
- fi
- - printf "\n#\n# TEST %q OK, found %d data sections\n#\n" \
- + printf "\n#\n# TEST %q OK, found fsutil=%d/winfsinfo=%d data sections\n#\n" \
- "$0" \
- - fsutil_num_data_sections
- + fsutil_num_data_sections \
- + winfsinfo_num_data_sections
- return 0
- }
- @@ -256,8 +272,6 @@ function test_sparse_punchhole1
- #
- set -o errexit
- -PATH='/bin:/usr/bin'
- -
- builtin basename
- builtin rm
- builtin wc
- diff --git a/tests/winfsinfo1/winfsinfo.c b/tests/winfsinfo1/winfsinfo.c
- index 4772428..6415476 100644
- --- a/tests/winfsinfo1/winfsinfo.c
- +++ b/tests/winfsinfo1/winfsinfo.c
- @@ -981,6 +981,160 @@ done:
- return res;
- }
- +static
- +int fsctlqueryallocatedranges(const char *progname, const char *filename)
- +{
- + HANDLE hFile;
- +
- + FILE_STANDARD_INFO finfo;
- + bool ok;
- +
- + DWORD bytesReturned = 0;
- + size_t max_ranges_per_query = 2;
- + PFILE_ALLOCATED_RANGE_BUFFER ranges = NULL;
- + FILE_ALLOCATED_RANGE_BUFFER inputBuffer;
- + /*
- + * |lastReturnedRange| - We start counting at |1| for
- + * compatibility with "fsutil sparse queryrange"
- + */
- + size_t lastReturnedRange = 1;
- + int retval = 0;
- + size_t i;
- + size_t cycle;
- + DWORD numRangesReturned;
- + DWORD lasterr;
- +
- + (void)memset(&finfo, 0, sizeof(finfo));
- +
- + ranges = malloc((sizeof(FILE_ALLOCATED_RANGE_BUFFER) * max_ranges_per_query));
- + if (ranges == NULL) {
- + (void)fprintf(stderr, "%s: Error out of memory\n", progname);
- + return 1;
- + }
- +
- + hFile = CreateFileA(filename,
- + GENERIC_READ,
- + FILE_SHARE_READ,
- + NULL,
- + OPEN_EXISTING,
- + FILE_ATTRIBUTE_NORMAL,
- + NULL);
- + if (hFile == INVALID_HANDLE_VALUE) {
- + (void)fprintf(stderr,
- + "%s: Error opening file '%s', lasterr=%d\n",
- + progname,
- + filename,
- + (int)GetLastError());
- + return 1;
- + }
- +
- + ok = GetFileInformationByHandleEx(hFile, FileStandardInfo, &finfo,
- + sizeof(finfo));
- + if (!ok) {
- + (void)fprintf(stderr, "%s: GetFileInformationByHandleEx() "
- + "error. GetLastError()==%d.\n",
- + progname,
- + (int)GetLastError());
- + retval = 1;
- + goto out;
- + }
- +
- + inputBuffer.FileOffset.QuadPart = 0ULL;
- + /*
- + * Set |inputBuffer.Length.QuadPart| to a value to query all
- + * data ranges in a file
- + *
- + * Notes:
- + * - |FILE_STANDARD_INFO.AllocationSize| can be zero on some
- + * filesystems, smaller than |FILE_STANDARD_INFO.EndOfFile|
- + * for sparse files and larger than
- + * |FILE_STANDARD_INFO.EndOfFile| for normal files, or value
- + * set by an user
- + * - Also add 1GB (0x40000000) to test the API
- + */
- + inputBuffer.Length.QuadPart =
- + max(finfo.AllocationSize.QuadPart,
- + finfo.EndOfFile.QuadPart) +
- + 0x40000000;
- +
- + for (cycle = 0 ; ; cycle ++) {
- +retry_fsctl:
- + if (!DeviceIoControl(hFile,
- + FSCTL_QUERY_ALLOCATED_RANGES,
- + &inputBuffer, 1*sizeof(FILE_ALLOCATED_RANGE_BUFFER),
- + ranges, (sizeof(FILE_ALLOCATED_RANGE_BUFFER) * max_ranges_per_query),
- + &bytesReturned,
- + NULL)) {
- + lasterr = GetLastError();
- + if (lasterr == ERROR_MORE_DATA) {
- + /*
- + * Windows BUG: NTFS on Win10 returns the number of
- + * bytes we passed in, not the number of bytes which
- + * we should allocate
- + */
- + max_ranges_per_query+=2;
- + ranges = realloc(ranges,
- + (sizeof(FILE_ALLOCATED_RANGE_BUFFER) * max_ranges_per_query));
- + if (ranges == NULL) {
- + (void)fprintf(stderr, "%s: Error out of memory\n",
- + progname);
- + retval = 1;
- + goto out;
- + }
- +
- + /* |memset(..., 0, ...)| only here for debuging */
- + (void)memset(ranges, 0, sizeof(FILE_ALLOCATED_RANGE_BUFFER) * max_ranges_per_query);
- + goto retry_fsctl;
- + }
- +
- + retval = 1;
- + goto out;
- + }
- +
- + numRangesReturned = bytesReturned / sizeof(FILE_ALLOCATED_RANGE_BUFFER);
- +
- + if (numRangesReturned > 0) {
- + /*
- + * If we do more than one query make sure the data range
- + * offset we used to start the next query is the same
- + * as the first returned data range (both should be
- + * identical in offset)
- + */
- + if (cycle > 0) {
- + if ((ranges[0].FileOffset.QuadPart != inputBuffer.FileOffset.QuadPart)) {
- + (void)fprintf(stderr,
- + "%s: Internal error: Restart query did not return "
- + "the same data range offset\n",
- + progname);
- + retval = 1;
- + goto out;
- + }
- + }
- +
- + for (i = 0; i < numRangesReturned; i++) {
- + if ((i < max_ranges_per_query) &&
- + ((cycle > 0)?(i > 0):true)) {
- + (void)printf("Data range[%ld]: Offset: 0x%llx, Length: 0x%llx\n",
- + (unsigned long)lastReturnedRange++,
- + (unsigned long long)ranges[i].FileOffset.QuadPart,
- + (unsigned long long)ranges[i].Length.QuadPart);
- + }
- + }
- +
- + inputBuffer.FileOffset.QuadPart = ranges[i-1].FileOffset.QuadPart;
- + }
- +
- + /* Done ? */
- + if (numRangesReturned < max_ranges_per_query)
- + break;
- + }
- +
- +out:
- + (void)CloseHandle(hFile);
- + return retval;
- +}
- +
- +
- static
- void usage(void)
- {
- @@ -997,7 +1151,8 @@ void usage(void)
- "filecasesensitiveinfo|"
- "getfiletime|"
- "nfs3attr|"
- - "fileremoteprotocolinfo"
- + "fileremoteprotocolinfo|"
- + "fsctlqueryallocatedranges"
- "> path\n");
- }
- @@ -1056,6 +1211,9 @@ int main(int ac, char *av[])
- else if (!strcmp(subcmd, "fileremoteprotocolinfo")) {
- return get_file_remote_protocol_info(av[0], av[2]);
- }
- + else if (!strcmp(subcmd, "fsctlqueryallocatedranges")) {
- + return fsctlqueryallocatedranges(av[0], av[2]);
- + }
- else {
- (void)fprintf(stderr, "%s: Unknown subcmd '%s'\n", av[0], subcmd);
- return EXIT_FAILURE;
- --
- 2.45.1
- From 9a730fb4f446eabe61433f66e6e735e5ff66b136 Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Wed, 26 Feb 2025 16:48:52 +0100
- Subject: [PATCH 2/3] daemon: |FSCTL_QUERY_ALLOCATED_RANGES| should limit it's
- search to the given length
- |FSCTL_QUERY_ALLOCATED_RANGES| should limit it's search for more data
- ranges to the given |FILE_ALLOCATED_RANGE_BUFFER.Length|.
- Reported-by: Lionel Cons <lionelcons1972@gmail.com>
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- daemon/fsctl.c | 16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
- diff --git a/daemon/fsctl.c b/daemon/fsctl.c
- index dfff5a4..12fc2ce 100644
- --- a/daemon/fsctl.c
- +++ b/daemon/fsctl.c
- @@ -58,6 +58,7 @@ out:
- static
- int query_sparsefile_datasections(nfs41_open_state *state,
- uint64_t start_offset,
- + uint64_t end_offset,
- FILE_ALLOCATED_RANGE_BUFFER *outbuffer,
- size_t out_maxrecords,
- size_t *restrict res_num_records)
- @@ -175,7 +176,21 @@ int query_sparsefile_datasections(nfs41_open_state *state,
- outbuffer[i].Length.QuadPart = data_size;
- (*res_num_records)++;
- + if (outbuffer[i].FileOffset.QuadPart > end_offset) {
- + DPRINTF(QARLVL,
- + ("end offset reached, "
- + "outbuffer[%d].FileOffset.QuadPart(=%lld) > end_offset(=%lld)\n",
- + (int)i,
- + (long long)outbuffer[i].FileOffset.QuadPart,
- + (long long)end_offset));
- + break;
- + }
- +
- if (data_seek_sr_eof || hole_seek_sr_eof) {
- + DPRINTF(QARLVL,
- + ("EOF reached (data_seek_sr_eof=%d, hole_seek_sr_eof=%d)\n",
- + (int)data_seek_sr_eof,
- + (int)hole_seek_sr_eof));
- break;
- }
- }
- @@ -223,6 +238,7 @@ int handle_queryallocatedranges(void *daemon_context,
- status = query_sparsefile_datasections(state,
- args->inrange.FileOffset.QuadPart,
- + args->inrange.FileOffset.QuadPart+args->inrange.Length.QuadPart,
- outbuffer,
- num_records,
- &res_num_records);
- --
- 2.45.1
- From f0c95fcc2debb40ab65932e5339fb92e51cb523b Mon Sep 17 00:00:00 2001
- From: Roland Mainz <roland.mainz@nrubsig.org>
- Date: Wed, 26 Feb 2025 17:50:59 +0100
- Subject: [PATCH 3/3] tests: Fix whitespace issues with tests/cthon04/*.patch
- patches
- Fix whitespace issues with tests/cthon04/*.patch patches, somehow
- the whiitespaces got mangled to death, and could no longer be applied:
- ---- snip ----
- git clone https://github.com/kofemann/ms-nfs41-client.git
- git clone git://git.linux-nfs.org/projects/steved/cthon04.git
- cd cthon04/
- git config --global --add safe.directory "$PWD"
- git checkout 6c9abfd6907b2b43036af111cc600ab60ef804e5
- git am ../ms-nfs41-client/tests/cthon04/*.patch
- Cloning into 'ms-nfs41-client'...
- remote: Enumerating objects: 8594, done.
- remote: Counting objects: 100% (615/615), done.
- remote: Compressing objects: 100% (348/348), done.
- remote: Total 8594 (delta 408), reused 408 (delta 258), pack-reused
- 7979 (from 2)
- Receiving objects: 100% (8594/8594), 3.35 MiB | 549.00 KiB/s, done.
- Resolving deltas: 100% (6379/6379), done.
- Cloning into 'cthon04'...
- remote: Counting objects: 363, done.
- remote: Compressing objects: 100% (162/162), done.
- remote: Total 363 (delta 233), reused 303 (delta 200)
- Receiving objects: 100% (363/363), 143.39 KiB | 169.00 KiB/s, done.
- Resolving deltas: 100% (233/233), done.
- Note: switching to '6c9abfd6907b2b43036af111cc600ab60ef804e5'.
- HEAD is now at 6c9abfd Cleaned up more warnings
- Applying: tools: Cygwin 3.6 port
- error: corrupt patch at line 21
- Patch failed at 0001 tools: Cygwin 3.6 port
- hint: Use 'git am --show-current-patch=diff' to see the failed patch
- When you have resolved this problem, run "git am --continue".
- If you prefer to skip this patch, run "git am --skip" instead.
- To restore the original branch and stop patching, run "git am --abort".
- ---- snip ----
- Reported-by: Sebastian Feld <sebastian.n.feld@gmail.com>
- Signed-off-by: Cedric Blancher <cedric.blancher@gmail.com>
- ---
- .../cthon04/0001-tools-Cygwin-3.6-port.patch | 29 ++++++++++---------
- ...-for-ms-nfs41-client-POSIX-symlink-t.patch | 7 +++--
- .../0003-lock-Fix-issue-with-tlock-path.patch | 11 +++----
- ...CK-Disable-tests-which-cannot-work-o.patch | 15 +++++-----
- 4 files changed, 33 insertions(+), 29 deletions(-)
- diff --git a/tests/cthon04/0001-tools-Cygwin-3.6-port.patch b/tests/cthon04/0001-tools-Cygwin-3.6-port.patch
- index e0da6c1..df9def9 100644
- --- a/tests/cthon04/0001-tools-Cygwin-3.6-port.patch
- +++ b/tests/cthon04/0001-tools-Cygwin-3.6-port.patch
- @@ -16,7 +16,7 @@ index 6b231a0..e8dcca3 100644
- --- a/tools/dirdmp.c
- +++ b/tools/dirdmp.c
- @@ -7,8 +7,8 @@
- -
- +
- #include <sys/param.h>
- #include <sys/types.h>
- -#include <dirent.h>
- @@ -26,21 +26,21 @@ index 6b231a0..e8dcca3 100644
- #include <stdio.h>
- #include <stdlib.h>
- @@ -38,7 +38,7 @@ main(argc, argv)
- - int argc;
- - char *argv[];
- + int argc;
- + char *argv[];
- {
- -#if defined(LINUX) || defined (AIX)
- +#if defined(LINUX) || defined(__CYGWIN__) || defined (AIX)
- - fprintf(stderr, "dirdmp is not supported on this platform.\n");
- - exit(1);
- + fprintf(stderr, "dirdmp is not supported on this platform.\n");
- + exit(1);
- #else
- @@ -50,7 +50,7 @@ main(argc, argv)
- #endif /* LINUX || AIX */
- }
- -
- +
- -#if !(defined(LINUX) || defined(AIX))
- +#if !(defined(LINUX) || defined(__CYGWIN__) || defined(AIX))
- -
- +
- static void
- print(dir)
- diff --git a/tools/dirprt.c b/tools/dirprt.c
- @@ -48,13 +48,14 @@ index a0630eb..acb9ec3 100644
- --- a/tools/dirprt.c
- +++ b/tools/dirprt.c
- @@ -72,7 +72,7 @@ print(dir)
- - return;
- - }
- - while ((dp = readdir(dirp)) != NULL) {
- + return;
- + }
- + while ((dp = readdir(dirp)) != NULL) {
- -#if defined(SVR3) || defined(SVR4) || defined(LINUX)
- +#if defined(SVR3) || defined(SVR4) || defined(LINUX) || defined(__CYGWIN__)
- - printf("%5ld %5ld %5d %s\n", (long)telldir(dirp),
- - (long)dp->d_ino,
- - dp->d_reclen, dp->d_name);
- ---
- + printf("%5ld %5ld %5d %s\n", (long)telldir(dirp),
- + (long)dp->d_ino,
- + dp->d_reclen, dp->d_name);
- +--
- 2.45.1
- +
- diff --git a/tests/cthon04/0002-basic-Workaround-for-ms-nfs41-client-POSIX-symlink-t.patch b/tests/cthon04/0002-basic-Workaround-for-ms-nfs41-client-POSIX-symlink-t.patch
- index a48ad84..007c958 100644
- --- a/tests/cthon04/0002-basic-Workaround-for-ms-nfs41-client-POSIX-symlink-t.patch
- +++ b/tests/cthon04/0002-basic-Workaround-for-ms-nfs41-client-POSIX-symlink-t.patch
- @@ -20,11 +20,12 @@ index d65eb3a..f993631 100644
- @@ -43,7 +43,7 @@ static int Tflag = 0; /* print timing */
- static int Fflag = 0; /* test function only; set count to 1, negate -t */
- static int Nflag = 0; /* Suppress directory operations */
- -
- +
- -#define SNAME "/this/is/a/symlink" /* symlink prefix */
- +#define SNAME "/dev/this/is/a/symlink" /* symlink prefix */
- -
- +
- static void
- usage()
- ---
- +--
- 2.45.1
- +
- diff --git a/tests/cthon04/0003-lock-Fix-issue-with-tlock-path.patch b/tests/cthon04/0003-lock-Fix-issue-with-tlock-path.patch
- index 9a594f6..45dd4ee 100644
- --- a/tests/cthon04/0003-lock-Fix-issue-with-tlock-path.patch
- +++ b/tests/cthon04/0003-lock-Fix-issue-with-tlock-path.patch
- @@ -15,13 +15,14 @@ index 21b09a5..4db16e2 100755
- --- a/lock/runtests
- +++ b/lock/runtests
- @@ -64,7 +64,7 @@ do
- - ;;
- - esac
- - echo ""
- + ;;
- + esac
- + echo ""
- - $i $TESTARGS $NFSTESTDIR
- + ./$i $TESTARGS $NFSTESTDIR
- done
- -
- +
- echo "Congratulations, you passed the locking tests!"
- ---
- +--
- 2.45.1
- +
- diff --git a/tests/cthon04/0004-special-tools-HACK-Disable-tests-which-cannot-work-o.patch b/tests/cthon04/0004-special-tools-HACK-Disable-tests-which-cannot-work-o.patch
- index 5b8a339..6664fa4 100644
- --- a/tests/cthon04/0004-special-tools-HACK-Disable-tests-which-cannot-work-o.patch
- +++ b/tests/cthon04/0004-special-tools-HACK-Disable-tests-which-cannot-work-o.patch
- @@ -20,10 +20,10 @@ index 77215c1..36f4978 100644
- @@ -3,9 +3,9 @@
- # 1.4 Lachman ONC Test Suite source
- #
- -
- +
- -TESTS=op_unlk op_ren op_chmod dupreq excltest negseek rename holey \
- +TESTS=op_unlk op_chmod dupreq excltest negseek rename holey \
- - truncate nfsidem nstat stat stat2 touchn fstat rewind \
- + truncate nfsidem nstat stat stat2 touchn fstat rewind \
- - telldir bigfile bigfile2 freesp
- + telldir bigfile bigfile2 freesp
- DOSRUNFILES = scripts/*.bat
- @@ -35,12 +35,12 @@ index 8f099fa..385ac61 100644
- +++ b/special/runtests.wrk
- @@ -29,7 +29,7 @@ if [ "$CIFS" = "yes" ] && echo $MNTOPTIONS | grep -E "vers=2|vers=3" > /dev/null
- then
- - echo "skipping test; not supported by SMB 2.0 and higher versions"
- + echo "skipping test; not supported by SMB 2.0 and higher versions"
- else
- - TMPDIR= ./op_ren
- + : # TMPDIR= ./op_ren
- fi
- -
- +
- echo ""
- diff --git a/tools/Makefile b/tools/Makefile
- index ce2cbc7..8cc1903 100644
- @@ -49,11 +49,12 @@ index ce2cbc7..8cc1903 100644
- @@ -8,7 +8,7 @@
- # 'make copy DESTDIR=path' copies test programs to path
- # 'make dist DESTDIR=path' copies sources to path
- -
- +
- -TESTS = tcp tcpd udp udpd dirdmp dirprt pmaptst pmapbrd
- +TESTS = tcp tcpd udp udpd dirdmp dirprt
- -
- +
- # dirdmp apparently doesn't work with Linux 2.2. So for Linux systems,
- # comment out the above definition and use this one.
- ---
- +--
- 2.45.1
- +
- --
- 2.45.1
msnfs41client: Patches for winfsinfo queryallocatedranges, queryallocatedranges length limit fix, tests+misc, 2025-02-26
Posted by Anonymous on Wed 26th Feb 2025 18:15
raw | new post
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.