mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-03-14 19:55:12 +01:00
Merge branch 'remove-btrfs-optimization' into 'main'
gfileutils: Remove outdated BTRFS fsync optimization from set_contents See merge request GNOME/glib!2425
This commit is contained in:
commit
dc8fa924ae
@ -56,11 +56,6 @@
|
|||||||
#include "gstdioprivate.h"
|
#include "gstdioprivate.h"
|
||||||
#include "glibintl.h"
|
#include "glibintl.h"
|
||||||
|
|
||||||
#ifdef HAVE_LINUX_MAGIC_H /* for btrfs check */
|
|
||||||
#include <linux/magic.h>
|
|
||||||
#include <sys/vfs.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SECTION:fileutils
|
* SECTION:fileutils
|
||||||
@ -1091,23 +1086,6 @@ fd_should_be_fsynced (int fd,
|
|||||||
#ifdef HAVE_FSYNC
|
#ifdef HAVE_FSYNC
|
||||||
struct stat statbuf;
|
struct stat statbuf;
|
||||||
|
|
||||||
#ifdef BTRFS_SUPER_MAGIC
|
|
||||||
{
|
|
||||||
struct statfs buf;
|
|
||||||
|
|
||||||
/* On Linux, on btrfs, skip the fsync since rename-over-existing is
|
|
||||||
* guaranteed to be atomic and this is the only case in which we
|
|
||||||
* would fsync() anyway.
|
|
||||||
*
|
|
||||||
* See https://btrfs.wiki.kernel.org/index.php/FAQ#What_are_the_crash_guarantees_of_overwrite-by-rename.3F
|
|
||||||
*/
|
|
||||||
|
|
||||||
if ((flags & G_FILE_SET_CONTENTS_CONSISTENT) &&
|
|
||||||
fstatfs (fd, &buf) == 0 && buf.f_type == BTRFS_SUPER_MAGIC)
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
#endif /* BTRFS_SUPER_MAGIC */
|
|
||||||
|
|
||||||
/* If the final destination exists and is > 0 bytes, we want to sync the
|
/* If the final destination exists and is > 0 bytes, we want to sync the
|
||||||
* newly written file to ensure the data is on disk when we rename over
|
* newly written file to ensure the data is on disk when we rename over
|
||||||
* the destination. Otherwise if we get a system crash we can lose both
|
* the destination. Otherwise if we get a system crash we can lose both
|
||||||
|
@ -282,7 +282,6 @@ headers = [
|
|||||||
'grp.h',
|
'grp.h',
|
||||||
'inttypes.h',
|
'inttypes.h',
|
||||||
'limits.h',
|
'limits.h',
|
||||||
'linux/magic.h',
|
|
||||||
'locale.h',
|
'locale.h',
|
||||||
'mach/mach_time.h',
|
'mach/mach_time.h',
|
||||||
'memory.h',
|
'memory.h',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user