Resolves: #1861108 - cp: default to --reflink=auto
This commit is contained in:
parent
fe6d386d13
commit
5d08d14bbc
119
coreutils-8.32-cp-reflink-auto.patch
Normal file
119
coreutils-8.32-cp-reflink-auto.patch
Normal file
@ -0,0 +1,119 @@
|
|||||||
|
From 76126e2831580d0df20530f4d6f72189bd4f0b9a Mon Sep 17 00:00:00 2001
|
||||||
|
From: Paul Eggert <eggert@cs.ucla.edu>
|
||||||
|
Date: Thu, 18 Jun 2020 22:16:24 -0700
|
||||||
|
Subject: [PATCH] cp: default to COW
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
|
||||||
|
Likewise for ‘install’. Proposed in Bug#24400, and long past due.
|
||||||
|
* NEWS:
|
||||||
|
* doc/coreutils.texi (cp invocation):
|
||||||
|
* src/copy.h (enum Reflink_type): Document this.
|
||||||
|
* src/cp.c (cp_option_init):
|
||||||
|
* src/install.c (cp_option_init): Implement this.
|
||||||
|
|
||||||
|
Upstream-commit: 25725f9d41735d176d73a757430739fb71c7d043
|
||||||
|
Signed-off-by: Kamil Dudka <kdudka@redhat.com>
|
||||||
|
---
|
||||||
|
doc/coreutils.texi | 19 ++++++++++++-------
|
||||||
|
src/copy.h | 4 ++--
|
||||||
|
src/cp.c | 2 +-
|
||||||
|
src/install.c | 2 +-
|
||||||
|
4 files changed, 16 insertions(+), 11 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/doc/coreutils.texi b/doc/coreutils.texi
|
||||||
|
index 02e0c1c..2382a16 100644
|
||||||
|
--- a/doc/coreutils.texi
|
||||||
|
+++ b/doc/coreutils.texi
|
||||||
|
@@ -8854,12 +8854,14 @@ The @var{when} value can be one of the following:
|
||||||
|
|
||||||
|
@table @samp
|
||||||
|
@item always
|
||||||
|
-The default behavior: if the copy-on-write operation is not supported
|
||||||
|
+If the copy-on-write operation is not supported
|
||||||
|
then report the failure for each file and exit with a failure status.
|
||||||
|
+Plain @option{--reflink} is equivalent to @option{--reflink=when}.
|
||||||
|
|
||||||
|
@item auto
|
||||||
|
If the copy-on-write operation is not supported then fall back
|
||||||
|
to the standard copy behavior.
|
||||||
|
+This is the default if no @option{--reflink} option is given.
|
||||||
|
|
||||||
|
@item never
|
||||||
|
Disable copy-on-write operation and use the standard copy behavior.
|
||||||
|
@@ -8868,12 +8870,6 @@ Disable copy-on-write operation and use the standard copy behavior.
|
||||||
|
This option is overridden by the @option{--link}, @option{--symbolic-link}
|
||||||
|
and @option{--attributes-only} options, thus allowing it to be used
|
||||||
|
to configure the default data copying behavior for @command{cp}.
|
||||||
|
-For example, with the following alias, @command{cp} will use the
|
||||||
|
-minimum amount of space supported by the file system.
|
||||||
|
-
|
||||||
|
-@example
|
||||||
|
-alias cp='cp --reflink=auto --sparse=always'
|
||||||
|
-@end example
|
||||||
|
|
||||||
|
@item --remove-destination
|
||||||
|
@opindex --remove-destination
|
||||||
|
@@ -8918,6 +8914,15 @@ This is useful in creating a file for use with the @command{mkswap} command,
|
||||||
|
since such a file must not have any holes.
|
||||||
|
@end table
|
||||||
|
|
||||||
|
+For example, with the following alias, @command{cp} will use the
|
||||||
|
+minimum amount of space supported by the file system.
|
||||||
|
+(Older versions of @command{cp} can also benefit from
|
||||||
|
+@option{--reflink=auto} here.)
|
||||||
|
+
|
||||||
|
+@example
|
||||||
|
+alias cp='cp --sparse=always'
|
||||||
|
+@end example
|
||||||
|
+
|
||||||
|
@optStripTrailingSlashes
|
||||||
|
|
||||||
|
@item -s
|
||||||
|
diff --git a/src/copy.h b/src/copy.h
|
||||||
|
index 874d6f7..a0ad494 100644
|
||||||
|
--- a/src/copy.h
|
||||||
|
+++ b/src/copy.h
|
||||||
|
@@ -46,10 +46,10 @@ enum Sparse_type
|
||||||
|
/* Control creation of COW files. */
|
||||||
|
enum Reflink_type
|
||||||
|
{
|
||||||
|
- /* Default to a standard copy. */
|
||||||
|
+ /* Do a standard copy. */
|
||||||
|
REFLINK_NEVER,
|
||||||
|
|
||||||
|
- /* Try a COW copy and fall back to a standard copy. */
|
||||||
|
+ /* Try a COW copy and fall back to a standard copy; this is the default. */
|
||||||
|
REFLINK_AUTO,
|
||||||
|
|
||||||
|
/* Require a COW copy and fail if not available. */
|
||||||
|
diff --git a/src/cp.c b/src/cp.c
|
||||||
|
index 0193df8..9e7ad14 100644
|
||||||
|
--- a/src/cp.c
|
||||||
|
+++ b/src/cp.c
|
||||||
|
@@ -796,7 +796,7 @@ cp_option_init (struct cp_options *x)
|
||||||
|
x->move_mode = false;
|
||||||
|
x->install_mode = false;
|
||||||
|
x->one_file_system = false;
|
||||||
|
- x->reflink_mode = REFLINK_NEVER;
|
||||||
|
+ x->reflink_mode = REFLINK_AUTO;
|
||||||
|
|
||||||
|
x->preserve_ownership = false;
|
||||||
|
x->preserve_links = false;
|
||||||
|
diff --git a/src/install.c b/src/install.c
|
||||||
|
index 4ab44a6..aef16ca 100644
|
||||||
|
--- a/src/install.c
|
||||||
|
+++ b/src/install.c
|
||||||
|
@@ -264,7 +264,7 @@ cp_option_init (struct cp_options *x)
|
||||||
|
{
|
||||||
|
cp_options_default (x);
|
||||||
|
x->copy_as_regular = true;
|
||||||
|
- x->reflink_mode = REFLINK_NEVER;
|
||||||
|
+ x->reflink_mode = REFLINK_AUTO;
|
||||||
|
x->dereference = DEREF_ALWAYS;
|
||||||
|
x->unlink_dest_before_opening = true;
|
||||||
|
x->unlink_dest_after_failed_open = false;
|
||||||
|
--
|
||||||
|
2.25.4
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
Summary: A set of basic GNU tools commonly used in shell scripts
|
Summary: A set of basic GNU tools commonly used in shell scripts
|
||||||
Name: coreutils
|
Name: coreutils
|
||||||
Version: 8.32
|
Version: 8.32
|
||||||
Release: 10%{?dist}
|
Release: 11%{?dist}
|
||||||
License: GPLv3+
|
License: GPLv3+
|
||||||
Url: https://www.gnu.org/software/coreutils/
|
Url: https://www.gnu.org/software/coreutils/
|
||||||
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
Source0: https://ftp.gnu.org/gnu/%{name}/%{name}-%{version}.tar.xz
|
||||||
@ -19,6 +19,9 @@ Patch1: coreutils-8.32-ls-removed-dir.patch
|
|||||||
# du: simplify leaf optimization for XFS (#1823247)
|
# du: simplify leaf optimization for XFS (#1823247)
|
||||||
Patch2: coreutils-8.32-leaf-opt-xfs.patch
|
Patch2: coreutils-8.32-leaf-opt-xfs.patch
|
||||||
|
|
||||||
|
# cp: default to --reflink=auto (#1861108)
|
||||||
|
Patch3: coreutils-8.32-cp-reflink-auto.patch
|
||||||
|
|
||||||
# disable the test-lock gnulib test prone to deadlock
|
# disable the test-lock gnulib test prone to deadlock
|
||||||
Patch100: coreutils-8.26-test-lock.patch
|
Patch100: coreutils-8.26-test-lock.patch
|
||||||
|
|
||||||
@ -275,6 +278,9 @@ rm -f $RPM_BUILD_ROOT%{_infodir}/dir
|
|||||||
%license COPYING
|
%license COPYING
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 30 2020 Kamil Dudka <kdudka@redhat.com> - 8.32-11
|
||||||
|
- cp: default to --reflink=auto (#1861108)
|
||||||
|
|
||||||
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org>
|
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org>
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user