Replace daemon() function with fork()

daemon() is a BSD-ism. Although it is available on many platforms
it is not a standard function. Some platforms (e.g. MacOSX) deprecated
it.

It is safer just to use fork() function that is a part of POSIX.
Reply with ENOMEM in case of failure to allocate request

Reply to request with ENOMEM in case of failure to allocate request
structure.  Otherwise the task issuing the request will just freeze up
until the filesystem daemon is killed.  Reported by Stephan Kulow
Fix the following compile error

fusermount.c: In function 'clone_newns':
fusermount.c:315:2: warning: implicit declaration of function 'clone' [-Wimplicit-function-declaration]
fusermount.c:315:44: error: 'CLONE_NEWNS' undeclared (first use in this function)
fusermount.c:315:44: note: each undeclared identifier is reported only once for each function it appears in
fusermount.c:317:1: warning: control reaches end of non-void function [-Wreturn-type]
Make lock argument of fuse_reply_lock const

Low level API: lock argument of fuse_reply_lock should have a
'const' qualifier.

Reported by Shachar Sharon
Add support for ioctl on directories

Reported by Antonio SJ Musumeci
Add mmap() and munmap() methods to low level API

Currently this is only useful for CUSE.  Also update retrieve_reply()
method.
libfuse: Notifying the kernel of deletion.

libfuse part to allow a FUSE file-system to tell the kernel when a
file or directory is deleted. If the specified dentry has the
specified inode number, the kernel will unhash it.

Signed-off-by: John Muir <john@jmuir.com>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
fuse: documentation update for forget

Update documentation for forget and related methods
FUSE_NODE_SLAB buildfix

When FUSE_NODE_SLAB is not defined, the build fails because of undefined
functions. Attached patch fixes the problem.
utimens availability check

fusexmp uses utimens and takes that function for granted. It is part of 
POSIX exended API set 2 and some systems do not have it yet. Attached
patch checks for utimens availability and returns ENOSYS if unavailable.
Fix hang in wait_on_path()

Ville Silventoinen reported that fs_racer in LTP triggered a hang in
wait_on_path().  This bug was caused by try_get_path() not resetting "ticket" on
permanent failure.
Don't unhash name in FORGET

This resulted in ENOENT being returned for unlinked but still open files if the
kernel sent a FORGET request for the parent directory.

Discovered with fs_racer in LTP.
Free request in fuse_reply_data()

Fix memory leak caused by a missing fuse_request_free() in fuse_reply_data().
Remove unnecessary mutex unlock at the end of multithreaded event loop
Disable symbol versions on MacOSX

MacOSX uses MachO binary format that does not support symbols.

This change comes from fuse4x project (fuse implementation for macosx).
Revert "Add mmap() and munmap() methods to low level API"

This partially reverts commit 4b2157c44e6ad7e692fcffb7450143e83151d36b.

Remove mmap/munmap suppor as this missed the interface changes for Linux-3.3
(API version 7.18).

Only revert the mmap/munmap bits and leave the retrieve_reply API fix in place
as well as the optimization in fuse_send_data_iov_fallback().
Add man pages for fusermount, mount.fuse and ulockmgr_server

Lifted from the Debian package.  The man pages were written by Daniel Baumann
and Bastien Roucaries
Add doc/Makefile.am
clean up man page
Interpret octal escape codes in options

Requested by Jan Engelhardt