backport treating FUSE as netfs for s390x

This commit is contained in:
Dusty Mabe 2018-03-01 16:03:10 -05:00
parent 62c6ccb47b
commit 2acd02cd70
No known key found for this signature in database
GPG Key ID: 3302DBD73952E671
2 changed files with 71 additions and 1 deletions

View File

@ -0,0 +1,64 @@
From 50b1f9b63f047f721dd6ad3d2d1913843db13674 Mon Sep 17 00:00:00 2001
From: Colin Walters <walters@verbum.org>
Date: Thu, 1 Mar 2018 13:01:12 -0500
Subject: [PATCH] compose: Also treat FUSE as a netfs
Fedora is apparently currently using sshfs because S390 is in a different
location than the main servers.
Since it seems nontrivial to detect just sshfs, and FUSE is problematic in
general, let's just do the the not-horrific-on-netfs path for all FUSE mounts.
Closes: #1285
Approved by: jlebon
---
src/app/rpmostree-compose-builtin-tree.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/src/app/rpmostree-compose-builtin-tree.c b/src/app/rpmostree-compose-builtin-tree.c
index 06ab73a..dc2cbc8 100644
--- a/src/app/rpmostree-compose-builtin-tree.c
+++ b/src/app/rpmostree-compose-builtin-tree.c
@@ -1186,11 +1186,22 @@ impl_install_tree (RpmOstreeTreeComposeContext *self,
static gboolean
repo_is_on_netfs (OstreeRepo *repo)
{
+#ifndef FUSE_SUPER_MAGIC
+#define FUSE_SUPER_MAGIC 0x65735546
+#endif
+
int dfd = ostree_repo_get_dfd (repo);
struct statfs stbuf;
if (fstatfs (dfd, &stbuf) != 0)
return FALSE;
- return stbuf.f_type == NFS_SUPER_MAGIC;
+ switch (stbuf.f_type)
+ {
+ case NFS_SUPER_MAGIC:
+ case FUSE_SUPER_MAGIC:
+ return TRUE;
+ default:
+ return FALSE;
+ }
}
/* Perform required postprocessing, and invoke rpmostree_compose_commit(). */
@@ -1257,8 +1268,13 @@ impl_commit_tree (RpmOstreeTreeComposeContext *self,
}
/* See comment above */
- const gboolean use_txn = (getenv ("RPMOSTREE_COMMIT_NO_TXN") == NULL &&
- !repo_is_on_netfs (self->repo));
+ const gboolean txn_explicitly_disabled = (getenv ("RPMOSTREE_COMMIT_NO_TXN") != NULL);
+ const gboolean using_netfs = repo_is_on_netfs (self->repo);
+ if (txn_explicitly_disabled)
+ g_print ("libostree transactions explicitly disabled\n");
+ else if (using_netfs)
+ g_print ("Network filesystem detected for repo; disabling transaction\n");
+ const gboolean use_txn = !(txn_explicitly_disabled || using_netfs);
if (use_txn)
{
--
2.14.3

View File

@ -1,13 +1,15 @@
Summary: Hybrid image/package system
Name: rpm-ostree
Version: 2018.3
Release: 1%{?dist}
Release: 2%{?dist}
#VCS: https://github.com/cgwalters/rpm-ostree
# This tarball is generated via "make -f Makefile.dist-packaging dist-snapshot"
Source0: rpm-ostree-%{version}.tar.xz
License: LGPLv2+
URL: https://github.com/projectatomic/rpm-ostree
Patch0: 0001-compose-Also-treat-FUSE-as-a-netfs.patch
# We always run autogen.sh
BuildRequires: autoconf automake libtool git
# For docs
@ -151,6 +153,10 @@ python autofiles.py > files.devel \
%files devel -f files.devel
%changelog
* Thu Mar 01 2018 Dusty Mabe <dusty@dustymabe.com> - 2018.3-2
- backport treating FUSE as netfs
- See https://github.com/projectatomic/rpm-ostree/pull/1285
* Sun Feb 18 2018 Jonathan Lebon <jlebon@redhat.com> - 2018.3-1
- New upstream version (minor bugfix release)