Hello community,
here is the log from the commit of package fuse
checked in at Fri Nov 23 17:24:30 CET 2007.
--------
--- fuse/fuse.changes 2007-09-02 07:43:19.000000000 +0200
+++ /mounts/work_src_done/STABLE/fuse/fuse.changes 2007-11-23 15:09:13.541793000 +0100
@@ -1,0 +2,9 @@
+Fri Nov 23 13:47:38 CET 2007 - mszeredi@suse.de
+
+- Update to version 2.7.1
+ * Add missing context initialization in fuse_fs_chmod()
+ * Fix a fuse_req leak in do_forget()
+ * Work around hotplug issue
+ * Reset args->argc in fuse_opt_free_args()
+
+-------------------------------------------------------------------
Old:
----
fuse-2.7.0.tar.bz2
New:
----
fuse-2.7.1.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ fuse.spec ++++++
--- /var/tmp/diff_new_pack.HD2011/_old 2007-11-23 17:24:17.000000000 +0100
+++ /var/tmp/diff_new_pack.HD2011/_new 2007-11-23 17:24:17.000000000 +0100
@@ -1,5 +1,5 @@
#
-# spec file for package fuse (Version 2.7.0)
+# spec file for package fuse (Version 2.7.1)
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -12,16 +12,16 @@
Name: fuse
Summary: User space File System
-Version: 2.7.0
-Release: 18
-License: GPL any version; LGPL any version
+Version: 2.7.1
+Release: 1
+License: GPL v2 or later; LGPL v2.1 or later
Group: System/Filesystems
Source: %{name}-%{version}.tar.bz2
Source1: boot.fuse
Source2: fuse.rpmlintrc
Patch: fuse-install-fix.diff
Patch2: fuse-pc-remove-libdir-from-Libs.diff
-URL: http://fuse.sourceforge.net
+Url: http://fuse.sourceforge.net
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: licenses
BuildRequires: licenses
@@ -203,7 +203,6 @@
%post
%{insserv_force_if_yast boot.fuse}
%run_permissions
-
%verifyscript
%verify_permissions -e %{usrbindir}/fusermount
@@ -253,6 +252,12 @@
%exclude %{devlibdir}/libulockmgr.*
%changelog
+* Fri Nov 23 2007 - mszeredi@suse.de
+- Update to version 2.7.1
+ * Add missing context initialization in fuse_fs_chmod()
+ * Fix a fuse_req leak in do_forget()
+ * Work around hotplug issue
+ * Reset args->argc in fuse_opt_free_args()
* Sun Sep 02 2007 - aj@suse.de
- Fix building.
- Rename rpmlintrc to fuse.rpmlintrc and add it as source.
++++++ fuse-2.7.0.tar.bz2 -> fuse-2.7.1.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/ChangeLog new/fuse-2.7.1/ChangeLog
--- old/fuse-2.7.0/ChangeLog 2007-07-02 13:32:15.000000000 +0200
+++ new/fuse-2.7.1/ChangeLog 2007-10-16 18:35:21.000000000 +0200
@@ -1,3 +1,49 @@
+2007-10-16 Miklos Szeredi
+
+ * Released 2.7.1
+
+2007-10-16 Miklos Szeredi
+
+ * Clarify licence version to be "LGPLv2" for the library
+
+ * kernel fixes:
+
+ * After mount set nlink attribute for the root inode to 1
+
+ * Fix wake up of task waiting for a reserved request
+
+ * Fix allowing setattr, listxattr and statfs for other users
+
+2007-09-18 Miklos Szeredi
+
+ * Add missing context initialization in fuse_fs_chmod(). Bug
+ found by "iohead"
+
+ * Fix kernel module compilation for 2.6.23. Based on patch by
+ Marian Marinov
+
+2007-09-04 Philippe Elie
+
+ * lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget()
+
+2007-07-31 Miklos Szeredi
+
+ * Work around hotplug issue, that it calls filesystem with file
+ descriptors 0, 1 and 2 not open. Tracked down by Leif Johnson
+
+2007-07-25 Miklos Szeredi
+
+ * Don't call /bin/[u]mount if /etc/mtab is a symlink. Reported by
+ Tomas M
+
+ * Also don't touch /etc/mtab if it is within the mounted
+ filesystem. Suggested by Jeffrey Law
+
+2007-07-12 Miklos Szeredi
+
+ * Reset args->argc in fuse_opt_free_args(). Patch by Lucas
+ C. Villa Real
+
2007-07-02 Miklos Szeredi
* Released 2.7.0
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/configure new/fuse-2.7.1/configure
--- old/fuse-2.7.0/configure 2007-07-02 13:49:44.000000000 +0200
+++ new/fuse-2.7.1/configure 2007-10-16 18:42:01.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for fuse 2.7.0.
+# Generated by GNU Autoconf 2.61 for fuse 2.7.1.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -721,8 +721,8 @@
# Identity of this package.
PACKAGE_NAME='fuse'
PACKAGE_TARNAME='fuse'
-PACKAGE_VERSION='2.7.0'
-PACKAGE_STRING='fuse 2.7.0'
+PACKAGE_VERSION='2.7.1'
+PACKAGE_STRING='fuse 2.7.1'
PACKAGE_BUGREPORT=''
# Factoring default headers for most tests.
@@ -1390,7 +1390,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.7.0 to adapt to many kinds of systems.
+\`configure' configures fuse 2.7.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1461,7 +1461,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of fuse 2.7.0:";;
+ short | recursive ) echo "Configuration of fuse 2.7.1:";;
esac
cat <<\_ACEOF
@@ -1567,7 +1567,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-fuse configure 2.7.0
+fuse configure 2.7.1
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1581,7 +1581,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.7.0, which was
+It was created by fuse $as_me 2.7.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2377,7 +2377,7 @@
# Define the identity of the package.
PACKAGE='fuse'
- VERSION='2.7.0'
+ VERSION='2.7.1'
cat >>confdefs.h <<_ACEOF
@@ -12778,7 +12778,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.7.0, which was
+This file was extended by fuse $as_me 2.7.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -12831,7 +12831,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-fuse config.status 2.7.0
+fuse config.status 2.7.1
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/configure.in new/fuse-2.7.1/configure.in
--- old/fuse-2.7.0/configure.in 2007-07-02 13:32:15.000000000 +0200
+++ new/fuse-2.7.1/configure.in 2007-10-16 18:35:21.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(fuse, 2.7.0)
+AC_INIT(fuse, 2.7.1)
AC_CANONICAL_TARGET
AM_INIT_AUTOMAKE
AM_CONFIG_HEADER(include/config.h)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/doc/Doxyfile new/fuse-2.7.1/doc/Doxyfile
--- old/fuse-2.7.0/doc/Doxyfile 1970-01-01 01:00:00.000000000 +0100
+++ new/fuse-2.7.1/doc/Doxyfile 2007-10-16 16:29:28.000000000 +0200
@@ -0,0 +1,235 @@
+# Doxyfile 1.5.0
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = fuse
+PROJECT_NUMBER =
+OUTPUT_DIRECTORY = doc
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+USE_WINDOWS_ENCODING = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH =
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = NO
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 8
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = NO
+BUILTIN_STL_SUPPORT = NO
+DISTRIBUTE_GROUP_DOC = NO
+SUBGROUPING = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = NO
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = NO
+HIDE_UNDOC_MEMBERS = YES
+HIDE_UNDOC_CLASSES = YES
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_DIRECTORIES = NO
+FILE_VERSION_FILTER =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = include
+FILE_PATTERNS = *.h
+RECURSIVE = YES
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS = *
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = NO
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION = NO
+REFERENCES_LINK_SOURCE = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = NO
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+BINARY_TOC = NO
+TOC_EXPAND = NO
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = NO
+TREEVIEW_WIDTH = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = NO
+USE_PDFLATEX = NO
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = NO
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = NO
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = NO
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
+CALLER_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+MAX_DOT_GRAPH_WIDTH = 1024
+MAX_DOT_GRAPH_HEIGHT = 1024
+MAX_DOT_GRAPH_DEPTH = 1000
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/FAQ new/fuse-2.7.1/FAQ
--- old/fuse-2.7.0/FAQ 2006-10-17 17:02:54.000000000 +0200
+++ new/fuse-2.7.1/FAQ 2007-10-16 18:35:21.000000000 +0200
@@ -73,7 +73,7 @@
The kernel part is released under the GNU GPL.
-Libfuse is released under the GNU LGPL.
+Libfuse is released under the GNU LGPLv2.
All other parts (examples, fusermount, etc) are released under the GNU
GPL.
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/include/fuse_common_compat.h new/fuse-2.7.1/include/fuse_common_compat.h
--- old/fuse-2.7.0/include/fuse_common_compat.h 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/include/fuse_common_compat.h 2007-10-16 18:35:22.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/include/fuse_common.h new/fuse-2.7.1/include/fuse_common.h
--- old/fuse-2.7.0/include/fuse_common.h 2007-07-02 13:32:15.000000000 +0200
+++ new/fuse-2.7.1/include/fuse_common.h 2007-10-16 18:35:22.000000000 +0200
@@ -2,10 +2,12 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
+/** @file */
+
#if !defined(_FUSE_H_) && !defined(_FUSE_LOWLEVEL_H_)
#error "Never include directly; use or
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/include/fuse.h new/fuse-2.7.1/include/fuse.h
--- old/fuse-2.7.0/include/fuse.h 2007-07-02 13:32:15.000000000 +0200
+++ new/fuse-2.7.1/include/fuse.h 2007-10-16 18:35:22.000000000 +0200
@@ -2,19 +2,22 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
#ifndef _FUSE_H_
#define _FUSE_H_
-/* This file defines the library interface of FUSE */
-
-/* IMPORTANT: you should define FUSE_USE_VERSION before including this
- header. To use the newest API define it to 26 (recommended for any
- new application), to use the old API define it to 21 (default) 22
- or 25, to use the even older 1.X API define it to 11. */
+/** @file
+ *
+ * This file defines the library interface of FUSE
+ *
+ * IMPORTANT: you should define FUSE_USE_VERSION before including this
+ * header. To use the newest API define it to 26 (recommended for any
+ * new application), to use the old API define it to 21 (default) 22
+ * or 25, to use the even older 1.X API define it to 11.
+ */
#ifndef FUSE_USE_VERSION
#define FUSE_USE_VERSION 21
@@ -443,7 +446,7 @@
void *private_data;
};
-/*
+/**
* Main function of FUSE.
*
* This is for the lazy. This is all that has to be called from the
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/include/fuse_kernel.h new/fuse-2.7.1/include/fuse_kernel.h
--- old/fuse-2.7.0/include/fuse_kernel.h 2007-05-23 16:35:49.000000000 +0200
+++ new/fuse-2.7.1/include/fuse_kernel.h 2007-09-18 13:18:38.000000000 +0200
@@ -1,19 +1,14 @@
/*
- FUSE: Filesystem in Userspace
+ This file defines the kernel interface of FUSE
Copyright (C) 2001-2007 Miklos Szeredi
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
-*/
-
-/* This file defines the kernel interface of FUSE */
-#ifdef __FreeBSD__
-/*
This -- and only this -- header file may also be distributed under
the terms of the BSD Licence as follows:
- Copyright (C) 2001-2006 Miklos Szeredi. All rights reserved.
+ Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -37,6 +32,7 @@
SUCH DAMAGE.
*/
+#ifndef linux
#include
#define __u64 uint64_t
#define __u32 uint32_t
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/include/fuse_lowlevel_compat.h new/fuse-2.7.1/include/fuse_lowlevel_compat.h
--- old/fuse-2.7.0/include/fuse_lowlevel_compat.h 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/include/fuse_lowlevel_compat.h 2007-10-16 18:35:22.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/include/fuse_lowlevel.h new/fuse-2.7.1/include/fuse_lowlevel.h
--- old/fuse-2.7.0/include/fuse_lowlevel.h 2007-05-23 16:37:26.000000000 +0200
+++ new/fuse-2.7.1/include/fuse_lowlevel.h 2007-10-16 18:35:22.000000000 +0200
@@ -2,21 +2,22 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
#ifndef _FUSE_LOWLEVEL_H_
#define _FUSE_LOWLEVEL_H_
-/* =========================================================== *
- * Low level API *
- * =========================================================== */
-
-/* IMPORTANT: you should define FUSE_USE_VERSION before including this
- header. To use the newest API define it to 26 (recommended for any
- new application), to use the old API define it to 24 (default) or
- 25 */
+/** @file
+ *
+ * Low level API
+ *
+ * IMPORTANT: you should define FUSE_USE_VERSION before including this
+ * header. To use the newest API define it to 26 (recommended for any
+ * new application), to use the old API define it to 24 (default) or
+ * 25
+ */
#ifndef FUSE_USE_VERSION
#define FUSE_USE_VERSION 24
@@ -74,11 +75,15 @@
*/
fuse_ino_t ino;
- /** The ino/generation pair should be unique for the filesystem's
- lifetime */
+ /** Generation number for this entry. The ino/generation pair
+ should be unique for the filesystem's lifetime. It must be
+ non-zero, otherwise FUSE will treat it as an error. */
unsigned long generation;
- /** Inode attributes */
+ /** Inode attributes. Even if attr_timeout == 0, attr must be
+ correct. For example, for open(), FUSE uses attr.st_size from
+ lookup() to determine how many bytes to request. If this
+ value is not correct, incorrect data will be returned. */
struct stat attr;
/** Validity timeout (in seconds) for the attributes */
@@ -157,7 +162,7 @@
void (*destroy) (void *userdata);
/**
- * Look up a directory entry by name
+ * Look up a directory entry by name and get its attributes.
*
* Valid replies:
* fuse_reply_entry
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/include/fuse_opt.h new/fuse-2.7.1/include/fuse_opt.h
--- old/fuse-2.7.0/include/fuse_opt.h 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/include/fuse_opt.h 2007-10-16 18:35:22.000000000 +0200
@@ -2,14 +2,17 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
#ifndef _FUSE_OPT_H_
#define _FUSE_OPT_H_
-/* This file defines the option parsing interface of FUSE */
+/** @file
+ *
+ * This file defines the option parsing interface of FUSE
+ */
#ifdef __cplusplus
extern "C" {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/include/ulockmgr.h new/fuse-2.7.1/include/ulockmgr.h
--- old/fuse-2.7.0/include/ulockmgr.h 2006-09-27 20:20:43.000000000 +0200
+++ new/fuse-2.7.1/include/ulockmgr.h 2007-10-16 18:35:22.000000000 +0200
@@ -2,7 +2,7 @@
libulockmgr: Userspace Lock Manager Library
Copyright (C) 2006 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/kernel/configure new/fuse-2.7.1/kernel/configure
--- old/fuse-2.7.0/kernel/configure 2007-07-02 13:49:23.000000000 +0200
+++ new/fuse-2.7.1/kernel/configure 2007-10-16 18:41:39.000000000 +0200
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for fuse-kernel 2.7.0.
+# Generated by GNU Autoconf 2.61 for fuse-kernel 2.7.1.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -572,8 +572,8 @@
# Identity of this package.
PACKAGE_NAME='fuse-kernel'
PACKAGE_TARNAME='fuse-kernel'
-PACKAGE_VERSION='2.7.0'
-PACKAGE_STRING='fuse-kernel 2.7.0'
+PACKAGE_VERSION='2.7.1'
+PACKAGE_STRING='fuse-kernel 2.7.1'
PACKAGE_BUGREPORT=''
ac_subst_vars='SHELL
@@ -1130,7 +1130,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-kernel 2.7.0 to adapt to many kinds of systems.
+\`configure' configures fuse-kernel 2.7.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1191,7 +1191,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of fuse-kernel 2.7.0:";;
+ short | recursive ) echo "Configuration of fuse-kernel 2.7.1:";;
esac
cat <<\_ACEOF
@@ -1266,7 +1266,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-fuse-kernel configure 2.7.0
+fuse-kernel configure 2.7.1
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1280,7 +1280,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-kernel $as_me 2.7.0, which was
+It was created by fuse-kernel $as_me 2.7.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
@@ -2487,7 +2487,7 @@
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by fuse-kernel $as_me 2.7.0, which was
+This file was extended by fuse-kernel $as_me 2.7.1, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -2536,7 +2536,7 @@
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-fuse-kernel config.status 2.7.0
+fuse-kernel config.status 2.7.1
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/kernel/configure.ac new/fuse-2.7.1/kernel/configure.ac
--- old/fuse-2.7.0/kernel/configure.ac 2007-07-02 13:32:15.000000000 +0200
+++ new/fuse-2.7.1/kernel/configure.ac 2007-10-16 18:35:22.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(fuse-kernel, 2.7.0)
+AC_INIT(fuse-kernel, 2.7.1)
AC_CONFIG_HEADERS([config.h])
AC_PROG_INSTALL
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/kernel/dev.c new/fuse-2.7.1/kernel/dev.c
--- old/fuse-2.7.0/kernel/dev.c 2007-05-03 12:59:50.000000000 +0200
+++ new/fuse-2.7.1/kernel/dev.c 2007-10-16 18:35:22.000000000 +0200
@@ -131,7 +131,7 @@
struct fuse_file *ff = file->private_data;
do {
- wait_event(fc->blocked_waitq, ff->reserved_req);
+ wait_event(fc->reserved_req_waitq, ff->reserved_req);
spin_lock(&fc->lock);
if (ff->reserved_req) {
req = ff->reserved_req;
@@ -157,7 +157,7 @@
fuse_request_init(req);
BUG_ON(ff->reserved_req);
ff->reserved_req = req;
- wake_up(&fc->blocked_waitq);
+ wake_up_all(&fc->reserved_req_waitq);
spin_unlock(&fc->lock);
fput(file);
}
@@ -1093,9 +1093,15 @@
int __init fuse_dev_init(void)
{
int err = -ENOMEM;
+#ifdef KERNEL_2_6_23_PLUS
+ fuse_req_cachep = kmem_cache_create("fuse_request",
+ sizeof(struct fuse_req),
+ 0, 0, NULL);
+#else
fuse_req_cachep = kmem_cache_create("fuse_request",
sizeof(struct fuse_req),
0, 0, NULL, NULL);
+#endif
if (!fuse_req_cachep)
goto out;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/kernel/dir.c new/fuse-2.7.1/kernel/dir.c
--- old/fuse-2.7.0/kernel/dir.c 2007-05-23 16:35:49.000000000 +0200
+++ new/fuse-2.7.1/kernel/dir.c 2007-10-16 18:35:22.000000000 +0200
@@ -720,7 +720,7 @@
* for which the owner of the mount has ptrace privilege. This
* excludes processes started by other users, suid or sgid processes.
*/
-static int fuse_allow_task(struct fuse_conn *fc, struct task_struct *task)
+int fuse_allow_task(struct fuse_conn *fc, struct task_struct *task)
{
if (fc->flags & FUSE_ALLOW_OTHER)
return 1;
@@ -1059,6 +1059,9 @@
int err;
int is_truncate = 0;
+ if (!fuse_allow_task(fc, current))
+ return -EACCES;
+
if (fc->flags & FUSE_DEFAULT_PERMISSIONS) {
err = inode_change_ok(inode, attr);
if (err)
@@ -1233,6 +1236,9 @@
struct fuse_getxattr_out outarg;
ssize_t ret;
+ if (!fuse_allow_task(fc, current))
+ return -EACCES;
+
if (fc->no_listxattr)
return -EOPNOTSUPP;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/kernel/file.c new/fuse-2.7.1/kernel/file.c
--- old/fuse-2.7.0/kernel/file.c 2007-07-02 13:32:15.000000000 +0200
+++ new/fuse-2.7.1/kernel/file.c 2007-10-16 18:35:22.000000000 +0200
@@ -865,7 +865,11 @@
.release = fuse_release,
.fsync = fuse_fsync,
.lock = fuse_file_lock,
+#ifdef KERNEL_2_6_23_PLUS
+ .splice_read = generic_file_splice_read,
+#else
.sendfile = generic_file_sendfile,
+#endif
};
static struct file_operations fuse_direct_io_file_operations = {
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/kernel/fuse_i.h new/fuse-2.7.1/kernel/fuse_i.h
--- old/fuse-2.7.0/kernel/fuse_i.h 2007-07-02 13:32:15.000000000 +0200
+++ new/fuse-2.7.1/kernel/fuse_i.h 2007-10-16 18:35:22.000000000 +0200
@@ -45,6 +45,9 @@
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
# define KERNEL_2_6_22_PLUS
#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
+# define KERNEL_2_6_23_PLUS
+#endif
#if defined(__arm__) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
#define DCACHE_BUG
@@ -365,6 +368,9 @@
/** waitq for blocked connection */
wait_queue_head_t blocked_waitq;
+ /** waitq for reserved requests */
+ wait_queue_head_t reserved_req_waitq;
+
/** The next unique request id */
u64 reqctr;
@@ -636,3 +642,8 @@
* Is file type valid?
*/
int fuse_valid_type(int m);
+
+/**
+ * Is task allowed to perform filesystem operation?
+ */
+int fuse_allow_task(struct fuse_conn *fc, struct task_struct *task);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/kernel/fuse_kernel.h new/fuse-2.7.1/kernel/fuse_kernel.h
--- old/fuse-2.7.0/kernel/fuse_kernel.h 2007-05-23 16:35:49.000000000 +0200
+++ new/fuse-2.7.1/kernel/fuse_kernel.h 2007-09-18 13:18:38.000000000 +0200
@@ -1,19 +1,14 @@
/*
- FUSE: Filesystem in Userspace
+ This file defines the kernel interface of FUSE
Copyright (C) 2001-2007 Miklos Szeredi
This program can be distributed under the terms of the GNU GPL.
See the file COPYING.
-*/
-
-/* This file defines the kernel interface of FUSE */
-#ifdef __FreeBSD__
-/*
This -- and only this -- header file may also be distributed under
the terms of the BSD Licence as follows:
- Copyright (C) 2001-2006 Miklos Szeredi. All rights reserved.
+ Copyright (C) 2001-2007 Miklos Szeredi. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
@@ -37,6 +32,7 @@
SUCH DAMAGE.
*/
+#ifndef linux
#include
#define __u64 uint64_t
#define __u32 uint32_t
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/kernel/inode.c new/fuse-2.7.1/kernel/inode.c
--- old/fuse-2.7.0/kernel/inode.c 2007-07-02 13:32:15.000000000 +0200
+++ new/fuse-2.7.1/kernel/inode.c 2007-10-16 18:35:22.000000000 +0200
@@ -258,6 +258,7 @@
kill_fasync(&fc->fasync, SIGIO, POLL_IN);
wake_up_all(&fc->waitq);
wake_up_all(&fc->blocked_waitq);
+ wake_up_all(&fc->reserved_req_waitq);
mutex_lock(&fuse_mutex);
list_del(&fc->entry);
fuse_ctl_remove_conn(fc);
@@ -293,6 +294,11 @@
struct fuse_statfs_out outarg;
int err;
+ if (!fuse_allow_task(fc, current)) {
+ buf->f_type = FUSE_SUPER_MAGIC;
+ return 0;
+ }
+
req = fuse_get_req(fc);
if (IS_ERR(req))
return PTR_ERR(req);
@@ -469,6 +475,7 @@
atomic_set(&fc->count, 1);
init_waitqueue_head(&fc->waitq);
init_waitqueue_head(&fc->blocked_waitq);
+ init_waitqueue_head(&fc->reserved_req_waitq);
INIT_LIST_HEAD(&fc->pending);
INIT_LIST_HEAD(&fc->processing);
INIT_LIST_HEAD(&fc->io);
@@ -506,6 +513,7 @@
attr.mode = mode;
attr.ino = FUSE_ROOT_ID;
+ attr.nlink = 1;
return fuse_iget(sb, 1, 0, &attr);
}
#ifndef FUSE_MAINLINE
@@ -861,10 +869,18 @@
if (err)
goto out_unreg;
+#ifdef KERNEL_2_6_23_PLUS
+ fuse_inode_cachep = kmem_cache_create("fuse_inode",
+ sizeof(struct fuse_inode),
+ 0, SLAB_HWCACHE_ALIGN,
+ fuse_inode_init_once);
+#else
fuse_inode_cachep = kmem_cache_create("fuse_inode",
sizeof(struct fuse_inode),
0, SLAB_HWCACHE_ALIGN,
fuse_inode_init_once, NULL);
+#endif
+
err = -ENOMEM;
if (!fuse_inode_cachep)
goto out_unreg2;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse.c new/fuse-2.7.1/lib/fuse.c
--- old/fuse-2.7.0/lib/fuse.c 2007-07-02 13:33:08.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
@@ -1425,6 +1425,7 @@
int fuse_fs_chmod(struct fuse_fs *fs, const char *path, mode_t mode)
{
+ fuse_get_context()->private_data = fs->user_data;
if (fs->op.chmod)
return fs->op.chmod(path, mode);
else
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_i.h new/fuse-2.7.1/lib/fuse_i.h
--- old/fuse-2.7.0/lib/fuse_i.h 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_i.h 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_kern_chan.c new/fuse-2.7.1/lib/fuse_kern_chan.c
--- old/fuse-2.7.0/lib/fuse_kern_chan.c 2007-05-20 13:05:46.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_kern_chan.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_loop.c new/fuse-2.7.1/lib/fuse_loop.c
--- old/fuse-2.7.0/lib/fuse_loop.c 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_loop.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_loop_mt.c new/fuse-2.7.1/lib/fuse_loop_mt.c
--- old/fuse-2.7.0/lib/fuse_loop_mt.c 2007-07-02 13:32:17.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_loop_mt.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_lowlevel.c new/fuse-2.7.1/lib/fuse_lowlevel.c
--- old/fuse-2.7.0/lib/fuse_lowlevel.c 2007-07-02 13:32:17.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_lowlevel.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
@@ -450,6 +450,8 @@
if (req->f->op.forget)
req->f->op.forget(req, nodeid, arg->nlookup);
+ else
+ fuse_reply_none(req);
}
static void do_getattr(fuse_req_t req, fuse_ino_t nodeid, const void *inarg)
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_misc.h new/fuse-2.7.1/lib/fuse_misc.h
--- old/fuse-2.7.0/lib/fuse_misc.h 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_misc.h 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_mt.c new/fuse-2.7.1/lib/fuse_mt.c
--- old/fuse-2.7.0/lib/fuse_mt.c 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_mt.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_opt.c new/fuse-2.7.1/lib/fuse_opt.c
--- old/fuse-2.7.0/lib/fuse_opt.c 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_opt.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
@@ -27,11 +27,14 @@
void fuse_opt_free_args(struct fuse_args *args)
{
- if (args && args->argv && args->allocated) {
- int i;
- for (i = 0; i < args->argc; i++)
- free(args->argv[i]);
- free(args->argv);
+ if (args) {
+ if (args->argv && args->allocated) {
+ int i;
+ for (i = 0; i < args->argc; i++)
+ free(args->argv[i]);
+ free(args->argv);
+ }
+ args->argc = 0;
args->argv = NULL;
args->allocated = 0;
}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_session.c new/fuse-2.7.1/lib/fuse_session.c
--- old/fuse-2.7.0/lib/fuse_session.c 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_session.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/fuse_signals.c new/fuse-2.7.1/lib/fuse_signals.c
--- old/fuse-2.7.0/lib/fuse_signals.c 2007-04-25 18:14:26.000000000 +0200
+++ new/fuse-2.7.1/lib/fuse_signals.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/helper.c new/fuse-2.7.1/lib/helper.c
--- old/fuse-2.7.0/lib/helper.c 2007-07-02 13:32:17.000000000 +0200
+++ new/fuse-2.7.1/lib/helper.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
@@ -190,7 +190,19 @@
struct fuse_args *args)
{
struct fuse_chan *ch;
- int fd = fuse_mount_compat25(mountpoint, args);
+ int fd;
+
+ /*
+ * Make sure file descriptors 0, 1 and 2 are open, otherwise chaos
+ * would ensue.
+ */
+ do {
+ fd = open("/dev/null", O_RDWR);
+ if (fd > 2)
+ close(fd);
+ } while (fd >= 0 && fd <= 2);
+
+ fd = fuse_mount_compat25(mountpoint, args);
if (fd == -1)
return NULL;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/Makefile.am new/fuse-2.7.1/lib/Makefile.am
--- old/fuse-2.7.0/lib/Makefile.am 2007-04-25 18:06:46.000000000 +0200
+++ new/fuse-2.7.1/lib/Makefile.am 2007-10-16 18:35:23.000000000 +0200
@@ -34,7 +34,7 @@
$(iconv_source) \
$(mount_source)
-libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:0 \
+libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:1 \
-Wl,--version-script,$(srcdir)/fuse_versionscript
libulockmgr_la_SOURCES = ulockmgr.c
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/Makefile.in new/fuse-2.7.1/lib/Makefile.in
--- old/fuse-2.7.0/lib/Makefile.in 2007-07-02 13:49:57.000000000 +0200
+++ new/fuse-2.7.1/lib/Makefile.in 2007-10-16 18:42:15.000000000 +0200
@@ -230,7 +230,7 @@
$(iconv_source) \
$(mount_source)
-libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:0 \
+libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:1 \
-Wl,--version-script,$(srcdir)/fuse_versionscript
libulockmgr_la_SOURCES = ulockmgr.c
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/modules/iconv.c new/fuse-2.7.1/lib/modules/iconv.c
--- old/fuse-2.7.0/lib/modules/iconv.c 2007-05-02 16:34:03.000000000 +0200
+++ new/fuse-2.7.1/lib/modules/iconv.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
fuse iconv module: file name charset conversion
Copyright (C) 2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/modules/subdir.c new/fuse-2.7.1/lib/modules/subdir.c
--- old/fuse-2.7.0/lib/modules/subdir.c 2007-05-20 13:05:46.000000000 +0200
+++ new/fuse-2.7.1/lib/modules/subdir.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
fuse subdir module: offset paths with a base directory
Copyright (C) 2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/mount_bsd.c new/fuse-2.7.1/lib/mount_bsd.c
--- old/fuse-2.7.0/lib/mount_bsd.c 2006-05-03 16:46:04.000000000 +0200
+++ new/fuse-2.7.1/lib/mount_bsd.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2005-2006 Csaba Henk
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/mount.c new/fuse-2.7.1/lib/mount.c
--- old/fuse-2.7.0/lib/mount.c 2007-07-02 13:32:17.000000000 +0200
+++ new/fuse-2.7.1/lib/mount.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/mount_util.c new/fuse-2.7.1/lib/mount_util.c
--- old/fuse-2.7.0/lib/mount_util.c 2007-07-02 13:32:17.000000000 +0200
+++ new/fuse-2.7.1/lib/mount_util.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
@@ -14,15 +14,34 @@
#include
#include
#include
+#include
#include
#include
+static int mtab_needs_update(const char *mnt)
+{
+ struct stat stbuf;
+
+ /* If mtab is within new mount, don't touch it */
+ if (strncmp(mnt, _PATH_MOUNTED, strlen(mnt)) == 0 &&
+ _PATH_MOUNTED[strlen(mnt)] == '/')
+ return 0;
+
+ if (lstat(_PATH_MOUNTED, &stbuf) != -1 && S_ISLNK(stbuf.st_mode))
+ return 0;
+
+ return 1;
+}
+
int fuse_mnt_add_mount(const char *progname, const char *fsname,
const char *mnt, const char *type, const char *opts)
{
int res;
int status;
+ if (!mtab_needs_update(mnt))
+ return 0;
+
res = fork();
if (res == -1) {
fprintf(stderr, "%s: fork: %s\n", progname, strerror(errno));
@@ -72,6 +91,9 @@
int res;
int status;
+ if (!mtab_needs_update(mnt))
+ return 0;
+
res = fork();
if (res == -1) {
fprintf(stderr, "%s: fork: %s\n", progname, strerror(errno));
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/mount_util.h new/fuse-2.7.1/lib/mount_util.h
--- old/fuse-2.7.0/lib/mount_util.h 2007-07-02 13:32:17.000000000 +0200
+++ new/fuse-2.7.1/lib/mount_util.h 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
FUSE: Filesystem in Userspace
Copyright (C) 2001-2007 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB.
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/lib/ulockmgr.c new/fuse-2.7.1/lib/ulockmgr.c
--- old/fuse-2.7.0/lib/ulockmgr.c 2007-07-02 13:32:17.000000000 +0200
+++ new/fuse-2.7.1/lib/ulockmgr.c 2007-10-16 18:35:23.000000000 +0200
@@ -2,7 +2,7 @@
libulockmgr: Userspace Lock Manager Library
Copyright (C) 2006 Miklos Szeredi
- This program can be distributed under the terms of the GNU LGPL.
+ This program can be distributed under the terms of the GNU LGPLv2.
See the file COPYING.LIB
*/
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/Makefile.am new/fuse-2.7.1/Makefile.am
--- old/fuse-2.7.0/Makefile.am 2005-11-16 13:43:18.000000000 +0100
+++ new/fuse-2.7.1/Makefile.am 2007-10-16 18:41:04.000000000 +0200
@@ -8,7 +8,8 @@
Filesystems \
FAQ \
doc/how-fuse-works \
- doc/kernel.txt
+ doc/kernel.txt \
+ doc/Doxyfile
pkgconfigdir = @pkgconfigdir@
pkgconfig_DATA = fuse.pc
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/Makefile.in new/fuse-2.7.1/Makefile.in
--- old/fuse-2.7.0/Makefile.in 2007-07-02 13:49:58.000000000 +0200
+++ new/fuse-2.7.1/Makefile.in 2007-10-16 18:42:17.000000000 +0200
@@ -206,7 +206,8 @@
Filesystems \
FAQ \
doc/how-fuse-works \
- doc/kernel.txt
+ doc/kernel.txt \
+ doc/Doxyfile
pkgconfig_DATA = fuse.pc
all: all-recursive
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/fuse-2.7.0/README new/fuse-2.7.1/README
--- old/fuse-2.7.0/README 2006-10-26 13:08:18.000000000 +0200
+++ new/fuse-2.7.1/README 2007-08-03 13:32:13.000000000 +0200
@@ -170,6 +170,12 @@
is still cached after the open(), so a read() system call will not
always initiate a read operation.
+auto_cache
+
+ This option enables automatic flushing of the data cache on open().
+ The cache will only be flushed if the modification time or the size
+ of the file has changed.
+
large_read
Issue large read requests. This can improve performance for some
@@ -197,6 +203,27 @@
The default is infinite. Note that the size of read requests is
limited anyway to 32 pages (which is 128kbyte on i386).
+max_readahead=N
+
+ Set the maximum number of bytes to read-ahead. The default is
+ determined by the kernel. On linux-2.6.22 or earlier it's 131072
+ (128kbytes)
+
+max_write=N
+
+ Set the maximum number of bytes in a single write operation. The
+ default is 128kbytes. Note, that due to various limitations, the
+ size of write requests can be much smaller (4kbytes). This
+ limitation will be removed in the future.
+
+async_read
+
+ Perform reads asynchronously. This is the default
+
+sync_read
+
+ Perform all reads (even read-ahead) synchronously.
+
hard_remove
The default behavior is that if an open file is deleted, the file is
@@ -226,7 +253,19 @@
fsname=NAME
- Sets the filesystem name. The default is the program name.
+ Sets the filesystem source (first field in /etc/mtab). The default
+ is the program name.
+
+subtype=TYPE
+
+ Sets the filesystem type (third field in /etc/mtab). The default is
+ the program name.
+
+ If the kernel suppports it, /etc/mtab and /proc/mounts will show the
+ filesystem type as "fuse.TYPE"
+
+ If the kernel doesn't support subtypes, the source filed will be
+ "TYPE#NAME", or if fsname option is not specified, just "TYPE".
use_ino
@@ -271,6 +310,83 @@
Mount a filesystem backed by a block device. This is a privileged
option. The device must be specified with the 'fsname=NAME' option.
+entry_timeout=T
+
+ The timeout in seconds for which name lookups will be cached. The
+ default is 1.0 second. For all the timeout options, it is possible
+ to give fractions of a second as well (e.g. "-oentry_timeout=2.8")
+
+negative_timeout=T
+
+ The timeout in seconds for which a negative lookup will be cached.
+ This means, that if file did not exist (lookup retuned ENOENT), the
+ lookup will only be redone after the timeout, and the file/directory
+ will be assumed to not exist until then. The default is 0.0 second,
+ meaning that caching negative lookups are disabled.
+
+attr_timeout=T
+
+ The timeout in seconds for which file/directory attributes are
+ cached. The default is 1.0 second.
+
+ac_attr_timeout=T
+
+ The timeout in seconds for which file attributes are cached for the
+ purpose of checking if "auto_cache" should flush the file data on
+ open. The default is the value of 'attr_timeout'
+
+intr
+
+ Allow requests to be interrupted. Turning on this option may result
+ in unexpected behavior, if the filesystem does not support request
+ interruption.
+
+intr_signal=NUM
+
+ Specify which signal number to send to the filesystem when a request
+ is interrupted. The default is 10 (USR1).
+
+modules=M1[:M2...]
+
+ Add modules to the filesystem stack. Modules are pushed in the
+ order they are specified, with the original filesystem being on the
+ bottom of the stack.
+
+
+Modules distributed with fuse
+-----------------------------
+
+iconv
+`````
+Perform file name character set conversion. Options are:
+
+from_code=CHARSET
+
+ Character set to convert from (see iconv -l for a list of possible
+ values). Default is UTF-8.
+
+to_code=CHARSET
+
+ Character set to convert to. Default is determined by the current
+ locale.
+
+
+subdir
+``````
+Prepend a given directory to each path. Options are:
+
+subdir=DIR
+
+ Directory to prepend to all paths. This option is mandatory.
+
+rellinks
+
+ Transform absolute symlinks into relative
+
+norellinks
+
+ Do not transform absolute symlinks into relative. This is the default.
+
Reporting bugs
==============
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org