***/
#include <sys/statfs.h>
+#include <linux/fs.h>
#include <fcntl.h>
#include "strv.h"
case IMAGE_GPT:
new_path = strappenda("/var/lib/container/", new_name, ".gpt");
- r = copy_file_atomic(i->path, new_path, read_only ? 0444 : 0644, false);
+ r = copy_file_atomic(i->path, new_path, read_only ? 0444 : 0644, false, FS_NOCOW_FL);
break;
default:
if (chmod(i->path, (st.st_mode & 0444) | (b ? 0000 : 0200)) < 0)
return -errno;
+
+ /* If the images is now read-only, it's a good time to
+ * defrag it, given that no write patterns will
+ * fragment it again. */
+ if (b)
+ (void) btrfs_defrag(i->path);
break;
}