whitespace fixes
authorMiklos Szeredi <miklos@szeredi.hu>
Wed, 2 Feb 2005 11:14:04 +0000 (11:14 +0000)
committerMiklos Szeredi <miklos@szeredi.hu>
Wed, 2 Feb 2005 11:14:04 +0000 (11:14 +0000)
15 files changed:
ChangeLog
FAQ
Filesystems
README
configure.in
example/fusexmp.c
example/hello.c
example/null.c
include/fuse.h
kernel/configure.ac
lib/fuse.c
lib/fuse_mt.c
lib/helper.c
lib/mount.c
util/fusermount.c

index 3dcc9159dd13c197dd87d9a8973067775b1f7c32..4509318d97cd8501fd7cbba944dbba5e285b3a8e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,7 +4,7 @@
 
 2005-01-28  Miklos Szeredi <miklos@szeredi.hu>
 
-       * Fix compilation on 2.6.7 
+       * Fix compilation on 2.6.7
 
 2005-01-26  Miklos Szeredi <miklos@szeredi.hu>
 
 
        * fusermount: remove capability setting, which was the cause of
        problems for some users.  It seems that FS related capabilities
-       are removed by setfsuid(), so this isn't even needed.  
+       are removed by setfsuid(), so this isn't even needed.
 
 2005-01-15  Miklos Szeredi <miklos@szeredi.hu>
 
        * fix compilation on 2.4 kernels (reported by Valient Gough)
 
        * fix failure to unmount bug (found by David Shaw)
-       
+
        * fusermount: improve parsing of /etc/fuse.conf
 
 2005-01-13  Miklos Szeredi <miklos@szeredi.hu>
        These will cause some regressions, but stability is considered
        more important.  If any of these features turns out to be
        important, it can be readded with the deadlock problems addressed.
-       
+
        * Make all requests interruptible (only with SIGKILL currently).
        This can be used to break any deadlock produced by the userspace
        filesystem accessing it's own exported files.  The RELEASE request
        * fusermount: fix warning if fuse module is not loaded
 
        * kernel: use /dev/fuse on 2.4 too
-       
+
 2004-11-26  Miklos Szeredi <miklos@szeredi.hu>
 
        * libfuse API change: open, read, write, flush, fsync and release
        usually needs to be set to "/usr/local/lib/pkgconfig".
 
        * fuse.h is now installed in ${prefix}/include/fuse/
-       
+
 2004-11-02  Miklos Szeredi <miklos@szeredi.hu>
 
        * Added "use_ino" mount option.  This enables the filesystems to
 
        * Fix mounting and umounting FUSE filesystem under another FUSE
        filesystem by non-root (bug spotted by Valient Gough)
-       
+
 2004-09-21  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fix deadlock in case of memory allocation failure.  Patch by
        Christian Magnusson
-       
+
 2004-09-16  Miklos Szeredi <miklos@szeredi.hu>
 
        * Check memory allocation failures in libfuse
-       
+
 2004-09-14  Miklos Szeredi <miklos@szeredi.hu>
 
        * Check temporary file creation failure in do_getdir().  Bug
        spotted by Terje Oseberg
-       
+
 2004-09-13  Miklos Szeredi <miklos@szeredi.hu>
 
        * Allow "large_read" option for 2.6 kernels but warn of deprecation
        This is only a temporary solution
 
        * Support compiling FUSE kernel module on 2.4.x UML kernels
-       
+
 2004-09-09  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fix bug in case two FORGETs for the same node are executed in
        * Add -D_REENTRANT to the compile flags
 
        * Add documentation of fuse internals by Terje Oseberg
+
 2004-08-16  Miklos Szeredi <miklos@szeredi.hu>
 
        * Change release method to be non-interruptible.  Fixes bug
        causing missing release() call when program which has opened files
        is killed (reported by Franco Broi and David Shaw)
+
 2004-07-29  Miklos Szeredi <miklos@szeredi.hu>
 
        * Add fuse_invalidate() to library API
        * Extend kernel API with file handles.  A file handle is returned
        by open, and passed to read, write, flush, fsync and release.
        This is currently only used for debug output in the library.
-       
+
        * Security changes:
 
        * Change the current directory to the mountpoint before checking
        * Clean up mount option passing to fusermount and to fuse_new()
        BEWARE: this changes the userspace API slightly, and the command
        line usage of programs using fuse_main()
-       
+
 2004-07-20  Miklos Szeredi <miklos@szeredi.hu>
 
        * Optimize reading under 2.6 kernels by issuing multiple page
        asynchronous read requests
-       
+
 2004-07-18  Miklos Szeredi <miklos@szeredi.hu>
 
        * Only use redirty_page_for_writepage() for kernels >= 2.6.6
-       
+
 2004-07-16  Miklos Szeredi <miklos@szeredi.hu>
 
        * Separate directory entry and inode attribute validity timer
 
        * If temporary buffer allocation fails in raw read, fall back to a
        smaller buffer
-       
+
 2004-07-12  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fix bug in do_open() in libfuse: open count was incremented
        after the reply is sent so it could race with unlink/forget and
        cause an abort.
-       
+
 2004-07-08  Miklos Szeredi <miklos@szeredi.hu>
 
        * When performing create or remove operation, refresh the parent's
        * Work with newer libtool (1.5a)
 
        * Check for st_atim member of struct stat
-       
+
 2004-06-22  Miklos Szeredi <miklos@szeredi.hu>
 
        * No request allocation needed on inode and file release
-       
+
 2004-06-21  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fix possible inode leak in userspace in case of unfinished
        lookup/mknod/mkdir/symlink/link operation.
-       
+
 2004-06-20  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fix some races and cleanups in fuse_read_super()
-       
+
 2004-06-19  Miklos Szeredi <miklos@szeredi.hu>
 
        * Requests are allocated at open time
-       
+
 2004-06-03  Miklos Szeredi <miklos@szeredi.hu>
 
        * Build shared library as well as static (using libtool)
        * Don't call getdir method from open() only from first readdir().
        Open is sometimes just used to store the current directory
        (e.g. find)
-       
+
 2004-05-18  Miklos Szeredi <miklos@szeredi.hu>
 
        * Added flush() call
-       
+
 2004-05-04  Miklos Szeredi <miklos@szeredi.hu>
 
        * Extended attributes support for 2.4 (patch by Cody Pisto)
-       
+
 2004-04-20  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fixed parser with modversions (Mattias Wadman)
-       
+
 2004-04-19  Miklos Szeredi <miklos@szeredi.hu>
 
        * Added mount option parser to 2.4 build
-       
+
 2004-04-13  Miklos Szeredi <miklos@szeredi.hu>
 
        * Replaced binary mount data with text options
 2004-03-02  Miklos Szeredi <miklos@szeredi.hu>
 
        * fuse_main() adds "-n progname" to the fusermount command line
-       
+
        * More kernel interface changes:
 
        * Lookup/getattr return cache timeout values
        * rdev size increased to 32 bits for mknod
 
        * kernel interface version changed to 3.1
-       
+
 2004-02-18  Miklos Szeredi <miklos@szeredi.hu>
 
        * user-mount upgraded for 2.6.3 kernel
-       
+
 2004-02-17  Miklos Szeredi <miklos@szeredi.hu>
 
        * Added user-mount.2.6.2-rc3.patch
 
        * fusermount should allow (un)mounting for non-root even if not
        suid-root
-       
+
 2004-02-12  Miklos Szeredi <miklos@szeredi.hu>
 
        * Remove MS_PERMISSION mount flag (that means something else now)
-       
+
 2004-02-10  Miklos Szeredi <miklos@szeredi.hu>
 
        * Added check for i_size_read/write functions to configure.in
        * Use i_size_read/write for accessing inode->i_size
 
        * Make loopback mount of a fuse file work
-       
+
 2004-02-04  Miklos Szeredi <miklos@szeredi.hu>
 
        * Released 1.1
-       
+
 2004-01-29  Miklos Szeredi <miklos@szeredi.hu>
 
        * Properly check if the inode exists in fuse_invalidate
-       
+
 2004-01-27  Miklos Szeredi <miklos@szeredi.hu>
 
        * Added -q option for fusermount
        * Fix typo (thanks Marcos Dione)
 
        * Compile fixes for 2.4 kernels
-       
+
 2004-01-23  Miklos Szeredi <miklos@szeredi.hu>
 
        * Fix CONFIG_MODVERSIONS compile on 2.6
-       
+
 2004-01-22  Miklos Szeredi <miklos@szeredi.hu>
 
        * Write all pending data before a RELEASE operation
 
        * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
        (Note: the mknod method does not yet use 32bit device number)
+
 2004-01-13  Miklos Szeredi <miklos@szeredi.hu>
 
        * Code cleanups
 
 2004-01-05  Miklos Szeredi <miklos@szeredi.hu>
 
-       * Added -d option to fusermount 
+       * Added -d option to fusermount
 
 2003-12-15  Miklos Szeredi <miklos@szeredi.hu>
 
 
 2003-12-12  Miklos Szeredi <miklos@szeredi.hu>
 
-       * Make it compile on 2.4.19.  
+       * Make it compile on 2.4.19.
 
        * Add fsync operation (write file failed on xemacs & vi)
 
           - Added '__init__' handler to base Fuse class, which allows
             your Python class to know the mountpoint and mount args,
             as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
-       
+
        * General:
           - added 'mount.fuse' script (in util/ dir), which is meant to be
             symlinked from /sbin, and which allows FUSE filesystems to
 
        * Mtab handling fix in fusermount by "Valient Gough" (SF patch
        #766443)
-       
+
 2003-10-13  Miklos Szeredi <miklos@szeredi.hu>
 
        * Error code fixes in kernel module
-       
+
 2003-10-04  Miklos Szeredi <miklos@szeredi.hu>
 
        * kernel version detection fix
 2002-01-09  Miklos Szeredi <miklos@szeredi.hu>
 
        * Version 0.95 released
-       
+
 2002-01-09  Miklos Szeredi <miklos@szeredi.hu>
 
        * Revaidate all path components not just the last, this means a
        * Update and fix python interface
 
 2002-01-07  Mark Glines <mark@glines.org>
-       
+
        * Added statfs() support to kernel, lib, examples, and perl!
 
 2001-12-26  Miklos Szeredi <miklos@szeredi.hu>
        * Ported to Compaq IPAQ
 
 2001-12-20  Miklos Szeredi <miklos@szeredi.hu>
-       
+
        * Added function fuse_get_context() to library API (inspired by
-       patch from Matt Ryan) 
-       
+       patch from Matt Ryan)
+
        * Added flags to fusermount and to kernel interface to control
        permission checking
 
 
 2001-12-02  Miklos Szeredi <miklos@szeredi.hu>
 
-       * Added perl bindings by Mark Glines 
+       * Added perl bindings by Mark Glines
 
 2001-11-21  Miklos Szeredi <miklos@szeredi.hu>
 
        * fuse_main() helper function added
 
 2001-11-18  Miklos Szeredi <miklos@szeredi.hu>
-       
+
        * Optimized read/write operations, so that minimal copying of data
        is done
 
diff --git a/FAQ b/FAQ
index 3b8cf5ad042fd48a59ba088daa12eb4caac85d72..4a28d43d69dc6a5826d69b5c329568453f179031 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -29,10 +29,10 @@ Subject: close() not in struct fuse_operations
 > Is there a reason for 'close' not being one of the
 > fuse_operations? I'd need to know when files are
 > closed...
+
 It's not easy.  Consider mmap(): if you have a memory file, even after
-closing it, you can read or write the file through memory.  
+closing it, you can read or write the file through memory.
+
 Despite this there are close()-like operations: flush and release.
 Flush gets called on each close() and release gets called when there
 are no more uses of a file, including memory mappings.
@@ -58,7 +58,7 @@ writing for example, and use that information for finally flushing
 dirty data of a file.
 
 > So it appears that there may even be additional file operations after
-> one or more of the release calls.. 
+> one or more of the release calls..
 
 That is expected also.  It would be a bug if there were reads/writes
 after the last release, or if the number of releases didn't match the
@@ -82,7 +82,7 @@ In release() the error value is ignored, and not every close will
 cause a release.  Consider this:
 
   - process opens a file
-  - process forks 
+  - process forks
   - parent closes the file
   - child closes the file
 
@@ -125,7 +125,7 @@ Subject: Short reads
 > bytes.  What I expected to see was the kernel to then issue a read for
 > length 65536 and offset 10.  Instead what I saw in the result was the
 > 10 bytes I returned, followed by 65526 zero bytes.
-> 
+>
 > Is this the intended behavior?
 
 Yes.  You can easily program around it with a for-loop in your read
@@ -135,14 +135,14 @@ function.
 > difference, I'd like to suggest doing it the other way: many people
 > (like me) implement their fuse read function in terms of read(), and
 > read() can return early.
-No.  Read from a pipe/socket can be short, but read from a file can't. 
+
+No.  Read from a pipe/socket can be short, but read from a file can't.
 
 ---------------------------------------------------------------------------
 Subject: protocol error
 
-> I'm having trouble with file writing. I can 
-> 'echo something > file' to a file, but 
+> I'm having trouble with file writing. I can
+> 'echo something > file' to a file, but
 > 'cp file something' or 'cat something > file'
 > gives a protocol error.
 
@@ -176,14 +176,14 @@ Subject: Uid/gid/pid
 > Is there any easy way to know the uid of a reader?  For example, let's
 > say I wanted to create a file that contained 'foo' for uid 1, but
 > 'bar' for uid 2.
-Yes: 
+
+Yes:
+
 fuse_get_context()->uid
 
 
 ---------------------------------------------------------------------------
-Subject: 'find' command  
+Subject: 'find' command
 
 
 > I'm having trouble getting the find command to search through fuse
@@ -208,7 +208,7 @@ Subject: File system interactivity
 > question to the terminal that issued the request.
 >
 > Is there a way I can achieve this goal?
+
 It would not be possible generally speaking, since it might not be an
 interactive program but rather a daemon, or a GUI program creating the
 file.  However you should be able to get the PID for the caller, and
@@ -217,4 +217,4 @@ something similar. Perhaps it would be better to redesign your program
 not to have such interactivity anyway, try to use e.g. extended
 attributes of files to set per-file options, or a configuration file
 for your filesystem.
+
index 3bd9826f3dde8b3fbe947d97f21f682c525c6333..9fb602cc4f7924c20d7901013a378446509a23b7 100644 (file)
@@ -51,7 +51,7 @@ Download: http://www.select-tech.si/fuse/
 
 Alternate download: http://www.cl.cam.ac.uk/~tdm25/fuse-j/
 
-Description: 
+Description:
 
   FUSE-J provides Java binding for FUSE.  It comes with the
   "proof-of-concept" ZIP filesystem which seems to be pretty stable.
@@ -92,10 +92,10 @@ Homepage: http://www.freenet.org.nz/phonebook
 
 Description:
 
-  PhoneBook is expressly designed for use in situations where someone can 
-  be under pressure (legal, military and/or criminal) to disclose 
-  decryption keys, and has a 'chaffing' scheme whereby the user can 
-  disclose only passphrases for non-sensitive material, and credibly deny 
+  PhoneBook is expressly designed for use in situations where someone can
+  be under pressure (legal, military and/or criminal) to disclose
+  decryption keys, and has a 'chaffing' scheme whereby the user can
+  disclose only passphrases for non-sensitive material, and credibly deny
   the existence of anything else.
 
 ==============================================================================
diff --git a/README b/README
index 20ee100de3d0df2b8fe017ff4263dc996563befc..14eed403f9404425219406b42e1ea1e887aaf1b9 100644 (file)
--- a/README
+++ b/README
@@ -60,7 +60,7 @@ Security
 
 If you run 'make install', the fusermount program is installed
 set-user-id to root.  This is done to allow normal users to mount
-their own filesystem implementations. 
+their own filesystem implementations.
 
 There must however be some limitations, in order to prevent Bad User from
 doing nasty things.  Currently those limitations are:
@@ -176,4 +176,4 @@ debug
 fsname=NAME
 
   Sets the filesystem name.  The default is the program name.
-  
+
index 7ad5f42db5cc846b910a843620c9d6eae381555d..33f71737e14b02f323719334b7327956f8f2f221 100644 (file)
@@ -7,10 +7,10 @@ m4_ifdef([LT_INIT],
        [AC_PROG_LIBTOOL])
 AC_PROG_CC
 
-# compatibility for automake < 1.8 
+# compatibility for automake < 1.8
 if test -z "$mkdir_p"; then
        mkdir_p="../mkinstalldirs"
-       AC_SUBST(mkdir_p)       
+       AC_SUBST(mkdir_p)
 fi
 
 CFLAGS="-Wall -W -g -O2"
index d850bc62705fdfef656fbb19052ad178926ae59a..3230c3600a8030e8f3a9ce5fd6eadd3eee13a2a3 100644 (file)
@@ -153,7 +153,7 @@ static int xmp_chmod(const char *path, mode_t mode)
     res = chmod(path, mode);
     if(res == -1)
         return -errno;
-    
+
     return 0;
 }
 
@@ -171,7 +171,7 @@ static int xmp_chown(const char *path, uid_t uid, gid_t gid)
 static int xmp_truncate(const char *path, off_t size)
 {
     int res;
-    
+
     res = truncate(path, size);
     if(res == -1)
         return -errno;
@@ -182,7 +182,7 @@ static int xmp_truncate(const char *path, off_t size)
 static int xmp_utime(const char *path, struct utimbuf *buf)
 {
     int res;
-    
+
     res = utime(path, buf);
     if(res == -1)
         return -errno;
@@ -196,7 +196,7 @@ static int xmp_open(const char *path, struct fuse_file_info *fi)
     int res;
 
     res = open(path, fi->flags);
-    if(res == -1) 
+    if(res == -1)
         return -errno;
 
     close(res);
@@ -217,7 +217,7 @@ static int xmp_read(const char *path, char *buf, size_t size, off_t offset,
     res = pread(fd, buf, size, offset);
     if(res == -1)
         res = -errno;
-    
+
     close(fd);
     return res;
 }
@@ -236,7 +236,7 @@ static int xmp_write(const char *path, const char *buf, size_t size,
     res = pwrite(fd, buf, size, offset);
     if(res == -1)
         res = -errno;
-    
+
     close(fd);
     return res;
 }
@@ -256,7 +256,7 @@ static int xmp_release(const char *path, struct fuse_file_info *fi)
 {
     /* Just a stub.  This method is optional and can safely be left
        unimplemented */
-    
+
     (void) path;
     (void) fi;
     return 0;
index 82da26e866eedfc39f28aea6f4e4e003424653ef..9e4099b33b6871957b7d7bad244e366d9748c78b 100644 (file)
@@ -65,7 +65,7 @@ static int hello_read(const char *path, char *buf, size_t size, off_t offset,
     (void) fi;
     if(strcmp(path, hello_path) != 0)
         return -ENOENT;
-    
+
     len = strlen(hello_str);
     if (offset < len) {
         if (offset + size > len)
index c4e505bb1d9568cb66a464e5fd24693e135f9a58..d58feabb2bced8ee6d3cb47466a3c2c47a18cf1b 100644 (file)
@@ -18,7 +18,7 @@ static int null_getattr(const char *path, struct stat *stbuf)
 {
     if(strcmp(path, "/") != 0)
         return -ENOENT;
-    
+
     stbuf->st_mode = S_IFREG | 0644;
     stbuf->st_nlink = 1;
     stbuf->st_uid = getuid();
index b0dfee43eed9041031b1cc9cc9795b450ec505aa..fffca2e97f29913ddbd71dc2f56073c0974f0f9d 100644 (file)
@@ -51,7 +51,7 @@ struct fuse;
 typedef struct fuse_dirhandle *fuse_dirh_t;
 
 /** Function to add an entry in a getdir() operation
- * 
+ *
  * @param h the handle passed to the getdir() operation
  * @param name the file name of the directory entry
  * @param type the file type (0 if unknown)  see <dirent.h>
@@ -82,7 +82,7 @@ struct fuse_file_info {
  * Most of these should work very similarly to the well known UNIX
  * file system operations.  A major exception is that instead of
  * returning an error in 'errno', the operation should return the
- * negated error value (-errno) directly. 
+ * negated error value (-errno) directly.
  *
  * All methods are optional, but some are essential for a useful
  * filesystem (e.g. getattr).  Flush, release and fsync are special
@@ -99,7 +99,7 @@ struct fuse_operations {
     int (*getattr) (const char *, struct stat *);
 
     /** Read the target of a symbolic link
-     * 
+     *
      * The buffer should be filled with a null terminated string.  The
      * buffer size argument includes the space for the terminating
      * null character.  If the linkname is too long to fit in the
@@ -140,19 +140,19 @@ struct fuse_operations {
 
     /** Create a hard link to a file */
     int (*link) (const char *, const char *);
-    
+
     /** Change the permission bits of a file */
     int (*chmod) (const char *, mode_t);
-    
+
     /** Change the owner and group of a file */
     int (*chown) (const char *, uid_t, gid_t);
-    
+
     /** Change the size of a file */
     int (*truncate) (const char *, off_t);
-    
+
     /** Change the access and/or modification times of a file */
     int (*utime) (const char *, struct utimbuf *);
-    
+
     /** File open operation
      *
      * No creation, or trunctation flags (O_CREAT, O_EXCL, O_TRUNC)
@@ -174,8 +174,8 @@ struct fuse_operations {
      */
     int (*read) (const char *, char *, size_t, off_t, struct fuse_file_info *);
 
-    /** Write data to an open file 
-     * 
+    /** Write data to an open file
+     *
      * Write should return exactly the number of bytes requested
      * except on error.  An exception to this is when the 'direct_io'
      * mount option is specified (see read operation).
@@ -184,13 +184,13 @@ struct fuse_operations {
                   struct fuse_file_info *);
 
     /** Get file system statistics
-     * 
+     *
      * The 'f_type' and 'f_fsid' fields are ignored
      */
     int (*statfs) (const char *, struct statfs *);
 
-    /** Possibly flush cached data 
-     * 
+    /** Possibly flush cached data
+     *
      * BIG NOTE: This is not equivalent to fsync().  It's not a
      * request to sync dirty data.
      *
@@ -199,7 +199,7 @@ struct fuse_operations {
      * has cached dirty data, this is a good place to write back data
      * and return any errors.  Since many applications ignore close()
      * errors this is not always useful.
-     * 
+     *
      * NOTE: The flush() method may be called more than once for each
      * open().  This happens if more than one file descriptor refers
      * to an opened file due to dup(), dup2() or fork() calls.  It is
@@ -210,7 +210,7 @@ struct fuse_operations {
     int (*flush) (const char *, struct fuse_file_info *);
 
     /** Release an open file
-     * 
+     *
      * Release is called when there are no more references to an open
      * file: all file descriptors are closed and all memory mappings
      * are unmapped.
@@ -229,21 +229,21 @@ struct fuse_operations {
      * should be flushed, not the meta data.
      */
     int (*fsync) (const char *, int, struct fuse_file_info *);
-    
+
     /** Set extended attributes */
     int (*setxattr) (const char *, const char *, const char *, size_t, int);
-    
+
     /** Get extended attributes */
     int (*getxattr) (const char *, const char *, char *, size_t);
-    
+
     /** List extended attributes */
     int (*listxattr) (const char *, char *, size_t);
-    
+
     /** Remove extended attributes */
     int (*removexattr) (const char *, const char *);
 };
 
-/** Extra context that may be needed by some filesystems 
+/** Extra context that may be needed by some filesystems
  *
  * The uid, gid and pid fields are not filled in case of a writepage
  * operation.
@@ -251,7 +251,7 @@ struct fuse_operations {
 struct fuse_context {
     /** Pointer to the fuse object */
     struct fuse *fuse;
-    
+
     /** User ID of the calling process */
     uid_t uid;
 
@@ -270,7 +270,7 @@ struct fuse_context {
  *
  * This is for the lazy.  This is all that has to be called from the
  * main() function.
- * 
+ *
  * This function does the following:
  *   - parses command line options (-d -s and -h)
  *   - passes relevant mount options to the fuse_mount()
@@ -284,7 +284,7 @@ struct fuse_context {
  *
  * @param argc the argument counter passed to the main() function
  * @param argv the argument vector passed to the main() function
- * @param op the file system operation 
+ * @param op the file system operation
  * @return 0 on success, nonzero on failure
  */
 /*
@@ -325,11 +325,11 @@ void fuse_unmount(const char *mountpoint);
  * @param op_size the size of the fuse_operations structure
  * @return the created FUSE handle
  */
-struct fuse *fuse_new(int fd, const char *opts, 
+struct fuse *fuse_new(int fd, const char *opts,
                       const struct fuse_operations *op, size_t op_size);
 
 /**
- * Destroy the FUSE handle. 
+ * Destroy the FUSE handle.
  *
  * The filesystem is not unmounted.
  *
@@ -341,7 +341,7 @@ void fuse_destroy(struct fuse *f);
  * FUSE event loop.
  *
  * Requests from the kernel are processed, and the apropriate
- * operations are called. 
+ * operations are called.
  *
  * @param f the FUSE handle
  * @return 0 if no error occured, -1 otherwise
@@ -372,12 +372,12 @@ int fuse_loop_mt(struct fuse *f);
 
 /**
  * Get the current context
- * 
+ *
  * The context is only valid for the duration of a filesystem
  * operation, and thus must not be stored and used later.
  *
  * @param f the FUSE handle
- * @return the context 
+ * @return the context
  */
 struct fuse_context *fuse_get_context(void);
 
@@ -402,7 +402,7 @@ int fuse_is_lib_option(const char *opt);
 
 /**
  * The real main function
- * 
+ *
  * Do not call this directly, use fuse_main()
  */
 int fuse_main_real(int argc, char *argv[], const struct fuse_operations *op,
index b27e6df499f35c92e4ad0a8f58bb07fa5e9e5cee..4b906e5bc15342abf875f5c5e9b6d7342b12ce04 100644 (file)
@@ -32,7 +32,7 @@ fi
 if test -z "$kernsrcver"; then
        AC_MSG_RESULT([Not found])
        AC_MSG_ERROR([
-*** Cannot determine the version of the linux kernel source. Please 
+*** Cannot determine the version of the linux kernel source. Please
 *** configure the kernel before running this script])
 fi
 AC_MSG_RESULT([$kernsrcver])
@@ -86,7 +86,7 @@ if test "$ENABLE_FUSE_MODULE" = y; then
        else
                AC_MSG_RESULT([no])
        fi
-       
+
        isuml=no
        KERNELMAKE_PARAMS=
        KERNELCPPFLAGS=
index 004095c271b8f969d1fa9e9bfd7140d80b005abf..0980388e9ae3e3db189fd48c0314d600e0e0d7df 100644 (file)
@@ -77,11 +77,11 @@ struct fuse_getdir_out {
     __u32 fd;
 };
 
-#define FUSE_GETDIR 7 
+#define FUSE_GETDIR 7
 
 static const char *opname(enum fuse_opcode opcode)
 {
-    switch (opcode) { 
+    switch (opcode) {
     case FUSE_LOOKUP:          return "LOOKUP";
     case FUSE_FORGET:          return "FORGET";
     case FUSE_GETATTR:         return "GETATTR";
@@ -136,7 +136,7 @@ static struct node *get_node_nocheck(struct fuse *f, nodeid_t nodeid)
     for (node = f->id_table[hash]; node != NULL; node = node->id_next)
         if (node->nodeid == nodeid)
             return node;
-    
+
     return NULL;
 }
 
@@ -162,7 +162,7 @@ static void unhash_id(struct fuse *f, struct node *node)
     size_t hash = node->nodeid % f->id_table_size;
     struct node **nodep = &f->id_table[hash];
 
-    for (; *nodep != NULL; nodep = &(*nodep)->id_next) 
+    for (; *nodep != NULL; nodep = &(*nodep)->id_next)
         if (*nodep == node) {
             *nodep = node->id_next;
             return;
@@ -173,7 +173,7 @@ static void hash_id(struct fuse *f, struct node *node)
 {
     size_t hash = node->nodeid % f->id_table_size;
     node->id_next = f->id_table[hash];
-    f->id_table[hash] = node;    
+    f->id_table[hash] = node;
 }
 
 static unsigned int name_hash(struct fuse *f, nodeid_t parent, const char *name)
@@ -194,7 +194,7 @@ static void unhash_name(struct fuse *f, struct node *node)
     if (node->name) {
         size_t hash = name_hash(f, node->parent, node->name);
         struct node **nodep = &f->name_table[hash];
-        
+
         for (; *nodep != NULL; nodep = &(*nodep)->name_next)
             if (*nodep == node) {
                 *nodep = node->name_next;
@@ -270,7 +270,7 @@ static struct node *find_node(struct fuse *f, nodeid_t parent, char *name,
     struct node *node;
     int mode = attr->mode & S_IFMT;
     int rdev = 0;
-    
+
     if (S_ISCHR(mode) || S_ISBLK(mode))
         rdev = attr->rdev;
 
@@ -278,12 +278,12 @@ static struct node *find_node(struct fuse *f, nodeid_t parent, char *name,
     node = lookup_node(f, parent, name);
     if (node != NULL) {
         if (!(f->flags & FUSE_USE_INO))
-            attr->ino = node->nodeid;        
+            attr->ino = node->nodeid;
     } else {
         node = (struct node *) calloc(1, sizeof(struct node));
         if (node == NULL)
             goto out_err;
-        
+
         node->refctr = 1;
         node->nodeid = next_id(f);
         if (!(f->flags & FUSE_USE_INO))
@@ -324,7 +324,7 @@ static char *get_path_name(struct fuse *f, nodeid_t nodeid, const char *name)
     char buf[FUSE_MAX_PATH];
     char *s = buf + FUSE_MAX_PATH - 1;
     struct node *node;
-    
+
     *s = '\0';
 
     if (name != NULL) {
@@ -340,7 +340,7 @@ static char *get_path_name(struct fuse *f, nodeid_t nodeid, const char *name)
             s = NULL;
             break;
         }
-        
+
         s = add_name(buf, s, node->name);
         if (s == NULL)
             break;
@@ -392,7 +392,7 @@ static int rename_node(struct fuse *f, nodeid_t olddir, const char *oldname,
     struct node *node;
     struct node *newnode;
     int err = 0;
-    
+
     pthread_mutex_lock(&f->lock);
     node  = lookup_node(f, olddir, oldname);
     newnode  = lookup_node(f, newdir, newname);
@@ -407,13 +407,13 @@ static int rename_node(struct fuse *f, nodeid_t olddir, const char *oldname,
         }
         unhash_name(f, newnode);
     }
-        
+
     unhash_name(f, node);
     if (hash_name(f, node, newdir, newname) == -1) {
         err = -ENOMEM;
         goto out;
     }
-        
+
     if (hide)
         node->is_hidden = 1;
 
@@ -485,7 +485,7 @@ static int send_reply_raw(struct fuse *f, char *outbuf, size_t outsize)
                out->unique, out->error, strerror(-out->error), outsize);
         fflush(stdout);
     }
-    
+
     /* This needs to be done before the reply, otherwise the scheduler
        could play tricks with us, and only let the counter be
        increased long after the operation is done */
@@ -529,7 +529,7 @@ static int send_reply(struct fuse *f, struct fuse_in_header *in, int error,
         out->error = error;
         if (argsize != 0)
             memcpy(outbuf + sizeof(struct fuse_out_header), arg, argsize);
-        
+
         res = send_reply_raw(f, outbuf, outsize);
         free(outbuf);
     }
@@ -576,11 +576,11 @@ static char *hidden_name(struct fuse *f, nodeid_t dir, const char *oldname,
             newnode = lookup_node(f, dir, newname);
         } while(newnode);
         pthread_mutex_unlock(&f->lock);
-        
+
         newpath = get_path_name(f, dir, newname);
         if (!newpath)
             break;
-        
+
         res = f->op.getattr(newpath, &buf);
         if (res != 0)
             break;
@@ -714,7 +714,7 @@ static int do_chmod(struct fuse *f, const char *path, struct fuse_attr *attr)
         res = f->op.chmod(path, attr->mode);
 
     return res;
-}        
+}
 
 static int do_chown(struct fuse *f, const char *path, struct fuse_attr *attr,
                     int valid)
@@ -722,7 +722,7 @@ static int do_chown(struct fuse *f, const char *path, struct fuse_attr *attr,
     int res;
     uid_t uid = (valid & FATTR_UID) ? attr->uid : (uid_t) -1;
     gid_t gid = (valid & FATTR_GID) ? attr->gid : (gid_t) -1;
-    
+
     res = -ENOSYS;
     if (f->op.chown)
         res = f->op.chown(path, uid, gid);
@@ -776,7 +776,7 @@ static void do_setattr(struct fuse *f, struct fuse_in_header *in,
                 res = do_chown(f, path, attr, valid);
             if (!res && (valid & FATTR_SIZE))
                 res = do_truncate(f, path, attr);
-            if (!res && (valid & (FATTR_ATIME | FATTR_MTIME)) == 
+            if (!res && (valid & (FATTR_ATIME | FATTR_MTIME)) ==
                (FATTR_ATIME | FATTR_MTIME))
                 res = do_utime(f, path, attr);
             if (!res) {
@@ -1017,7 +1017,7 @@ static void do_rename(struct fuse *f, struct fuse_in_header *in,
             res = -ENOSYS;
             if (f->op.rename) {
                 res = 0;
-                if (!(f->flags & FUSE_HARD_REMOVE) && 
+                if (!(f->flags & FUSE_HARD_REMOVE) &&
                     is_open(f, newdir, newname))
                     res = hide_node(f, newpath, newdir, newname);
                 if (res == 0) {
@@ -1030,7 +1030,7 @@ static void do_rename(struct fuse *f, struct fuse_in_header *in,
         }
         free(oldpath);
     }
-    send_reply(f, in, res, NULL, 0);   
+    send_reply(f, in, res, NULL, 0);
 }
 
 static void do_link(struct fuse *f, struct fuse_in_header *in,
@@ -1096,7 +1096,7 @@ static void do_open(struct fuse *f, struct fuse_in_header *in,
             printf("OPEN[%lu] flags: 0x%x\n", fi.fh, arg->flags);
             fflush(stdout);
         }
-        
+
         pthread_mutex_lock(&f->lock);
         res2 = send_reply(f, in, res, &outarg, sizeof(outarg));
         if(res2 == -ENOENT) {
@@ -1173,10 +1173,10 @@ static void do_release(struct fuse *f, struct fuse_in_header *in,
         else if (path)
             ((struct fuse_operations_compat2 *) &f->op)->release(path, fi.flags);
     }
-    
+
     if(unlink_hidden && path)
         f->op.unlink(path);
-    
+
     if (path)
         free(path);
 
@@ -1197,7 +1197,7 @@ static void do_read(struct fuse *f, struct fuse_in_header *in,
         size_t size;
         size_t outsize;
         struct fuse_file_info fi;
-        
+
         memset(&fi, 0, sizeof(fi));
         fi.fh = arg->fh;
 
@@ -1209,13 +1209,13 @@ static void do_read(struct fuse *f, struct fuse_in_header *in,
                        (unsigned long) arg->fh, arg->size, arg->offset);
                 fflush(stdout);
             }
-            
+
             res = -ENOSYS;
             if (f->op.read)
                 res = f->op.read(path, buf, arg->size, arg->offset, &fi);
             free(path);
         }
-        
+
         size = 0;
         if (res >= 0) {
             size = res;
@@ -1230,7 +1230,7 @@ static void do_read(struct fuse *f, struct fuse_in_header *in,
         out->unique = in->unique;
         out->error = res;
         outsize = sizeof(struct fuse_out_header) + size;
-        
+
         send_reply_raw(f, outbuf, outsize);
         free(outbuf);
     }
@@ -1263,8 +1263,8 @@ static void do_write(struct fuse *f, struct fuse_in_header *in,
             res = f->op.write(path, PARAM(arg), arg->size, arg->offset, &fi);
         free(path);
     }
-    
-    if (res >= 0) { 
+
+    if (res >= 0) {
         outarg.size = res;
         res = 0;
     }
@@ -1369,7 +1369,7 @@ static void do_setxattr(struct fuse *f, struct fuse_in_header *in,
         if (f->op.setxattr)
             res = f->op.setxattr(path, name, value, arg->size, arg->flags);
         free(path);
-    }    
+    }
     send_reply(f, in, res, NULL, 0);
 }
 
@@ -1386,7 +1386,7 @@ static int common_getxattr(struct fuse *f, struct fuse_in_header *in,
         if (f->op.getxattr)
             res = f->op.getxattr(path, name, value, size);
         free(path);
-    }    
+    }
     return res;
 }
 
@@ -1400,7 +1400,7 @@ static void do_getxattr_read(struct fuse *f, struct fuse_in_header *in,
     else {
         struct fuse_out_header *out = (struct fuse_out_header *) outbuf;
         char *value = outbuf + sizeof(struct fuse_out_header);
-        
+
         res = common_getxattr(f, in, name, value, size);
         size = 0;
         if (res > 0) {
@@ -1410,7 +1410,7 @@ static void do_getxattr_read(struct fuse *f, struct fuse_in_header *in,
         memset(out, 0, sizeof(struct fuse_out_header));
         out->unique = in->unique;
         out->error = res;
-        
+
         send_reply_raw(f, outbuf, sizeof(struct fuse_out_header) + size);
         free(outbuf);
     }
@@ -1434,7 +1434,7 @@ static void do_getxattr(struct fuse *f, struct fuse_in_header *in,
                         struct fuse_getxattr_in *arg)
 {
     char *name = PARAM(arg);
-    
+
     if (arg->size)
         do_getxattr_read(f, in, name, arg->size);
     else
@@ -1454,7 +1454,7 @@ static int common_listxattr(struct fuse *f, struct fuse_in_header *in,
         if (f->op.listxattr)
             res = f->op.listxattr(path, list, size);
         free(path);
-    }    
+    }
     return res;
 }
 
@@ -1468,7 +1468,7 @@ static void do_listxattr_read(struct fuse *f, struct fuse_in_header *in,
     else {
         struct fuse_out_header *out = (struct fuse_out_header *) outbuf;
         char *list = outbuf + sizeof(struct fuse_out_header);
-        
+
         res = common_listxattr(f, in, list, size);
         size = 0;
         if (res > 0) {
@@ -1478,7 +1478,7 @@ static void do_listxattr_read(struct fuse *f, struct fuse_in_header *in,
         memset(out, 0, sizeof(struct fuse_out_header));
         out->unique = in->unique;
         out->error = res;
-        
+
         send_reply_raw(f, outbuf, sizeof(struct fuse_out_header) + size);
         free(outbuf);
     }
@@ -1519,7 +1519,7 @@ static void do_removexattr(struct fuse *f, struct fuse_in_header *in,
         if (f->op.removexattr)
             res = f->op.removexattr(path, name);
         free(path);
-    }    
+    }
     send_reply(f, in, res, NULL, 0);
 }
 
@@ -1558,7 +1558,7 @@ static void do_opendir(struct fuse *f, struct fuse_in_header *in,
         dh->fuse = f;
         dh->fp = tmpfile();
         dh->filled = 0;
-        
+
         res = -EIO;
         if (dh->fp == NULL) {
             perror("fuse: failed to create temporary file");
@@ -1606,7 +1606,7 @@ static void do_readdir(struct fuse *f, struct fuse_in_header *in,
         out->unique = in->unique;
         out->error = res;
         outsize = sizeof(struct fuse_out_header) + size;
-        
+
         send_reply_raw(f, outbuf, outsize);
         free(outbuf);
     }
@@ -1654,9 +1654,9 @@ void fuse_process_cmd(struct fuse *f, struct fuse_cmd *cmd)
     ctx->uid = in->uid;
     ctx->gid = in->gid;
     ctx->pid = in->pid;
-    
+
     argsize = cmd->buflen - sizeof(struct fuse_in_header);
-        
+
     switch (in->opcode) {
     case FUSE_LOOKUP:
         do_lookup(f, in, (char *) inarg);
@@ -1681,11 +1681,11 @@ void fuse_process_cmd(struct fuse *f, struct fuse_cmd *cmd)
     case FUSE_MKNOD:
         do_mknod(f, in, (struct fuse_mknod_in *) inarg);
         break;
-            
+
     case FUSE_MKDIR:
         do_mkdir(f, in, (struct fuse_mkdir_in *) inarg);
         break;
-            
+
     case FUSE_UNLINK:
         do_unlink(f, in, (char *) inarg);
         break;
@@ -1695,14 +1695,14 @@ void fuse_process_cmd(struct fuse *f, struct fuse_cmd *cmd)
         break;
 
     case FUSE_SYMLINK:
-        do_symlink(f, in, (char *) inarg, 
+        do_symlink(f, in, (char *) inarg,
                    ((char *) inarg) + strlen((char *) inarg) + 1);
         break;
 
     case FUSE_RENAME:
         do_rename(f, in, (struct fuse_rename_in *) inarg);
         break;
-            
+
     case FUSE_LINK:
         do_link(f, in, (struct fuse_link_in *) inarg);
         break;
@@ -1806,13 +1806,13 @@ struct fuse_cmd *fuse_read_cmd(struct fuse *f)
         free_cmd(cmd);
         if (fuse_exited(f) || errno == EINTR || errno == ENOENT)
             return NULL;
-        
+
         /* ENODEV means we got unmounted, so we silenty return failure */
         if (errno != ENODEV) {
             /* BAD... This will happen again */
             perror("fuse: reading device");
         }
-        
+
         fuse_exit(f);
         return NULL;
     }
@@ -1824,7 +1824,7 @@ struct fuse_cmd *fuse_read_cmd(struct fuse *f)
         return NULL;
     }
     cmd->buflen = res;
-    
+
     /* Forget is special, it can be done without messing with threads. */
     if (in->opcode == FUSE_FORGET) {
         do_forget(f, in, (struct fuse_forget_in *) inarg);
@@ -1903,7 +1903,7 @@ static int parse_lib_opts(struct fuse *f, const char *opts)
             fprintf(stderr, "fuse: memory allocation failed\n");
             return -1;
         }
-        
+
         while((opt = strsep(&s, ","))) {
             if (strcmp(opt, "debug") == 0)
                 f->flags |= FUSE_DEBUG;
@@ -1911,7 +1911,7 @@ static int parse_lib_opts(struct fuse *f, const char *opts)
                 f->flags |= FUSE_HARD_REMOVE;
             else if (strcmp(opt, "use_ino") == 0)
                 f->flags |= FUSE_USE_INO;
-            else 
+            else
                 fprintf(stderr, "fuse: warning: unknown option `%s'\n", opt);
         }
         free(xopts);
index 131bae384ac1611d30e745dc4941c00374c5caff..2e43671282e3290f569e438300c3c8f6b90d95ef 100644 (file)
@@ -101,7 +101,7 @@ static int start_thread(struct fuse_worker *w, pthread_t *thread_id)
         fprintf(stderr, "fuse: error creating thread: %s\n", strerror(res));
         return -1;
     }
-    
+
     pthread_detach(*thread_id);
     return 0;
 }
@@ -130,7 +130,7 @@ static int mt_create_context_key()
         if (err)
             fprintf(stderr, "fuse: failed to create thread specific key: %s\n",
                     strerror(err));
-        else 
+        else
             fuse_set_getcontext_func(mt_getcontext);
     }
     if (!err)
@@ -155,7 +155,7 @@ int fuse_loop_mt_proc(struct fuse *f, fuse_processor_t proc, void *data)
     struct fuse_worker *w;
     int i;
 
-    w = malloc(sizeof(struct fuse_worker));    
+    w = malloc(sizeof(struct fuse_worker));
     if (w == NULL) {
         fprintf(stderr, "fuse: failed to allocate worker structure\n");
         return -1;
index 365b813a59864220a00f2919ac91f6b4be26f1cc..879a694465b0a1f23359dcf6e406564af8e0e11a 100644 (file)
@@ -24,7 +24,7 @@ static void usage(const char *progname)
         fprintf(stderr,
                 "usage: %s mountpoint [FUSE options]\n\n", progname);
 
-    fprintf(stderr, 
+    fprintf(stderr,
             "FUSE options:\n"
             "    -d                  enable debug output (implies -f)\n"
             "    -f                  foreground operation\n"
@@ -72,7 +72,7 @@ static int set_one_signal_handler(int signal, void (*handler)(int))
         perror("FUSE: cannot get old signal handler");
         return -1;
     }
-        
+
     if (old_sa.sa_handler == SIG_DFL &&
         sigaction(signal, &sa, NULL) == -1) {
         perror("Cannot set signal handler");
@@ -158,7 +158,7 @@ static int fuse_parse_cmdline(int argc, const char *argv[], char **kernel_opts,
     int argctr;
     const char *basename;
     char *fsname_opt;
-    
+
     *kernel_opts = NULL;
     *lib_opts = NULL;
     *mountpoint = NULL;
@@ -181,7 +181,7 @@ static int fuse_parse_cmdline(int argc, const char *argv[], char **kernel_opts,
     free(fsname_opt);
     if (res == -1)
         goto err;
-    
+
     for (argctr = 1; argctr < argc; argctr ++) {
         if (argv[argctr][0] == '-') {
             if (strlen(argv[argctr]) == 2)
@@ -197,13 +197,13 @@ static int fuse_parse_cmdline(int argc, const char *argv[], char **kernel_opts,
                     if (res == -1)
                         goto err;
                     break;
-                    
+
                 case 'd':
                     res = add_options(lib_opts, kernel_opts, "debug");
                     if (res == -1)
                         goto err;
                     break;
-                    
+
                 case 'r':
                     res = add_options(lib_opts, kernel_opts, "ro");
                     if (res == -1)
@@ -217,11 +217,11 @@ static int fuse_parse_cmdline(int argc, const char *argv[], char **kernel_opts,
                 case 's':
                     *multithreaded = 0;
                     break;
-                    
+
                 case 'h':
                     usage(argv[0]);
                     goto err;
-                    
+
                 default:
                     invalid_option(argv, argctr);
                     goto err;
@@ -341,7 +341,7 @@ struct fuse *fuse_setup_compat2(int argc, char *argv[],
                                  char **mountpoint, int *multithreaded,
                                  int *fd)
 {
-    return fuse_setup_common(argc, argv, (struct fuse_operations *) op, 
+    return fuse_setup_common(argc, argv, (struct fuse_operations *) op,
                              sizeof(struct fuse_operations_compat2),
                              mountpoint, multithreaded, fd, 21);
 }
@@ -373,16 +373,16 @@ static int fuse_main_common(int argc, char *argv[],
                              &multithreaded, &fd, compat);
     if (fuse == NULL)
         return 1;
-    
+
     if (multithreaded)
         res = fuse_loop_mt(fuse);
     else
         res = fuse_loop(fuse);
-    
+
     fuse_teardown(fuse, fd, mountpoint);
     if (res == -1)
         return 1;
-    
+
     return 0;
 }
 
@@ -402,7 +402,7 @@ int fuse_main()
 void fuse_main_compat1(int argc, char *argv[],
                       const struct fuse_operations_compat1 *op)
 {
-    fuse_main_common(argc, argv, (struct fuse_operations *) op, 
+    fuse_main_common(argc, argv, (struct fuse_operations *) op,
                      sizeof(struct fuse_operations_compat1), 11);
 }
 
index fb29f57db4b858ff6233cb0c5718c745db4ceb6e..86ad2beb449f62b19794726719e411786e2498d0 100644 (file)
@@ -57,7 +57,7 @@ static int receive_fd(int fd)
         /* EOF */
         return -1;
     }
-    
+
     cmsg = CMSG_FIRSTHDR(&msg);
     if (!cmsg->cmsg_type == SCM_RIGHTS) {
         fprintf(stderr, "got control message of unknown type %d\n",
@@ -71,10 +71,10 @@ void fuse_unmount(const char *mountpoint)
 {
     const char *mountprog = FUSERMOUNT_PROG;
     char umount_cmd[1024];
-    
+
     snprintf(umount_cmd, sizeof(umount_cmd) - 1, "%s -u -q -z %s", mountprog,
              mountpoint);
-    
+
     umount_cmd[sizeof(umount_cmd) - 1] = '\0';
     system(umount_cmd);
 }
index 522085814337b979e370a22fedd6bc28a50fc6b2..4f9ed2fdc12d1807d4c3e6da1e87c743afae1c47 100644 (file)
@@ -7,13 +7,13 @@
 */
 /* This program does the mounting and unmounting of FUSE filesystems */
 
-/* 
+/*
  * NOTE: This program should be part of (or be called from) /bin/mount
- * 
+ *
  * Unless that is done, operations on /etc/mtab are not under lock, and so
  * data in this file may be lost. (I will _not_ reimplement that locking,
  * and anyway that should be done in libc, if possible.  But probably it
- * isn't).  
+ * isn't).
  */
 
 #include <config.h>
@@ -131,7 +131,7 @@ static int add_mount(const char *fsname, const char *mnt, const char *type,
                strerror(errno));
        return -1;
     }
-    
+
     ent.mnt_fsname = (char *) fsname;
     ent.mnt_dir = (char *) mnt;
     ent.mnt_type = (char *) type;
@@ -144,7 +144,7 @@ static int add_mount(const char *fsname, const char *mnt, const char *type,
                 mtab, strerror(errno));
         return -1;
     }
-    
+
     endmntent(fp);
     return 0;
 }
@@ -165,14 +165,14 @@ static int remove_mount(const char *mnt, int quiet, const char *mtab,
                strerror(errno));
        return -1;
     }
-    
+
     newfp = setmntent(mtab_new, "w");
     if (newfp == NULL) {
        fprintf(stderr, "%s: failed to open %s: %s\n", progname, mtab_new,
                strerror(errno));
        return -1;
     }
-    
+
     if (getuid() != 0) {
         user = get_user_name();
         if (user == NULL)
@@ -199,11 +199,10 @@ static int remove_mount(const char *mnt, int quiet, const char *mtab,
             if (res != 0) {
                 fprintf(stderr, "%s: failed to add entry to %s: %s\n",
                         progname, mtab_new, strerror(errno));
-                
             }
         }
     }
-    
+
     endmntent(fp);
     endmntent(newfp);
 
@@ -268,7 +267,7 @@ static int unmount_fuse(const char *mnt, int quiet, int lazy)
     int res;
     const char *mtab = _PATH_MOUNTED;
     const char *mtab_new = _PATH_MOUNTED "~fuse~";
-    
+
     res = remove_mount(mnt, quiet, mtab, mtab_new);
     if (res == -1)
         return -1;
@@ -399,7 +398,7 @@ static struct mount_flags mount_flags[] = {
 static int find_mount_flag(const char *s, unsigned len, int *on, int *flag)
 {
     int i;
-            
+
     for (i = 0; mount_flags[i].opt != NULL; i++) {
         const char *opt = mount_flags[i].opt;
         if (strlen(opt) == len && strncmp(opt, s, len) == 0) {
@@ -421,7 +420,7 @@ static int add_option(char **optsp, const char *opt, unsigned expand)
     char *newopts;
     if (*optsp == NULL)
         newopts = strdup(opt);
-    else { 
+    else {
         unsigned oldsize = strlen(*optsp);
         unsigned newsize = oldsize + 1 + strlen(opt) + expand + 1;
         newopts = realloc(*optsp, newsize);
@@ -440,7 +439,7 @@ static int get_mnt_opts(int flags, char *opts, char **mnt_optsp)
 {
     int i;
     int l;
-    
+
     if (!(flags & MS_RDONLY) && add_option(mnt_optsp, "rw", 0) == -1)
         return -1;
 
@@ -487,13 +486,13 @@ static int do_mount(const char *mnt, const char *type, mode_t rootmode,
     const char *s;
     char *d;
     char *fsname = NULL;
-    
+
     optbuf = malloc(strlen(opts) + 64);
     if (!optbuf) {
         fprintf(stderr, "%s: failed to allocate memory\n", progname);
         return -1;
     }
-    
+
     for (s = opts, d = optbuf; *s;) {
         unsigned len;
         const char *fsname_str = "fsname=";
@@ -520,7 +519,7 @@ static int do_mount(const char *mnt, const char *type, mode_t rootmode,
                 struct utsname utsname;
                 unsigned kmaj, kmin;
                 res = uname(&utsname);
-                if (res == 0 && 
+                if (res == 0 &&
                     sscanf(utsname.release, "%u.%u", &kmaj, &kmin) == 2 &&
                     (kmaj > 2 || (kmaj == 2 && kmin > 4))) {
                     fprintf(stderr, "%s: note: 'large_read' mount option is deprecated for %i.%i kernels\n", progname, kmaj, kmin);
@@ -617,7 +616,7 @@ static int check_perm(const char **mntp, struct stat *stbuf, int *currdir_fd)
     int res;
     const char *mnt = *mntp;
     const char *origmnt;
-   
+
     res = lstat(mnt, stbuf);
     if (res == -1) {
         fprintf(stderr, "%s: failed to access mountpoint %s: %s\n",
@@ -661,7 +660,7 @@ static int check_perm(const char **mntp, struct stat *stbuf, int *currdir_fd)
                 progname, origmnt);
         return -1;
     }
-    
+
     res = access(mnt, W_OK);
     if (res == -1) {
         fprintf(stderr, "%s: user has no write access to mountpoint %s\n",
@@ -724,13 +723,13 @@ static int try_open_fuse_device(char **devp)
     int fd = try_open(FUSE_DEV_NEW, devp, 1);
     if (fd >= 0)
         return fd;
-    
+
     if (fd == -1) {
         fd = try_open_new_temp(makedev(FUSE_MAJOR, FUSE_MINOR), devp);
         if (fd != -2)
             return fd;
     }
-    
+
     fd = try_open(FUSE_DEV_OLD, devp, 1);
     if (fd >= 0)
         return fd;
@@ -753,7 +752,7 @@ static int open_fuse_device(char **devp)
         fd = try_open_fuse_device(devp);
         if (fd >= 0)
             return fd;
-        
+
 #ifndef USE_UCLIBC
         pid = fork();
 #else
@@ -771,7 +770,7 @@ static int open_fuse_device(char **devp)
     fd = try_open_fuse_device(devp);
     if (fd >= 0)
         return fd;
-    
+
     fprintf(stderr, "%s: fuse device not found, try 'modprobe fuse' first\n",
             progname);
     return -1;
@@ -845,7 +844,7 @@ static int mount_fuse(const char *mnt, const char *opts)
         fchdir(currdir_fd);
         close(currdir_fd);
     }
-    
+
     if (geteuid() == 0) {
         res = add_mount(fsname, mnt, type, mnt_opts);
         unlock_mtab(mtablock);
@@ -924,7 +923,7 @@ static char *resolve_path(const char *orig)
     return dst;
 }
 
-static int send_fd(int sock_fd, int fd) 
+static int send_fd(int sock_fd, int fd)
 {
     int retval;
     struct msghdr msg;
@@ -989,7 +988,7 @@ int main(int argc, char *argv[])
     const char *opts = "";
 
     progname = argv[0];
-    
+
     for (a = 1; a < argc; a++) {
         if (argv[a][0] != '-')
             break;
@@ -1015,7 +1014,7 @@ int main(int argc, char *argv[])
         case 'z':
             lazy = 1;
             break;
-            
+
         case 'q':
             quiet = 1;
             break;
@@ -1026,7 +1025,7 @@ int main(int argc, char *argv[])
             exit(1);
         }
     }
-    
+
     if (a == argc) {
         fprintf(stderr, "%s: missing mountpoint argument\n", progname);
         exit(1);
@@ -1046,13 +1045,13 @@ int main(int argc, char *argv[])
 
     if (getuid() != 0)
         restore_privs();
-    
+
     if (unmount) {
         if (geteuid() == 0) {
             int mtablock = lock_mtab();
             res = unmount_fuse(mnt, quiet, lazy);
             unlock_mtab(mtablock);
-        } else 
+        } else
             res = do_unmount(mnt, quiet, lazy);
         if (res == -1)
             exit(1);