Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2023-12-01 00:36:35 +0300
committerCorinna Vinschen <corinna@vinschen.de>2023-12-01 00:37:35 +0300
commit832e91422c4ae9b2dcd0c307779f3dd53ee9c0ac (patch)
tree0d36ea9890619b32e82b0df10d9f9842cb1509cd /winsup
parent8b01c5d6903fbcbb14c52db45c12494b53493c5a (diff)
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 <corinna@vinschen.de>
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/local_includes/path.h4
-rw-r--r--winsup/cygwin/release/3.5.03
-rw-r--r--winsup/doc/new-features.xml5
-rw-r--r--winsup/doc/utils.xml1
4 files changed, 11 insertions, 2 deletions
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.
</para></listitem>
+<listitem><para>
+Enable automatic sparsifying of files on SSDs, independent of the
+"sparse" mount mode.
+</para></listitem>
+
</itemizedlist>
</sect2>
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.
</screen>