Hello community,
here is the log from the commit of package fuse for openSUSE:Factory checked in at 2013-03-08 21:04:03
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fuse (Old)
and /work/SRC/openSUSE:Factory/.fuse.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fuse", Maintainer is "MSzeredi@novell.com"
Changes:
--------
--- /work/SRC/openSUSE:Factory/fuse/fuse.changes 2013-02-07 10:15:23.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.fuse.new/fuse.changes 2013-03-08 21:04:04.000000000 +0100
@@ -1,0 +2,15 @@
+Fri Mar 8 13:36:12 UTC 2013 - idonmez@suse.com
+
+- Use autoreconf directly instead of makeconf.sh
+
+-------------------------------------------------------------------
+Mon Mar 4 15:04:08 UTC 2013 - archie@dellroad.org
+
+- Update to version 2.9.2
+ - Add support for fallocate() (kernel >= 3.5)
+ - Bug fixes
+- Remove fix-pthread-in-fuse.pc.patch; now included in upstream
+- Don't patch generated files such as configure and Makefile.in;
+ instead, regenerate them using makeconf.sh from SVN repository
+
+-------------------------------------------------------------------
Old:
----
fix-pthread-in-fuse.pc.patch
fuse-2.9.0.tar.gz
New:
----
fuse-2.9.2.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fuse.spec ++++++
--- /var/tmp/diff_new_pack.bkAG3R/_old 2013-03-08 21:04:05.000000000 +0100
+++ /var/tmp/diff_new_pack.bkAG3R/_new 2013-03-08 21:04:05.000000000 +0100
@@ -20,16 +20,15 @@
Summary: User space File System
License: GPL-2.0+ and LGPL-2.1+
Group: System/Filesystems
-Version: 2.9.0
+Version: 2.9.2
Release: 0
# http://downloads.sf.net/fuse/fuse-%%version.tar.gz
Source: %{name}-%{version}.tar.gz
Source2: fuse.rpmlintrc
Source3: baselibs.conf
Patch: fuse-install-fix.diff
-Patch3: fuse-gnu_source.patch
-Patch4: fusermount-compile-as-pie.patch
-Patch5: fix-pthread-in-fuse.pc.patch
+Patch2: fuse-gnu_source.patch
+Patch3: fusermount-compile-as-pie.patch
Url: http://fuse.sourceforge.net
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%if 0%{?suse_version} > 1130
@@ -37,6 +36,9 @@
%else
Requires: util-linux(fake+no-canonicalize)
%endif
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: libtool
BuildRequires: pkgconfig
%if 0%{?suse_version} >= 1000
Supplements: filesystem(fuse)
@@ -135,14 +137,14 @@
%prep
%setup -q
-%patch
-%patch3
-%patch4 -p1
-%patch5 -p1
+%patch -p1
+%patch2 -p1
+%patch3 -p1
%build
export CFLAGS="$RPM_OPT_FLAGS -g -fno-strict-aliasing"
export MOUNT_FUSE_PATH=%{_sbindir}
+autoreconf -fi
%configure --with-pic \
--with-pkgconfigdir=%{_libdir}/pkgconfig \
--enable-lib \
++++++ fuse-2.9.0.tar.gz -> fuse-2.9.2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/ChangeLog new/fuse-2.9.2/ChangeLog
--- old/fuse-2.9.0/ChangeLog 2012-04-20 16:29:19.000000000 +0200
+++ new/fuse-2.9.2/ChangeLog 2012-10-01 17:58:39.000000000 +0200
@@ -1,3 +1,60 @@
+2012-10-01 Miklos Szeredi
+
+ * Released 2.9.2
+
+2012-10-01 Miklos Szeredi
+
+ * Fix deadlock in libfuse. Running "svn update" on a fuse
+ filesystem could deadlock because of a bug in the way the paths
+ are locked. Reported by Kazuaki Anami
+
+2012-08-23 Miklos Szeredi
+
+ * Fix missing config.h in buffer.c. Reported by Matthew Gabeler-Lee
+
+2012-08-14 Miklos Szeredi
+
+ * Not unhashing the name in forget (commit on 2011-12-09) broke
+ the forget logic in a subtle way, resulting in "fuse internal
+ error: node NNN not found" and causing the filesystem daemon to
+ abort. Fix by incrementing the node refcount if nlookup goes from
+ zero to one. Reported by Kyle Lippincott
+
+2012-08-13 Miklos Szeredi
+
+ * Fix linking against GNU libiconv. Patch by Natanael Copa
+
+2012-07-19 Miklos Szeredi
+
+ * Released 2.9.1
+
+2012-07-19 Miklos Szeredi
+
+ * Fix crash caused by freeing a stack address. Reported by Itay
+ Perl
+
+2012-07-04 Miklos Szeredi
+
+ * Fix install of mount.fuse from out-of-tree build. Patch by
+ Olivier Blin
+
+ * Fix build with automake >= 1.12.1. Patch by Olivier Blin
+
+2012-04-24 Miklos Szeredi
+
+ * Add fallocate operation. Only works on linux kernels 3.5 or
+ later. Patch by Anatol Pomozov
+
+2012-05-16 Miklos Szeredi
+
+ * Linking to a library that uses threads requires the application
+ to be linked with -pthreads otherwise some pthread functions will
+ be linked to stubs in glibc. So move -pthread from Libs.private
+ to Libs in fuse.pc. Reported by Werner Fink
+
+ * Fix the compile command in the examples. Reported by Luciano
+ Dalle Ore
+
2012-04-20 Miklos Szeredi
* Released 2.9.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/NEWS new/fuse-2.9.2/NEWS
--- old/fuse-2.9.0/NEWS 2012-04-20 11:56:43.000000000 +0200
+++ new/fuse-2.9.2/NEWS 2012-07-19 18:17:44.000000000 +0200
@@ -34,6 +34,8 @@
o Add delete notification
+ o Add fallocate operation (linux kernel 3.5 or newer)
+
- Bug fixes and small improvements
============================================================================
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/configure new/fuse-2.9.2/configure
--- old/fuse-2.9.0/configure 2012-04-20 14:43:39.000000000 +0200
+++ new/fuse-2.9.2/configure 2012-10-01 17:58:51.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for fuse 2.9.0.
+# Generated by GNU Autoconf 2.68 for fuse 2.9.2.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -567,8 +567,8 @@
# Identity of this package.
PACKAGE_NAME='fuse'
PACKAGE_TARNAME='fuse'
-PACKAGE_VERSION='2.9.0'
-PACKAGE_STRING='fuse 2.9.0'
+PACKAGE_VERSION='2.9.2'
+PACKAGE_STRING='fuse 2.9.2'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1312,7 +1312,7 @@
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures fuse 2.9.0 to adapt to many kinds of systems.
+\`configure' configures fuse 2.9.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1383,7 +1383,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of fuse 2.9.0:";;
+ short | recursive ) echo "Configuration of fuse 2.9.2:";;
esac
cat <<\_ACEOF
@@ -1496,7 +1496,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-fuse configure 2.9.0
+fuse configure 2.9.2
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1831,7 +1831,7 @@
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by fuse $as_me 2.9.0, which was
+It was created by fuse $as_me 2.9.2, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -2180,6 +2180,7 @@
+
ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then
@@ -2757,7 +2758,7 @@
# Define the identity of the package.
PACKAGE='fuse'
- VERSION='2.9.0'
+ VERSION='2.9.2'
cat >>confdefs.h <<_ACEOF
@@ -11915,6 +11916,7 @@
fi
+
if test "x$CC" != xcc; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5
$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; }
@@ -12042,12 +12044,6 @@
-# compatibility for automake < 1.8
-if test -z "$mkdir_p"; then
- mkdir_p="../mkinstalldirs"
-
-fi
-
case $target_os in
*linux*) arch=linux;;
*netbsd*) arch=netbsd;;
@@ -12119,6 +12115,17 @@
fi
done
+for ac_func in posix_fallocate
+do :
+ ac_fn_c_check_func "$LINENO" "posix_fallocate" "ac_cv_func_posix_fallocate"
+if test "x$ac_cv_func_posix_fallocate" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_POSIX_FALLOCATE 1
+_ACEOF
+
+fi
+done
+
ac_fn_c_check_member "$LINENO" "struct stat" "st_atim" "ac_cv_member_struct_stat_st_atim" "$ac_includes_default"
if test "x$ac_cv_member_struct_stat_st_atim" = xyes; then :
@@ -12140,7 +12147,6 @@
fi
-libfuse_libs="-pthread"
LIBS=
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
$as_echo_n "checking for library containing dlopen... " >&6; }
@@ -12254,7 +12260,7 @@
fi
-libfuse_libs="$libfuse_libs $LIBS"
+libfuse_libs=$LIBS
LIBS=
# Check whether --with-libiconv-prefix was given.
@@ -13855,7 +13861,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by fuse $as_me 2.9.0, which was
+This file was extended by fuse $as_me 2.9.2, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -13921,7 +13927,7 @@
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-fuse config.status 2.9.0
+fuse config.status 2.9.2
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/configure.in new/fuse-2.9.2/configure.in
--- old/fuse-2.9.0/configure.in 2012-04-20 14:42:37.000000000 +0200
+++ new/fuse-2.9.2/configure.in 2012-10-01 17:58:00.000000000 +0200
@@ -1,4 +1,5 @@
-AC_INIT(fuse, 2.9.0)
+AC_INIT(fuse, 2.9.2)
+AC_PREREQ(2.59d)
AC_CONFIG_MACRO_DIR([m4])
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
@@ -7,14 +8,9 @@
AC_PROG_LIBTOOL
AC_PROG_CC
+AC_PROG_MKDIR_P
AM_PROG_CC_C_O
-# compatibility for automake < 1.8
-if test -z "$mkdir_p"; then
- mkdir_p="../mkinstalldirs"
- AC_SUBST(mkdir_p)
-fi
-
case $target_os in
*linux*) arch=linux;;
*netbsd*) arch=netbsd;;
@@ -57,14 +53,14 @@
fi
AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat])
+AC_CHECK_FUNCS([posix_fallocate])
AC_CHECK_MEMBERS([struct stat.st_atim])
AC_CHECK_MEMBERS([struct stat.st_atimespec])
-libfuse_libs="-pthread"
LIBS=
AC_SEARCH_LIBS(dlopen, [dl])
AC_SEARCH_LIBS(clock_gettime, [rt])
-libfuse_libs="$libfuse_libs $LIBS"
+libfuse_libs=$LIBS
LIBS=
AC_ARG_WITH([libiconv-prefix],
[ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/example/cusexmp.c new/fuse-2.9.2/example/cusexmp.c
--- old/fuse-2.9.0/example/cusexmp.c 2012-04-10 15:28:55.000000000 +0200
+++ new/fuse-2.9.2/example/cusexmp.c 2012-09-04 12:17:46.000000000 +0200
@@ -6,7 +6,7 @@
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
- gcc -Wall `pkg-config fuse --cflags --libs` cusexmp.c -o cusexmp
+ gcc -Wall cusexmp.c `pkg-config fuse --cflags --libs` -o cusexmp
*/
#define FUSE_USE_VERSION 29
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/example/fioc.c new/fuse-2.9.2/example/fioc.c
--- old/fuse-2.9.0/example/fioc.c 2011-11-11 13:01:25.000000000 +0100
+++ new/fuse-2.9.2/example/fioc.c 2012-09-04 12:17:46.000000000 +0200
@@ -6,7 +6,7 @@
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
- gcc -Wall `pkg-config fuse --cflags --libs` fioc.c -o fioc
+ gcc -Wall fioc.c `pkg-config fuse --cflags --libs` -o fioc
*/
#define FUSE_USE_VERSION 26
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/example/fsel.c new/fuse-2.9.2/example/fsel.c
--- old/fuse-2.9.0/example/fsel.c 2011-11-11 13:01:25.000000000 +0100
+++ new/fuse-2.9.2/example/fsel.c 2012-09-04 12:17:46.000000000 +0200
@@ -6,7 +6,7 @@
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
- gcc -Wall `pkg-config fuse --cflags --libs` fsel.c -o fsel
+ gcc -Wall fsel.c `pkg-config fuse --cflags --libs` -o fsel
*/
#define FUSE_USE_VERSION 29
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/example/fusexmp.c new/fuse-2.9.2/example/fusexmp.c
--- old/fuse-2.9.0/example/fusexmp.c 2012-04-10 15:28:55.000000000 +0200
+++ new/fuse-2.9.2/example/fusexmp.c 2012-09-04 12:17:46.000000000 +0200
@@ -6,7 +6,7 @@
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
- gcc -Wall `pkg-config fuse --cflags --libs` fusexmp.c -o fusexmp
+ gcc -Wall fusexmp.c `pkg-config fuse --cflags --libs` -o fusexmp
*/
#define FUSE_USE_VERSION 26
@@ -310,6 +310,29 @@
return 0;
}
+#ifdef HAVE_POSIX_FALLOCATE
+static int xmp_fallocate(const char *path, int mode,
+ off_t offset, off_t length, struct fuse_file_info *fi)
+{
+ int fd;
+ int res;
+
+ (void) fi;
+
+ if (mode)
+ return -EOPNOTSUPP;
+
+ fd = open(path, O_WRONLY);
+ if (fd == -1)
+ return -errno;
+
+ res = -posix_fallocate(fd, offset, length);
+
+ close(fd);
+ return res;
+}
+#endif
+
#ifdef HAVE_SETXATTR
/* xattr operations are optional and can safely be left unimplemented */
static int xmp_setxattr(const char *path, const char *name, const char *value,
@@ -371,6 +394,9 @@
.statfs = xmp_statfs,
.release = xmp_release,
.fsync = xmp_fsync,
+#ifdef HAVE_POSIX_FALLOCATE
+ .fallocate = xmp_fallocate,
+#endif
#ifdef HAVE_SETXATTR
.setxattr = xmp_setxattr,
.getxattr = xmp_getxattr,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/example/fusexmp_fh.c new/fuse-2.9.2/example/fusexmp_fh.c
--- old/fuse-2.9.0/example/fusexmp_fh.c 2012-04-10 16:37:53.000000000 +0200
+++ new/fuse-2.9.2/example/fusexmp_fh.c 2012-09-04 12:17:46.000000000 +0200
@@ -6,7 +6,7 @@
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
- gcc -Wall `pkg-config fuse --cflags --libs` -lulockmgr fusexmp_fh.c -o fusexmp_fh
+ gcc -Wall fusexmp_fh.c `pkg-config fuse --cflags --libs` -lulockmgr -o fusexmp_fh
*/
#define FUSE_USE_VERSION 26
@@ -439,6 +439,19 @@
return 0;
}
+#ifdef HAVE_POSIX_FALLOCATE
+static int xmp_fallocate(const char *path, int mode,
+ off_t offset, off_t length, struct fuse_file_info *fi)
+{
+ (void) path;
+
+ if (mode)
+ return -EOPNOTSUPP;
+
+ return -posix_fallocate(fi->fh, offset, length);
+}
+#endif
+
#ifdef HAVE_SETXATTR
/* xattr operations are optional and can safely be left unimplemented */
static int xmp_setxattr(const char *path, const char *name, const char *value,
@@ -529,6 +542,9 @@
.flush = xmp_flush,
.release = xmp_release,
.fsync = xmp_fsync,
+#ifdef HAVE_POSIX_FALLOCATE
+ .fallocate = xmp_fallocate,
+#endif
#ifdef HAVE_SETXATTR
.setxattr = xmp_setxattr,
.getxattr = xmp_getxattr,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/example/hello.c new/fuse-2.9.2/example/hello.c
--- old/fuse-2.9.0/example/hello.c 2012-04-17 18:58:22.000000000 +0200
+++ new/fuse-2.9.2/example/hello.c 2012-09-04 12:17:46.000000000 +0200
@@ -5,7 +5,7 @@
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
- gcc -Wall `pkg-config fuse --cflags --libs` hello.c -o hello
+ gcc -Wall hello.c `pkg-config fuse --cflags --libs` -o hello
*/
#define FUSE_USE_VERSION 26
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/example/hello_ll.c new/fuse-2.9.2/example/hello_ll.c
--- old/fuse-2.9.0/example/hello_ll.c 2012-04-10 16:00:39.000000000 +0200
+++ new/fuse-2.9.2/example/hello_ll.c 2012-09-04 12:17:46.000000000 +0200
@@ -5,7 +5,7 @@
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
- gcc -Wall `pkg-config fuse --cflags --libs` hello_ll.c -o hello_ll
+ gcc -Wall hello_ll.c `pkg-config fuse --cflags --libs` -o hello_ll
*/
#define FUSE_USE_VERSION 26
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/example/null.c new/fuse-2.9.2/example/null.c
--- old/fuse-2.9.0/example/null.c 2011-11-11 13:01:25.000000000 +0100
+++ new/fuse-2.9.2/example/null.c 2012-09-04 12:17:46.000000000 +0200
@@ -5,7 +5,7 @@
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
- gcc -Wall `pkg-config fuse --cflags --libs` null.c -o null
+ gcc -Wall null.c `pkg-config fuse --cflags --libs` -o null
*/
#define FUSE_USE_VERSION 26
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/fuse.pc.in new/fuse-2.9.2/fuse.pc.in
--- old/fuse-2.9.0/fuse.pc.in 2012-04-10 15:28:55.000000000 +0200
+++ new/fuse-2.9.2/fuse.pc.in 2012-08-13 16:43:06.000000000 +0200
@@ -6,6 +6,6 @@
Name: fuse
Description: Filesystem in Userspace
Version: @VERSION@
-Libs: -L${libdir} -lfuse
+Libs: -L${libdir} -lfuse -pthread
Libs.private: @libfuse_libs@
Cflags: -I${includedir}/fuse -D_FILE_OFFSET_BITS=64
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/include/config.h.in new/fuse-2.9.2/include/config.h.in
--- old/fuse-2.9.0/include/config.h.in 2012-04-20 14:43:48.000000000 +0200
+++ new/fuse-2.9.2/include/config.h.in 2012-10-01 17:59:00.000000000 +0200
@@ -18,6 +18,9 @@
/* Define to 1 if you have the header file. */
#undef HAVE_MEMORY_H
+/* Define to 1 if you have the `posix_fallocate' function. */
+#undef HAVE_POSIX_FALLOCATE
+
/* Define to 1 if you have the `setxattr' function. */
#undef HAVE_SETXATTR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/include/fuse.h new/fuse-2.9.2/include/fuse.h
--- old/fuse-2.9.0/include/fuse.h 2012-04-20 12:01:56.000000000 +0200
+++ new/fuse-2.9.2/include/fuse.h 2012-09-04 12:17:46.000000000 +0200
@@ -575,6 +575,19 @@
* Introduced in version 2.9
*/
int (*flock) (const char *, struct fuse_file_info *, int op);
+
+ /**
+ * Allocates space for an open file
+ *
+ * This function ensures that required space is allocated for specified
+ * file. If this function returns success then any subsequent write
+ * request to specified range is guaranteed not to fail because of lack
+ * of space on the file system media.
+ *
+ * Introduced in version 2.9.1
+ */
+ int (*fallocate) (const char *, int, off_t, off_t,
+ struct fuse_file_info *);
};
/** Extra context that may be needed by some filesystems
@@ -870,6 +883,8 @@
int fuse_fs_poll(struct fuse_fs *fs, const char *path,
struct fuse_file_info *fi, struct fuse_pollhandle *ph,
unsigned *reventsp);
+int fuse_fs_fallocate(struct fuse_fs *fs, const char *path, int mode,
+ off_t offset, off_t length, struct fuse_file_info *fi);
void fuse_fs_init(struct fuse_fs *fs, struct fuse_conn_info *conn);
void fuse_fs_destroy(struct fuse_fs *fs);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/include/fuse_kernel.h new/fuse-2.9.2/include/fuse_kernel.h
--- old/fuse-2.9.0/include/fuse_kernel.h 2012-04-20 12:17:48.000000000 +0200
+++ new/fuse-2.9.2/include/fuse_kernel.h 2012-07-19 14:33:49.000000000 +0200
@@ -80,6 +80,9 @@
* 7.18
* - add FUSE_IOCTL_DIR flag
* - add FUSE_NOTIFY_DELETE
+ *
+ * 7.19
+ * - add FUSE_FALLOCATE
*/
#ifndef _LINUX_FUSE_H
@@ -116,7 +119,7 @@
#define FUSE_KERNEL_VERSION 7
/** Minor version number of this interface */
-#define FUSE_KERNEL_MINOR_VERSION 18
+#define FUSE_KERNEL_MINOR_VERSION 19
/** The node ID of the root inode */
#define FUSE_ROOT_ID 1
@@ -309,6 +312,7 @@
FUSE_POLL = 40,
FUSE_NOTIFY_REPLY = 41,
FUSE_BATCH_FORGET = 42,
+ FUSE_FALLOCATE = 43,
/* CUSE specific operations */
CUSE_INIT = 4096,
@@ -602,6 +606,14 @@
__u64 kh;
};
+struct fuse_fallocate_in {
+ __u64 fh;
+ __u64 offset;
+ __u64 length;
+ __u32 mode;
+ __u32 padding;
+};
+
struct fuse_in_header {
__u32 len;
__u32 opcode;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/include/fuse_lowlevel.h new/fuse-2.9.2/include/fuse_lowlevel.h
--- old/fuse-2.9.0/include/fuse_lowlevel.h 2012-04-19 17:31:46.000000000 +0200
+++ new/fuse-2.9.2/include/fuse_lowlevel.h 2012-09-04 12:17:46.000000000 +0200
@@ -996,6 +996,26 @@
*/
void (*flock) (fuse_req_t req, fuse_ino_t ino,
struct fuse_file_info *fi, int op);
+
+ /**
+ * Allocate requested space. If this function returns success then
+ * subsequent writes to the specified range shall not fail due to the lack
+ * of free space on the file system storage media.
+ *
+ * Introduced in version 2.9
+ *
+ * Valid replies:
+ * fuse_reply_err
+ *
+ * @param req request handle
+ * @param ino the inode number
+ * @param offset starting point for allocated region
+ * @param length size of allocated region
+ * @param mode determines the operation to be performed on the given range,
+ * see fallocate(2)
+ */
+ void (*fallocate) (fuse_req_t req, fuse_ino_t ino, int mode,
+ off_t offset, off_t length, struct fuse_file_info *fi);
};
/**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/Makefile.am new/fuse-2.9.2/lib/Makefile.am
--- old/fuse-2.9.0/lib/Makefile.am 2012-04-20 12:01:56.000000000 +0200
+++ new/fuse-2.9.2/lib/Makefile.am 2012-10-01 17:58:13.000000000 +0200
@@ -36,7 +36,7 @@
$(iconv_source) \
$(mount_source)
-libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:9:0 \
+libfuse_la_LDFLAGS = -pthread @libfuse_libs@ -version-number 2:9:2 \
-Wl,--version-script,$(srcdir)/fuse_versionscript
if NETBSD
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/Makefile.in new/fuse-2.9.2/lib/Makefile.in
--- old/fuse-2.9.0/lib/Makefile.in 2012-04-20 14:43:38.000000000 +0200
+++ new/fuse-2.9.2/lib/Makefile.in 2012-10-01 17:58:50.000000000 +0200
@@ -283,7 +283,7 @@
$(iconv_source) \
$(mount_source)
-libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:9:0 \
+libfuse_la_LDFLAGS = -pthread @libfuse_libs@ -version-number 2:9:2 \
-Wl,--version-script,$(srcdir)/fuse_versionscript
@NETBSD_TRUE@libfuse_la_LIBADD = -lperfuse -lpuffs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/buffer.c new/fuse-2.9.2/lib/buffer.c
--- old/fuse-2.9.0/lib/buffer.c 2012-04-10 15:28:55.000000000 +0200
+++ new/fuse-2.9.2/lib/buffer.c 2012-09-04 12:17:46.000000000 +0200
@@ -8,6 +8,7 @@
#define _GNU_SOURCE
+#include "config.h"
#include "fuse_i.h"
#include "fuse_lowlevel.h"
#include
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/fuse.c new/fuse-2.9.2/lib/fuse.c
--- old/fuse-2.9.0/lib/fuse.c 2012-04-20 12:01:56.000000000 +0200
+++ new/fuse-2.9.2/lib/fuse.c 2012-10-01 16:38:37.000000000 +0200
@@ -10,6 +10,7 @@
/* For pthread_rwlock_t */
#define _GNU_SOURCE
+#include "config.h"
#include "fuse_i.h"
#include "fuse_lowlevel.h"
#include "fuse_opt.h"
@@ -22,6 +23,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -90,8 +92,20 @@
};
struct lock_queue_element {
- struct lock_queue_element *next;
- pthread_cond_t cond;
+ struct lock_queue_element *next;
+ pthread_cond_t cond;
+ fuse_ino_t nodeid1;
+ const char *name1;
+ char **path1;
+ struct node **wnode1;
+ fuse_ino_t nodeid2;
+ const char *name2;
+ char **path2;
+ struct node **wnode2;
+ int err;
+ bool first_locked : 1;
+ bool second_locked : 1;
+ bool done : 1;
};
struct node_table {
@@ -133,7 +147,6 @@
struct fuse_fs *fs;
int nullpath_ok;
int utime_omit_ok;
- int curr_ticket;
struct lock_queue_element *lockq;
int pagesize;
struct list_head partial_slabs;
@@ -167,10 +180,12 @@
unsigned int is_hidden : 1;
unsigned int cache_valid : 1;
int treelock;
- int ticket;
char inline_name[32];
};
+#define TREELOCK_WRITE -1
+#define TREELOCK_WAIT_OFFSET INT_MIN
+
struct node_lru {
struct node node;
struct list_head lru;
@@ -325,12 +340,12 @@
prev->next = new;
}
-static void list_add_head(struct list_head *new, struct list_head *head)
+static inline void list_add_head(struct list_head *new, struct list_head *head)
{
list_add(new, head, head->next);
}
-static void list_add_tail(struct list_head *new, struct list_head *head)
+static inline void list_add_tail(struct list_head *new, struct list_head *head)
{
list_add(new, head->prev, head);
}
@@ -423,6 +438,7 @@
list_del(&slab->list);
list_add_tail(&slab->list, &f->full_slabs);
}
+ memset(node, 0, sizeof(struct node));
return (struct node *) node;
}
@@ -816,6 +832,13 @@
return NULL;
}
+static void inc_nlookup(struct node *node)
+{
+ if (!node->nlookup)
+ node->refctr++;
+ node->nlookup++;
+}
+
static struct node *find_node(struct fuse *f, fuse_ino_t parent,
const char *name)
{
@@ -831,15 +854,11 @@
if (node == NULL)
goto out_err;
- if (f->conf.remember)
- node->nlookup = 1;
- node->refctr = 1;
node->nodeid = next_id(f);
node->generation = f->generation;
- node->open_count = 0;
- node->is_hidden = 0;
- node->treelock = 0;
- node->ticket = 0;
+ if (f->conf.remember)
+ inc_nlookup(node);
+
if (hash_name(f, node, parent, name) == -1) {
free_node(f, node);
node = NULL;
@@ -853,7 +872,7 @@
} else if (lru_enabled(f) && node->nlookup == 1) {
remove_node_lru(node);
}
- node->nlookup ++;
+ inc_nlookup(node);
out_err:
pthread_mutex_unlock(&f->lock);
return node;
@@ -893,48 +912,28 @@
}
static void unlock_path(struct fuse *f, fuse_ino_t nodeid, struct node *wnode,
- struct node *end, int ticket)
+ struct node *end)
{
struct node *node;
if (wnode) {
- assert(wnode->treelock == -1);
+ assert(wnode->treelock == TREELOCK_WRITE);
wnode->treelock = 0;
- if (!wnode->ticket)
- wnode->ticket = ticket;
}
for (node = get_node(f, nodeid);
node != end && node->nodeid != FUSE_ROOT_ID; node = node->parent) {
- assert(node->treelock > 0);
+ assert(node->treelock != 0);
+ assert(node->treelock != TREELOCK_WAIT_OFFSET);
+ assert(node->treelock != TREELOCK_WRITE);
node->treelock--;
- if (!node->ticket)
- node->ticket = ticket;
- }
-}
-
-static void release_tickets(struct fuse *f, fuse_ino_t nodeid,
- struct node *wnode, int ticket)
-{
- struct node *node;
-
- if (wnode) {
- if (wnode->ticket != ticket)
- return;
-
- wnode->ticket = 0;
- }
-
- for (node = get_node(f, nodeid);
- node->nodeid != FUSE_ROOT_ID; node = node->parent) {
- if (node->ticket != ticket)
- return;
- node->ticket = 0;
+ if (node->treelock == TREELOCK_WAIT_OFFSET)
+ node->treelock = 0;
}
}
static int try_get_path(struct fuse *f, fuse_ino_t nodeid, const char *name,
- char **path, struct node **wnodep, int ticket)
+ char **path, struct node **wnodep, bool need_lock)
{
unsigned bufsize = 256;
char *buf;
@@ -961,18 +960,16 @@
}
if (wnodep) {
- assert(ticket);
+ assert(need_lock);
wnode = lookup_node(f, nodeid, name);
if (wnode) {
- if (wnode->treelock != 0 ||
- (wnode->ticket && wnode->ticket != ticket)) {
- if (!wnode->ticket)
- wnode->ticket = ticket;
+ if (wnode->treelock != 0) {
+ if (wnode->treelock > 0)
+ wnode->treelock += TREELOCK_WAIT_OFFSET;
err = -EAGAIN;
goto out_free;
}
- wnode->treelock = -1;
- wnode->ticket = 0;
+ wnode->treelock = TREELOCK_WRITE;
}
}
@@ -987,14 +984,12 @@
if (s == NULL)
goto out_unlock;
- if (ticket) {
+ if (need_lock) {
err = -EAGAIN;
- if (node->treelock == -1 ||
- (node->ticket && node->ticket != ticket))
+ if (node->treelock < 0)
goto out_unlock;
node->treelock++;
- node->ticket = 0;
}
}
@@ -1010,40 +1005,95 @@
return 0;
out_unlock:
- if (ticket)
- unlock_path(f, nodeid, wnode, node, ticket);
+ if (need_lock)
+ unlock_path(f, nodeid, wnode, node);
out_free:
free(buf);
out_err:
- if (ticket && err != -EAGAIN)
- release_tickets(f, nodeid, wnode, ticket);
-
return err;
}
-static void wake_up_first(struct fuse *f)
+static void queue_element_unlock(struct fuse *f, struct lock_queue_element *qe)
{
- if (f->lockq)
- pthread_cond_signal(&f->lockq->cond);
+ struct node *wnode;
+
+ if (qe->first_locked) {
+ wnode = qe->wnode1 ? *qe->wnode1 : NULL;
+ unlock_path(f, qe->nodeid1, wnode, NULL);
+ }
+ if (qe->second_locked) {
+ wnode = qe->wnode2 ? *qe->wnode2 : NULL;
+ unlock_path(f, qe->nodeid2, wnode, NULL);
+ }
}
-static void wake_up_next(struct lock_queue_element *qe)
+static void queue_element_wakeup(struct fuse *f, struct lock_queue_element *qe)
{
- if (qe->next)
- pthread_cond_signal(&qe->next->cond);
+ int err;
+ bool first = (qe == f->lockq);
+
+ if (!qe->path1) {
+ /* Just waiting for it to be unlocked */
+ if (get_node(f, qe->nodeid1)->treelock == 0)
+ pthread_cond_signal(&qe->cond);
+
+ return;
+ }
+
+ if (!qe->first_locked) {
+ err = try_get_path(f, qe->nodeid1, qe->name1, qe->path1,
+ qe->wnode1, true);
+ if (!err)
+ qe->first_locked = true;
+ else if (err != -EAGAIN)
+ goto err_unlock;
+ }
+ if (!qe->second_locked && qe->path2) {
+ err = try_get_path(f, qe->nodeid2, qe->name2, qe->path2,
+ qe->wnode2, true);
+ if (!err)
+ qe->second_locked = true;
+ else if (err != -EAGAIN)
+ goto err_unlock;
+ }
+
+ if (qe->first_locked && (qe->second_locked || !qe->path2)) {
+ err = 0;
+ goto done;
+ }
+
+ /*
+ * Only let the first element be partially locked otherwise there could
+ * be a deadlock.
+ *
+ * But do allow the first element to be partially locked to prevent
+ * starvation.
+ */
+ if (!first)
+ queue_element_unlock(f, qe);
+
+ /* keep trying */
+ return;
+
+err_unlock:
+ queue_element_unlock(f, qe);
+done:
+ qe->err = err;
+ qe->done = true;
+ pthread_cond_signal(&qe->cond);
}
-static int get_ticket(struct fuse *f)
+static void wake_up_queued(struct fuse *f)
{
- do f->curr_ticket++;
- while (f->curr_ticket == 0);
+ struct lock_queue_element *qe;
- return f->curr_ticket;
+ for (qe = f->lockq; qe != NULL; qe = qe->next)
+ queue_element_wakeup(f, qe);
}
static void debug_path(struct fuse *f, const char *msg, fuse_ino_t nodeid,
- const char *name, int wr)
+ const char *name, bool wr)
{
if (f->conf.debug) {
struct node *wnode = NULL;
@@ -1058,56 +1108,58 @@
}
}
-static void queue_path(struct fuse *f, struct lock_queue_element *qe,
- fuse_ino_t nodeid, const char *name, int wr)
+static void queue_path(struct fuse *f, struct lock_queue_element *qe)
{
struct lock_queue_element **qp;
- debug_path(f, "QUEUE PATH", nodeid, name, wr);
+ qe->done = false;
+ qe->first_locked = false;
+ qe->second_locked = false;
pthread_cond_init(&qe->cond, NULL);
qe->next = NULL;
for (qp = &f->lockq; *qp != NULL; qp = &(*qp)->next);
*qp = qe;
}
-static void dequeue_path(struct fuse *f, struct lock_queue_element *qe,
- fuse_ino_t nodeid, const char *name, int wr)
+static void dequeue_path(struct fuse *f, struct lock_queue_element *qe)
{
struct lock_queue_element **qp;
- debug_path(f, "DEQUEUE PATH", nodeid, name, wr);
pthread_cond_destroy(&qe->cond);
for (qp = &f->lockq; *qp != qe; qp = &(*qp)->next);
*qp = qe->next;
}
-static void wait_on_path(struct fuse *f, struct lock_queue_element *qe,
- fuse_ino_t nodeid, const char *name, int wr)
+static int wait_path(struct fuse *f, struct lock_queue_element *qe)
{
- debug_path(f, "WAIT ON PATH", nodeid, name, wr);
- pthread_cond_wait(&qe->cond, &f->lock);
+ queue_path(f, qe);
+
+ do {
+ pthread_cond_wait(&qe->cond, &f->lock);
+ } while (!qe->done);
+
+ dequeue_path(f, qe);
+
+ return qe->err;
}
static int get_path_common(struct fuse *f, fuse_ino_t nodeid, const char *name,
char **path, struct node **wnode)
{
int err;
- int ticket;
pthread_mutex_lock(&f->lock);
- ticket = get_ticket(f);
- err = try_get_path(f, nodeid, name, path, wnode, ticket);
+ err = try_get_path(f, nodeid, name, path, wnode, true);
if (err == -EAGAIN) {
- struct lock_queue_element qe;
-
- queue_path(f, &qe, nodeid, name, !!wnode);
- do {
- wait_on_path(f, &qe, nodeid, name, !!wnode);
- err = try_get_path(f, nodeid, name, path, wnode,
- ticket);
- wake_up_next(&qe);
- } while (err == -EAGAIN);
- dequeue_path(f, &qe, nodeid, name, !!wnode);
+ struct lock_queue_element qe = {
+ .nodeid1 = nodeid,
+ .name1 = name,
+ .path1 = path,
+ .wnode1 = wnode,
+ };
+ debug_path(f, "QUEUE PATH", nodeid, name, !!wnode);
+ err = wait_path(f, &qe);
+ debug_path(f, "DEQUEUE PATH", nodeid, name, !!wnode);
}
pthread_mutex_unlock(&f->lock);
@@ -1149,22 +1201,19 @@
static int try_get_path2(struct fuse *f, fuse_ino_t nodeid1, const char *name1,
fuse_ino_t nodeid2, const char *name2,
char **path1, char **path2,
- struct node **wnode1, struct node **wnode2,
- int ticket)
+ struct node **wnode1, struct node **wnode2)
{
int err;
/* FIXME: locking two paths needs deadlock checking */
- err = try_get_path(f, nodeid1, name1, path1, wnode1, ticket);
+ err = try_get_path(f, nodeid1, name1, path1, wnode1, true);
if (!err) {
- err = try_get_path(f, nodeid2, name2, path2, wnode2, ticket);
+ err = try_get_path(f, nodeid2, name2, path2, wnode2, true);
if (err) {
struct node *wn1 = wnode1 ? *wnode1 : NULL;
- unlock_path(f, nodeid1, wn1, NULL, ticket);
- free(path1);
- if (ticket && err != -EAGAIN)
- release_tickets(f, nodeid1, wn1, ticket);
+ unlock_path(f, nodeid1, wn1, NULL);
+ free(*path1);
}
}
return err;
@@ -1176,27 +1225,27 @@
struct node **wnode1, struct node **wnode2)
{
int err;
- int ticket;
pthread_mutex_lock(&f->lock);
- ticket = get_ticket(f);
err = try_get_path2(f, nodeid1, name1, nodeid2, name2,
- path1, path2, wnode1, wnode2, ticket);
+ path1, path2, wnode1, wnode2);
if (err == -EAGAIN) {
- struct lock_queue_element qe;
+ struct lock_queue_element qe = {
+ .nodeid1 = nodeid1,
+ .name1 = name1,
+ .path1 = path1,
+ .wnode1 = wnode1,
+ .nodeid2 = nodeid2,
+ .name2 = name2,
+ .path2 = path2,
+ .wnode2 = wnode2,
+ };
- queue_path(f, &qe, nodeid1, name1, !!wnode1);
- debug_path(f, " path2", nodeid2, name2, !!wnode2);
- do {
- wait_on_path(f, &qe, nodeid1, name1, !!wnode1);
- debug_path(f, " path2", nodeid2, name2, !!wnode2);
- err = try_get_path2(f, nodeid1, name1, nodeid2, name2,
- path1, path2, wnode1, wnode2,
- ticket);
- wake_up_next(&qe);
- } while (err == -EAGAIN);
- dequeue_path(f, &qe, nodeid1, name1, !!wnode1);
- debug_path(f, " path2", nodeid2, name2, !!wnode2);
+ debug_path(f, "QUEUE PATH1", nodeid1, name1, !!wnode1);
+ debug_path(f, " PATH2", nodeid2, name2, !!wnode2);
+ err = wait_path(f, &qe);
+ debug_path(f, "DEQUEUE PATH1", nodeid1, name1, !!wnode1);
+ debug_path(f, " PATH2", nodeid2, name2, !!wnode2);
}
pthread_mutex_unlock(&f->lock);
@@ -1207,8 +1256,9 @@
struct node *wnode, char *path)
{
pthread_mutex_lock(&f->lock);
- unlock_path(f, nodeid, wnode, NULL, 0);
- wake_up_first(f);
+ unlock_path(f, nodeid, wnode, NULL);
+ if (f->lockq)
+ wake_up_queued(f);
pthread_mutex_unlock(&f->lock);
free(path);
}
@@ -1224,9 +1274,9 @@
char *path1, char *path2)
{
pthread_mutex_lock(&f->lock);
- unlock_path(f, nodeid1, wnode1, NULL, 0);
- unlock_path(f, nodeid2, wnode2, NULL, 0);
- wake_up_first(f);
+ unlock_path(f, nodeid1, wnode1, NULL);
+ unlock_path(f, nodeid2, wnode2, NULL);
+ wake_up_queued(f);
pthread_mutex_unlock(&f->lock);
free(path1);
free(path2);
@@ -1245,15 +1295,19 @@
* create and opendir
*/
while (node->nlookup == nlookup && node->treelock) {
- struct lock_queue_element qe;
+ struct lock_queue_element qe = {
+ .nodeid1 = nodeid,
+ };
- queue_path(f, &qe, node->nodeid, NULL, 0);
- do {
- wait_on_path(f, &qe, node->nodeid, NULL, 0);
- wake_up_next(&qe);
+ debug_path(f, "QUEUE PATH (forget)", nodeid, NULL, false);
+ queue_path(f, &qe);
+ do {
+ pthread_cond_wait(&qe.cond, &f->lock);
} while (node->nlookup == nlookup && node->treelock);
- dequeue_path(f, &qe, node->nodeid, NULL, 0);
+
+ dequeue_path(f, &qe);
+ debug_path(f, "DEQUEUE_PATH (forget)", nodeid, NULL, false);
}
assert(node->nlookup >= nlookup);
@@ -2281,6 +2335,23 @@
return -ENOSYS;
}
+int fuse_fs_fallocate(struct fuse_fs *fs, const char *path, int mode,
+ off_t offset, off_t length, struct fuse_file_info *fi)
+{
+ fuse_get_context()->private_data = fs->user_data;
+ if (fs->op.fallocate) {
+ if (fs->debug)
+ fprintf(stderr, "fallocate %s mode %x, offset: %llu, length: %llu\n",
+ path,
+ mode,
+ (unsigned long long) offset,
+ (unsigned long long) length);
+
+ return fs->op.fallocate(path, mode, offset, length, fi);
+ } else
+ return -ENOSYS;
+}
+
static int is_open(struct fuse *f, fuse_ino_t dir, const char *name)
{
struct node *node;
@@ -2317,7 +2388,7 @@
newnode = lookup_node(f, dir, newname);
} while(newnode);
- res = try_get_path(f, dir, newname, &newpath, NULL, 0);
+ res = try_get_path(f, dir, newname, &newpath, NULL, false);
pthread_mutex_unlock(&f->lock);
if (res)
break;
@@ -3990,6 +4061,24 @@
reply_err(req, err);
}
+static void fuse_lib_fallocate(fuse_req_t req, fuse_ino_t ino, int mode,
+ off_t offset, off_t length, struct fuse_file_info *fi)
+{
+ struct fuse *f = req_fuse_prepare(req);
+ struct fuse_intr_data d;
+ char *path;
+ int err;
+
+ err = get_path_nullok(f, ino, &path);
+ if (!err) {
+ fuse_prepare_interrupt(f, req, &d);
+ err = fuse_fs_fallocate(f->fs, path, mode, offset, length, fi);
+ fuse_finish_interrupt(f, req, &d);
+ free_path(f, ino, path);
+ }
+ reply_err(req, err);
+}
+
static int clean_delay(struct fuse *f)
{
/*
@@ -4084,6 +4173,7 @@
.bmap = fuse_lib_bmap,
.ioctl = fuse_lib_ioctl,
.poll = fuse_lib_poll,
+ .fallocate = fuse_lib_fallocate,
};
int fuse_notify_poll(struct fuse_pollhandle *ph)
@@ -4617,9 +4707,7 @@
root->parent = NULL;
root->nodeid = FUSE_ROOT_ID;
- root->generation = 0;
- root->refctr = 1;
- root->nlookup = 1;
+ inc_nlookup(root);
hash_id(f, root);
return f;
@@ -4673,7 +4761,7 @@
node = node->id_next) {
if (node->is_hidden) {
char *path;
- if (try_get_path(f, node->nodeid, NULL, &path, NULL, 0) == 0) {
+ if (try_get_path(f, node->nodeid, NULL, &path, NULL, false) == 0) {
fuse_fs_unlink(f->fs, path);
free(path);
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/fuse_lowlevel.c new/fuse-2.9.2/lib/fuse_lowlevel.c
--- old/fuse-2.9.0/lib/fuse_lowlevel.c 2012-04-20 12:01:56.000000000 +0200
+++ new/fuse-2.9.2/lib/fuse_lowlevel.c 2012-09-04 12:17:46.000000000 +0200
@@ -8,6 +8,7 @@
#define _GNU_SOURCE
+#include "config.h"
#include "fuse_i.h"
#include "fuse_kernel.h"
#include "fuse_opt.h"
@@ -1717,6 +1718,20 @@
}
}
+static void do_fallocate(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
+{
+ struct fuse_fallocate_in *arg = (struct fuse_fallocate_in *) inarg;
+ struct fuse_file_info fi;
+
+ memset(&fi, 0, sizeof(fi));
+ fi.fh = arg->fh;
+
+ if (req->f->op.fallocate)
+ req->f->op.fallocate(req, nodeid, arg->mode, arg->offset, arg->length, &fi);
+ else
+ fuse_reply_err(req, ENOSYS);
+}
+
static void do_init(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
{
struct fuse_init_in *arg = (struct fuse_init_in *) inarg;
@@ -2267,6 +2282,7 @@
[FUSE_BMAP] = { do_bmap, "BMAP" },
[FUSE_IOCTL] = { do_ioctl, "IOCTL" },
[FUSE_POLL] = { do_poll, "POLL" },
+ [FUSE_FALLOCATE] = { do_fallocate, "FALLOCATE" },
[FUSE_DESTROY] = { do_destroy, "DESTROY" },
[FUSE_NOTIFY_REPLY] = { (void *) 1, "NOTIFY_REPLY" },
[FUSE_BATCH_FORGET] = { do_batch_forget, "BATCH_FORGET" },
@@ -2452,7 +2468,7 @@
KEY_VERSION,
};
-static struct fuse_opt fuse_ll_opts[] = {
+static const struct fuse_opt fuse_ll_opts[] = {
{ "debug", offsetof(struct fuse_ll, debug), 1 },
{ "-d", offsetof(struct fuse_ll, debug), 1 },
{ "allow_root", offsetof(struct fuse_ll, allow_root), 1 },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/fuse_versionscript new/fuse-2.9.2/lib/fuse_versionscript
--- old/fuse-2.9.0/lib/fuse_versionscript 2012-04-20 14:05:54.000000000 +0200
+++ new/fuse-2.9.2/lib/fuse_versionscript 2012-09-04 12:17:46.000000000 +0200
@@ -196,7 +196,12 @@
fuse_clean_cache;
fuse_lowlevel_notify_delete;
fuse_fs_flock;
+} FUSE_2.8;
+
+FUSE_2.9.1 {
+ global:
+ fuse_fs_fallocate;
local:
*;
-} FUSE_2.8;
+} FUSE_2.9;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/modules/iconv.c new/fuse-2.9.2/lib/modules/iconv.c
--- old/fuse-2.9.0/lib/modules/iconv.c 2012-04-20 12:01:56.000000000 +0200
+++ new/fuse-2.9.2/lib/modules/iconv.c 2012-09-04 12:17:46.000000000 +0200
@@ -592,7 +592,7 @@
free(ic);
}
-static struct fuse_operations iconv_oper = {
+static const struct fuse_operations iconv_oper = {
.destroy = iconv_destroy,
.init = iconv_init,
.getattr = iconv_getattr,
@@ -635,7 +635,7 @@
.flag_nopath = 1,
};
-static struct fuse_opt iconv_opts[] = {
+static const struct fuse_opt iconv_opts[] = {
FUSE_OPT_KEY("-h", 0),
FUSE_OPT_KEY("--help", 0),
{ "from_code=%s", offsetof(struct iconv, from_code), 0 },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/modules/subdir.c new/fuse-2.9.2/lib/modules/subdir.c
--- old/fuse-2.9.0/lib/modules/subdir.c 2012-04-20 12:01:56.000000000 +0200
+++ new/fuse-2.9.2/lib/modules/subdir.c 2012-09-04 12:17:46.000000000 +0200
@@ -575,7 +575,7 @@
free(d);
}
-static struct fuse_operations subdir_oper = {
+static const struct fuse_operations subdir_oper = {
.destroy = subdir_destroy,
.init = subdir_init,
.getattr = subdir_getattr,
@@ -618,7 +618,7 @@
.flag_nopath = 1,
};
-static struct fuse_opt subdir_opts[] = {
+static const struct fuse_opt subdir_opts[] = {
FUSE_OPT_KEY("-h", 0),
FUSE_OPT_KEY("--help", 0),
{ "subdir=%s", offsetof(struct subdir, base), 0 },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/lib/mount.c new/fuse-2.9.2/lib/mount.c
--- old/fuse-2.9.0/lib/mount.c 2012-04-20 12:01:56.000000000 +0200
+++ new/fuse-2.9.2/lib/mount.c 2012-09-04 12:17:46.000000000 +0200
@@ -160,7 +160,7 @@
int on;
};
-static struct mount_flags mount_flags[] = {
+static const struct mount_flags mount_flags[] = {
{"rw", MS_RDONLY, 0},
{"ro", MS_RDONLY, 1},
{"suid", MS_NOSUID, 0},
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/util/Makefile.am new/fuse-2.9.2/util/Makefile.am
--- old/fuse-2.9.0/util/Makefile.am 2012-04-10 15:28:55.000000000 +0200
+++ new/fuse-2.9.2/util/Makefile.am 2012-07-19 14:33:49.000000000 +0200
@@ -23,7 +23,7 @@
install-exec-hook:
-chmod u+s $(DESTDIR)$(bindir)/fusermount
@if test ! -e $(DESTDIR)/dev/fuse; then \
- $(mkdir_p) $(DESTDIR)/dev; \
+ $(MKDIR_P) $(DESTDIR)/dev; \
echo "mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true"; \
mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true; \
fi
@@ -35,9 +35,9 @@
INIT_D_PATH = @INIT_D_PATH@
install-exec-local:
- $(mkdir_p) $(DESTDIR)$(MOUNT_FUSE_PATH)
- $(INSTALL_PROGRAM) $(srcdir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
- $(mkdir_p) $(DESTDIR)$(INIT_D_PATH)
+ $(MKDIR_P) $(DESTDIR)$(MOUNT_FUSE_PATH)
+ $(INSTALL_PROGRAM) $(builddir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
+ $(MKDIR_P) $(DESTDIR)$(INIT_D_PATH)
$(INSTALL_SCRIPT) $(srcdir)/init_script $(DESTDIR)$(INIT_D_PATH)/fuse
@if test -x /usr/sbin/update-rc.d; then \
echo "/usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true"; \
@@ -45,7 +45,7 @@
fi
install-data-local:
- $(mkdir_p) $(DESTDIR)$(UDEV_RULES_PATH)
+ $(MKDIR_P) $(DESTDIR)$(UDEV_RULES_PATH)
$(INSTALL_DATA) $(srcdir)/udev.rules $(DESTDIR)$(UDEV_RULES_PATH)/99-fuse.rules
uninstall-local:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fuse-2.9.0/util/Makefile.in new/fuse-2.9.2/util/Makefile.in
--- old/fuse-2.9.0/util/Makefile.in 2012-04-20 14:43:38.000000000 +0200
+++ new/fuse-2.9.2/util/Makefile.in 2012-10-01 17:58:51.000000000 +0200
@@ -642,15 +642,15 @@
install-exec-hook:
-chmod u+s $(DESTDIR)$(bindir)/fusermount
@if test ! -e $(DESTDIR)/dev/fuse; then \
- $(mkdir_p) $(DESTDIR)/dev; \
+ $(MKDIR_P) $(DESTDIR)/dev; \
echo "mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true"; \
mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true; \
fi
install-exec-local:
- $(mkdir_p) $(DESTDIR)$(MOUNT_FUSE_PATH)
- $(INSTALL_PROGRAM) $(srcdir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
- $(mkdir_p) $(DESTDIR)$(INIT_D_PATH)
+ $(MKDIR_P) $(DESTDIR)$(MOUNT_FUSE_PATH)
+ $(INSTALL_PROGRAM) $(builddir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
+ $(MKDIR_P) $(DESTDIR)$(INIT_D_PATH)
$(INSTALL_SCRIPT) $(srcdir)/init_script $(DESTDIR)$(INIT_D_PATH)/fuse
@if test -x /usr/sbin/update-rc.d; then \
echo "/usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true"; \
@@ -658,7 +658,7 @@
fi
install-data-local:
- $(mkdir_p) $(DESTDIR)$(UDEV_RULES_PATH)
+ $(MKDIR_P) $(DESTDIR)$(UDEV_RULES_PATH)
$(INSTALL_DATA) $(srcdir)/udev.rules $(DESTDIR)$(UDEV_RULES_PATH)/99-fuse.rules
uninstall-local:
++++++ fuse-gnu_source.patch ++++++
++++ 1260 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/fuse/fuse-gnu_source.patch
++++ and /work/SRC/openSUSE:Factory/.fuse.new/fuse-gnu_source.patch
++++++ fuse-install-fix.diff ++++++
--- /var/tmp/diff_new_pack.bkAG3R/_old 2013-03-08 21:04:06.000000000 +0100
+++ /var/tmp/diff_new_pack.bkAG3R/_new 2013-03-08 21:04:06.000000000 +0100
@@ -1,46 +1,13 @@
-Index: util/Makefile.in
-===================================================================
---- util/Makefile.in.orig
-+++ util/Makefile.in
-@@ -640,26 +640,14 @@ mount_util.c: $(top_srcdir)/lib/mount_ut
- @cp $(top_srcdir)/lib/mount_util.c .
-
- install-exec-hook:
-- -chmod u+s $(DESTDIR)$(bindir)/fusermount
-- @if test ! -e $(DESTDIR)/dev/fuse; then \
-- $(mkdir_p) $(DESTDIR)/dev; \
-- echo "mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true"; \
-- mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true; \
-- fi
-
- install-exec-local:
- $(mkdir_p) $(DESTDIR)$(MOUNT_FUSE_PATH)
- $(INSTALL_PROGRAM) $(srcdir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
- $(mkdir_p) $(DESTDIR)$(INIT_D_PATH)
- $(INSTALL_SCRIPT) $(srcdir)/init_script $(DESTDIR)$(INIT_D_PATH)/fuse
-- @if test -x /usr/sbin/update-rc.d; then \
-- echo "/usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true"; \
-- /usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true; \
-- fi
-
- install-data-local:
-- $(mkdir_p) $(DESTDIR)$(UDEV_RULES_PATH)
-- $(INSTALL_DATA) $(srcdir)/udev.rules $(DESTDIR)$(UDEV_RULES_PATH)/99-fuse.rules
-
- uninstall-local:
- rm -f $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
-Index: util/Makefile.am
-===================================================================
---- util/Makefile.am.orig
-+++ util/Makefile.am
-@@ -20,14 +20,6 @@ ulockmgr_server_SOURCES = ulockmgr_serve
+--- fuse-2.9.2.orig/util/Makefile.am 2012-07-19 07:33:49.000000000 -0500
++++ fuse-2.9.2/util/Makefile.am 2013-03-04 09:23:23.000000000 -0600
+@@ -20,14 +20,6 @@
ulockmgr_server_CPPFLAGS = -D_FILE_OFFSET_BITS=64 -D_REENTRANT
ulockmgr_server_LDFLAGS = -pthread
-install-exec-hook:
- -chmod u+s $(DESTDIR)$(bindir)/fusermount
- @if test ! -e $(DESTDIR)/dev/fuse; then \
-- $(mkdir_p) $(DESTDIR)/dev; \
+- $(MKDIR_P) $(DESTDIR)/dev; \
- echo "mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true"; \
- mknod $(DESTDIR)/dev/fuse -m 0666 c 10 229 || true; \
- fi
@@ -48,9 +15,9 @@
EXTRA_DIST = udev.rules init_script
MOUNT_FUSE_PATH = @MOUNT_FUSE_PATH@
-@@ -39,14 +31,8 @@ install-exec-local:
- $(INSTALL_PROGRAM) $(srcdir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
- $(mkdir_p) $(DESTDIR)$(INIT_D_PATH)
+@@ -39,14 +31,8 @@
+ $(INSTALL_PROGRAM) $(builddir)/mount.fuse $(DESTDIR)$(MOUNT_FUSE_PATH)/mount.fuse
+ $(MKDIR_P) $(DESTDIR)$(INIT_D_PATH)
$(INSTALL_SCRIPT) $(srcdir)/init_script $(DESTDIR)$(INIT_D_PATH)/fuse
- @if test -x /usr/sbin/update-rc.d; then \
- echo "/usr/sbin/update-rc.d fuse start 34 S . start 41 0 6 . || true"; \
@@ -58,7 +25,7 @@
- fi
install-data-local:
-- $(mkdir_p) $(DESTDIR)$(UDEV_RULES_PATH)
+- $(MKDIR_P) $(DESTDIR)$(UDEV_RULES_PATH)
- $(INSTALL_DATA) $(srcdir)/udev.rules $(DESTDIR)$(UDEV_RULES_PATH)/99-fuse.rules
uninstall-local:
++++++ fusermount-compile-as-pie.patch ++++++
--- /var/tmp/diff_new_pack.bkAG3R/_old 2013-03-08 21:04:06.000000000 +0100
+++ /var/tmp/diff_new_pack.bkAG3R/_new 2013-03-08 21:04:06.000000000 +0100
@@ -11,80 +11,3 @@
BUILT_SOURCES = mount_util.c
mount_util.c: $(top_srcdir)/lib/mount_util.c
@cp $(top_srcdir)/lib/mount_util.c .
-Index: fuse-2.9.0/util/Makefile.in
-===================================================================
---- fuse-2.9.0.orig/util/Makefile.in 2012-07-02 09:27:27.000000000 +0200
-+++ fuse-2.9.0/util/Makefile.in 2012-07-02 09:28:54.629721894 +0200
-@@ -59,6 +59,9 @@ fusermount_LDADD = $(LDADD)
- AM_V_lt = $(am__v_lt_$(V))
- am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
- am__v_lt_0 = --silent
-+fusermount_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(fusermount_CFLAGS) \
-+ $(CFLAGS) $(fusermount_LDFLAGS) $(LDFLAGS) -o $@
- am_mount_fuse_OBJECTS = mount.fuse.$(OBJEXT)
- mount_fuse_OBJECTS = $(am_mount_fuse_OBJECTS)
- mount_fuse_LDADD = $(LDADD)
-@@ -237,6 +240,8 @@ AM_CPPFLAGS = -D_FILE_OFFSET_BITS=64
- # copying it over.
- fusermount_SOURCES = fusermount.c mount_util.c
- fusermount_CPPFLAGS = -I$(top_srcdir)/lib
-+fusermount_CFLAGS = -fPIE $(AM_CFLAGS)
-+fusermount_LDFLAGS = -pie $(AM_LDFLAGS)
- BUILT_SOURCES = mount_util.c
- mount_fuse_SOURCES = mount.fuse.c
- ulockmgr_server_SOURCES = ulockmgr_server.c
-@@ -332,7 +337,7 @@ clean-noinstPROGRAMS:
- rm -f $$list
- fusermount$(EXEEXT): $(fusermount_OBJECTS) $(fusermount_DEPENDENCIES)
- @rm -f fusermount$(EXEEXT)
-- $(AM_V_CCLD)$(LINK) $(fusermount_OBJECTS) $(fusermount_LDADD) $(LIBS)
-+ $(AM_V_CCLD)$(fusermount_LINK) $(fusermount_OBJECTS) $(fusermount_LDADD) $(LIBS)
- mount.fuse$(EXEEXT): $(mount_fuse_OBJECTS) $(mount_fuse_DEPENDENCIES)
- @rm -f mount.fuse$(EXEEXT)
- $(AM_V_CCLD)$(LINK) $(mount_fuse_OBJECTS) $(mount_fuse_LDADD) $(LIBS)
-@@ -376,36 +381,36 @@ distclean-compile:
- @am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
-
- fusermount-fusermount.o: fusermount.c
--@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fusermount-fusermount.o -MD -MP -MF $(DEPDIR)/fusermount-fusermount.Tpo -c -o fusermount-fusermount.o `test -f 'fusermount.c' || echo '$(srcdir)/'`fusermount.c
-+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(fusermount_CFLAGS) $(CFLAGS) -MT fusermount-fusermount.o -MD -MP -MF $(DEPDIR)/fusermount-fusermount.Tpo -c -o fusermount-fusermount.o `test -f 'fusermount.c' || echo '$(srcdir)/'`fusermount.c
- @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fusermount-fusermount.Tpo $(DEPDIR)/fusermount-fusermount.Po
- @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fusermount.c' object='fusermount-fusermount.o' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fusermount-fusermount.o `test -f 'fusermount.c' || echo '$(srcdir)/'`fusermount.c
-+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(fusermount_CFLAGS) $(CFLAGS) -c -o fusermount-fusermount.o `test -f 'fusermount.c' || echo '$(srcdir)/'`fusermount.c
-
- fusermount-fusermount.obj: fusermount.c
--@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fusermount-fusermount.obj -MD -MP -MF $(DEPDIR)/fusermount-fusermount.Tpo -c -o fusermount-fusermount.obj `if test -f 'fusermount.c'; then $(CYGPATH_W) 'fusermount.c'; else $(CYGPATH_W) '$(srcdir)/fusermount.c'; fi`
-+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(fusermount_CFLAGS) $(CFLAGS) -MT fusermount-fusermount.obj -MD -MP -MF $(DEPDIR)/fusermount-fusermount.Tpo -c -o fusermount-fusermount.obj `if test -f 'fusermount.c'; then $(CYGPATH_W) 'fusermount.c'; else $(CYGPATH_W) '$(srcdir)/fusermount.c'; fi`
- @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fusermount-fusermount.Tpo $(DEPDIR)/fusermount-fusermount.Po
- @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='fusermount.c' object='fusermount-fusermount.obj' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fusermount-fusermount.obj `if test -f 'fusermount.c'; then $(CYGPATH_W) 'fusermount.c'; else $(CYGPATH_W) '$(srcdir)/fusermount.c'; fi`
-+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(fusermount_CFLAGS) $(CFLAGS) -c -o fusermount-fusermount.obj `if test -f 'fusermount.c'; then $(CYGPATH_W) 'fusermount.c'; else $(CYGPATH_W) '$(srcdir)/fusermount.c'; fi`
-
- fusermount-mount_util.o: mount_util.c
--@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fusermount-mount_util.o -MD -MP -MF $(DEPDIR)/fusermount-mount_util.Tpo -c -o fusermount-mount_util.o `test -f 'mount_util.c' || echo '$(srcdir)/'`mount_util.c
-+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(fusermount_CFLAGS) $(CFLAGS) -MT fusermount-mount_util.o -MD -MP -MF $(DEPDIR)/fusermount-mount_util.Tpo -c -o fusermount-mount_util.o `test -f 'mount_util.c' || echo '$(srcdir)/'`mount_util.c
- @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fusermount-mount_util.Tpo $(DEPDIR)/fusermount-mount_util.Po
- @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mount_util.c' object='fusermount-mount_util.o' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fusermount-mount_util.o `test -f 'mount_util.c' || echo '$(srcdir)/'`mount_util.c
-+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(fusermount_CFLAGS) $(CFLAGS) -c -o fusermount-mount_util.o `test -f 'mount_util.c' || echo '$(srcdir)/'`mount_util.c
-
- fusermount-mount_util.obj: mount_util.c
--@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT fusermount-mount_util.obj -MD -MP -MF $(DEPDIR)/fusermount-mount_util.Tpo -c -o fusermount-mount_util.obj `if test -f 'mount_util.c'; then $(CYGPATH_W) 'mount_util.c'; else $(CYGPATH_W) '$(srcdir)/mount_util.c'; fi`
-+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(fusermount_CFLAGS) $(CFLAGS) -MT fusermount-mount_util.obj -MD -MP -MF $(DEPDIR)/fusermount-mount_util.Tpo -c -o fusermount-mount_util.obj `if test -f 'mount_util.c'; then $(CYGPATH_W) 'mount_util.c'; else $(CYGPATH_W) '$(srcdir)/mount_util.c'; fi`
- @am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/fusermount-mount_util.Tpo $(DEPDIR)/fusermount-mount_util.Po
- @am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='mount_util.c' object='fusermount-mount_util.obj' libtool=no @AMDEPBACKSLASH@
- @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
--@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o fusermount-mount_util.obj `if test -f 'mount_util.c'; then $(CYGPATH_W) 'mount_util.c'; else $(CYGPATH_W) '$(srcdir)/mount_util.c'; fi`
-+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(fusermount_CPPFLAGS) $(CPPFLAGS) $(fusermount_CFLAGS) $(CFLAGS) -c -o fusermount-mount_util.obj `if test -f 'mount_util.c'; then $(CYGPATH_W) 'mount_util.c'; else $(CYGPATH_W) '$(srcdir)/mount_util.c'; fi`
-
- ulockmgr_server-ulockmgr_server.o: ulockmgr_server.c
- @am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ulockmgr_server_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ulockmgr_server-ulockmgr_server.o -MD -MP -MF $(DEPDIR)/ulockmgr_server-ulockmgr_server.Tpo -c -o ulockmgr_server-ulockmgr_server.o `test -f 'ulockmgr_server.c' || echo '$(srcdir)/'`ulockmgr_server.c
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org