From 832e91422c4ae9b2dcd0c307779f3dd53ee9c0ac Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 30 Nov 2023 22:36:35 +0100 Subject: Cygwin: sparse support: enable automatic sparsifying of files on SSDs Given that SSDs don't have a seek penalty, we can enable automatic sparsifying of files on SSDs, even if the "sparse" mount option is not set. Signed-off-by: Corinna Vinschen --- winsup/cygwin/local_includes/path.h | 4 ++-- winsup/cygwin/release/3.5.0 | 3 +++ winsup/doc/new-features.xml | 5 +++++ winsup/doc/utils.xml | 1 + 4 files changed, 11 insertions(+), 2 deletions(-) (limited to 'winsup') diff --git a/winsup/cygwin/local_includes/path.h b/winsup/cygwin/local_includes/path.h index c7f113f87..d19721e0c 100644 --- a/winsup/cygwin/local_includes/path.h +++ b/winsup/cygwin/local_includes/path.h @@ -174,8 +174,8 @@ class path_conv bool isgood_inode (ino_t ino) const; bool support_sparse () const { - return (mount_flags & MOUNT_SPARSE) - && (fs_flags () & FILE_SUPPORTS_SPARSE_FILES); + return (fs_flags () & FILE_SUPPORTS_SPARSE_FILES) + && (fs.is_ssd () || (mount_flags & MOUNT_SPARSE)); } int has_dos_filenames_only () const {return mount_flags & MOUNT_DOS;} int has_buggy_reopen () const {return fs.has_buggy_reopen ();} diff --git a/winsup/cygwin/release/3.5.0 b/winsup/cygwin/release/3.5.0 index 3b6df951d..d0a6c2fc8 100644 --- a/winsup/cygwin/release/3.5.0 +++ b/winsup/cygwin/release/3.5.0 @@ -55,3 +55,6 @@ What changed: https://www.austingroupbugs.net/view.php?id=1674 - FIFOs now also work over NFS. + +- Enable automatic sparsifying of files on SSDs, independent of the + "sparse" mount mode. diff --git a/winsup/doc/new-features.xml b/winsup/doc/new-features.xml index c5e6cdd7f..56509bdc3 100644 --- a/winsup/doc/new-features.xml +++ b/winsup/doc/new-features.xml @@ -82,6 +82,11 @@ New API call: fallocate (Linux-specific). FIFOs now also work over NFS. + +Enable automatic sparsifying of files on SSDs, independent of the +"sparse" mount mode. + + diff --git a/winsup/doc/utils.xml b/winsup/doc/utils.xml index ad17c9796..f79a928df 100644 --- a/winsup/doc/utils.xml +++ b/winsup/doc/utils.xml @@ -1933,6 +1933,7 @@ D: on /d type fat (binary,user,noumount) (default). sparse - Switch on support for sparse files. This option only makes sense on NTFS and then only if you really need sparse files. + This flag is always silently enabled on SSD drives. text - Files default to CRLF text mode line endings. -- cgit v1.2.3