summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.cz>2014-09-24 11:15:05 +0100
committerPádraig Brady <P@draigBrady.com>2014-09-24 11:48:22 +0100
commitb47231be6813e6cb5305266e391b4bb745f27f13 (patch)
tree900dfc6c3b435477621b73cc3898cc950b41203b
parent1ff4d088927147fa1587770fdbf8aea675fc3788 (diff)
downloadcoreutils-b47231be6813e6cb5305266e391b4bb745f27f13.tar.xz
mv: use reflink=auto mode by default
On some filesystems (BTRFS), moving a file within the filesystem may cross subvolume boundaries and we can use a lightweight reflink copy, similar to what cp(1) can do, which is faster than a full file copy. This is enabled by default because it's only an optimization for the fall back copy and does not break user expectations or usability. * src/mv.c (cp_option_init): Set the reflink mode to AUTO. * NEWS: Mention the improvement.
-rw-r--r--NEWS3
-rw-r--r--src/mv.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index f25aaaf0b..077c5fcb9 100644
--- a/NEWS
+++ b/NEWS
@@ -24,6 +24,9 @@ GNU coreutils NEWS -*- outline -*-
** Improvements
+ mv will try a reflink before falling back to a standard copy, which is
+ more efficient when moving files across BTRFS subvolume boundaries.
+
References from --help and the man pages of utilities have been corrected
in various cases, and more direct links to the corresponding online
documentation are provided.
diff --git a/src/mv.c b/src/mv.c
index 6112419e2..2eacb2ca6 100644
--- a/src/mv.c
+++ b/src/mv.c
@@ -107,7 +107,7 @@ cp_option_init (struct cp_options *x)
cp_options_default (x);
x->copy_as_regular = false; /* FIXME: maybe make this an option */
- x->reflink_mode = REFLINK_NEVER;
+ x->reflink_mode = REFLINK_AUTO;
x->dereference = DEREF_NEVER;
x->unlink_dest_before_opening = false;
x->unlink_dest_after_failed_open = false;