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.