diff options
Diffstat (limited to 'gnome-base/gvfs/files/gvfs-1.6.4-O_TRUNC-fix.patch')
-rw-r--r-- | gnome-base/gvfs/files/gvfs-1.6.4-O_TRUNC-fix.patch | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/gnome-base/gvfs/files/gvfs-1.6.4-O_TRUNC-fix.patch b/gnome-base/gvfs/files/gvfs-1.6.4-O_TRUNC-fix.patch deleted file mode 100644 index b5d096d1b4c2..000000000000 --- a/gnome-base/gvfs/files/gvfs-1.6.4-O_TRUNC-fix.patch +++ /dev/null @@ -1,77 +0,0 @@ -From 0d1dc99a87d354e8af9cb0f98827bafb2cd7f577 Mon Sep 17 00:00:00 2001 -From: Tomas Bzatek <tbzatek@redhat.com> -Date: Wed, 13 Oct 2010 16:25:51 +0200 -Subject: [PATCH] fuse: Add O_TRUNC support for open() - -This requires kernel version 2.6.24 or later. - -See bug 627567 for details. ---- - client/gvfsfusedaemon.c | 16 +++++++++++----- - 1 files changed, 11 insertions(+), 5 deletions(-) - -diff --git a/client/gvfsfusedaemon.c b/client/gvfsfusedaemon.c -index 13cb74d..bc3090d 100644 ---- a/client/gvfsfusedaemon.c -+++ b/client/gvfsfusedaemon.c -@@ -948,7 +948,7 @@ setup_input_stream (GFile *file, FileHandle *fh) - } - - static gint --setup_output_stream (GFile *file, FileHandle *fh) -+setup_output_stream (GFile *file, FileHandle *fh, int flags) - { - GError *error = NULL; - gint result = 0; -@@ -968,7 +968,10 @@ setup_output_stream (GFile *file, FileHandle *fh) - - if (!fh->stream) - { -- fh->stream = g_file_append_to (file, 0, NULL, &error); -+ if (flags & O_TRUNC) -+ fh->stream = g_file_replace (file, NULL, FALSE, 0, NULL, &error); -+ else -+ fh->stream = g_file_append_to (file, 0, NULL, &error); - if (fh->stream) - fh->pos = g_seekable_tell (G_SEEKABLE (fh->stream)); - } -@@ -1024,7 +1027,7 @@ vfs_open (const gchar *path, struct fuse_file_info *fi) - set_pid_for_file (file); - - if (fi->flags & O_WRONLY || fi->flags & O_RDWR) -- result = setup_output_stream (file, fh); -+ result = setup_output_stream (file, fh, fi->flags); - else - result = setup_input_stream (file, fh); - -@@ -1406,7 +1409,7 @@ vfs_write (const gchar *path, const gchar *buf, size_t len, off_t offset, - { - g_mutex_lock (fh->mutex); - -- result = setup_output_stream (file, fh); -+ result = setup_output_stream (file, fh, 0); - if (result == 0) - { - result = write_stream (fh, buf, len, offset); -@@ -1857,7 +1860,7 @@ vfs_ftruncate (const gchar *path, off_t size, struct fuse_file_info *fi) - { - g_mutex_lock (fh->mutex); - -- result = setup_output_stream (file, fh); -+ result = setup_output_stream (file, fh, 0); - - if (result == 0) - { -@@ -2336,6 +2339,9 @@ vfs_init (struct fuse_conn_info *conn) - subthread_main_loop = g_main_loop_new (NULL, FALSE); - subthread = g_thread_create ((GThreadFunc) subthread_main, NULL, FALSE, NULL); - -+ /* Indicate O_TRUNC support for open() */ -+ conn->want |= FUSE_CAP_ATOMIC_O_TRUNC; -+ - return NULL; - } - --- -1.7.3.1 - |