You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3547 lines
106 KiB

  1. FUSE 2.9.7 (2016-06-20)
  2. =======================
  3. * Added SELinux support.
  4. * Fixed race-condition when session is terminated right after starting
  5. a FUSE file system.
  6. FUSE 2.9.6 (2016-04-23)
  7. =======================
  8. * Tarball now includes documentation.
  9. * Shared-object version has now been bumped correctly.
  10. FUSE 2.9.5 (2016-01-14)
  11. =======================
  12. * New maintainer: Nikolaus Rath <Nikolaus@rath.org>. Many thanks to
  13. Miklos Szeredi <miklos@szeredi.hu> for bringing FUSE to where it is
  14. now!
  15. * fix warning in mount.c:receive_fd(). Reported by Albert Berger
  16. * fix possible memory leak. Reported by Jose R. Guzman
  17. FUSE 2.9.4 (2015-05-22)
  18. =======================
  19. * fix exec environment for mount and umount. Found by Tavis Ormandy
  20. (CVE-2015-3202).
  21. * fix fuse_remove_signal_handlers() to properly restore the default
  22. signal handler. Reported by: Chris Johnson
  23. * highlevel API: fix directory file handle passed to ioctl() method.
  24. Reported by Eric Biggers
  25. * libfuse: document deadlock avoidance for fuse_notify_inval_entry()
  26. and fuse_notify_delete()
  27. * fusermount, libfuse: send value as unsigned in "user_id=" and
  28. "group_id=" options. Uids/gids larger than 2147483647 would result
  29. in EINVAL when mounting the filesystem. This also needs a fix in
  30. the kernel.
  31. * Initilaize stat buffer passed to ->getattr() and ->fgetattr() to
  32. zero in all cases. Reported by Daniel Iwan
  33. * libfuse: Add missing includes. This allows compiling fuse with
  34. musl. Patch by Daniel Thau
  35. Older Versions (before 2013-01-01)
  36. ==================================
  37. 2013-06-20 Miklos Szeredi <miklos@szeredi.hu>
  38. * libfuse: fix multiple close of device fd. Reported by Dan
  39. Greenfield
  40. 2013-03-19 Miklos Szeredi <miklos@szeredi.hu>
  41. * libfuse: fix thread cancel race. Exiting a worker my race with
  42. cancelling that same worker. This caused a segmenation
  43. fault. Reported and tested by Anatol Pomozov
  44. 2013-02-04 Miklos Szeredi <miklos@szeredi.hu>
  45. * libfuse: fix crash in unlock_path(). Patch by Ratna Manoj
  46. * libfuse: fix the 'remember' option. The lru list was not
  47. initialized for the "/" path. This resulted in remove_node_lru()
  48. crashing on LOOKUP-DOTDOT. Patch by Madan Valluri
  49. * libfuse: configure: detect new util-linux
  50. * libfuse: Use AC_CONFIG_HEADERS instead of AM_CONFIG_HEADER.
  51. Patch by Anatol Pomozov
  52. * libfuse: rename ./configure.in to ./configure.ac. Patch by
  53. Anatol Pomozov
  54. 2012-10-01 Miklos Szeredi <miklos@szeredi.hu>
  55. * Released 2.9.2
  56. 2012-10-01 Miklos Szeredi <miklos@szeredi.hu>
  57. * Fix deadlock in libfuse. Running "svn update" on a fuse
  58. filesystem could deadlock because of a bug in the way the paths
  59. are locked. Reported by Kazuaki Anami
  60. 2012-08-23 Miklos Szeredi <miklos@szeredi.hu>
  61. * Fix missing config.h in buffer.c. Reported by Matthew Gabeler-Lee
  62. 2012-08-14 Miklos Szeredi <miklos@szeredi.hu>
  63. * Not unhashing the name in forget (commit on 2011-12-09) broke
  64. the forget logic in a subtle way, resulting in "fuse internal
  65. error: node NNN not found" and causing the filesystem daemon to
  66. abort. Fix by incrementing the node refcount if nlookup goes from
  67. zero to one. Reported by Kyle Lippincott
  68. 2012-08-13 Miklos Szeredi <miklos@szeredi.hu>
  69. * Fix linking against GNU libiconv. Patch by Natanael Copa
  70. 2012-07-19 Miklos Szeredi <miklos@szeredi.hu>
  71. * Released 2.9.1
  72. 2012-07-19 Miklos Szeredi <miklos@szeredi.hu>
  73. * Fix crash caused by freeing a stack address. Reported by Itay
  74. Perl
  75. 2012-07-04 Miklos Szeredi <miklos@szeredi.hu>
  76. * Fix install of mount.fuse from out-of-tree build. Patch by
  77. Olivier Blin
  78. * Fix build with automake >= 1.12.1. Patch by Olivier Blin
  79. 2012-04-24 Miklos Szeredi <miklos@szeredi.hu>
  80. * Add fallocate operation. Only works on linux kernels 3.5 or
  81. later. Patch by Anatol Pomozov
  82. 2012-05-16 Miklos Szeredi <miklos@szeredi.hu>
  83. * Linking to a library that uses threads requires the application
  84. to be linked with -pthreads otherwise some pthread functions will
  85. be linked to stubs in glibc. So move -pthread from Libs.private
  86. to Libs in fuse.pc. Reported by Werner Fink
  87. * Fix the compile command in the examples. Reported by Luciano
  88. Dalle Ore
  89. 2012-04-20 Miklos Szeredi <miklos@szeredi.hu>
  90. * Released 2.9.0
  91. 2012-04-20 Miklos Szeredi <miklos@szeredi.hu>
  92. * Add missing fuse_fs_flock to fuse_versionscript
  93. 2012-04-10 Miklos Szeredi <miklos@szeredi.hu>
  94. * Check protocol version before sending notifications and return
  95. -ENOSYS if a particular notification is not supported.
  96. * Add 'flag_utime_omit_ok' flag to fuse_operations. If the
  97. filesystem sets this flag then ->utimens() will receive UTIME_OMIT
  98. and UTIME_NOW values as specified in utimensat(2).
  99. 2012-01-27 Miklos Szeredi <miklos@szeredi.hu>
  100. * Interpret octal escape codes in options. Requested by Jan
  101. Engelhardt
  102. 2012-01-26 Miklos Szeredi <miklos@szeredi.hu>
  103. * Add man pages for fusermount, mount.fuse and ulockmgr_server.
  104. Lifted from the Debian package. The man pages were written by
  105. Daniel Baumann and Bastien Roucaries
  106. 2012-01-13 Miklos Szeredi <miklos@szeredi.hu>
  107. * Disable symbol versions on MacOSX. Patch by Anatol Pomozov
  108. 2012-01-02 Miklos Szeredi <miklos@szeredi.hu>
  109. * Remove unnecessary mutex unlock at the end of multithreaded
  110. event loop.
  111. 2011-12-09 Miklos Szeredi <miklos@szeredi.hu>
  112. * Fix hang in wait_on_path(). Reported by Ville Silventoinen
  113. * Don't unhash name in FORGET. This resulted in ENOENT being
  114. returned for unlinked but still open files if the kernel sent a
  115. FORGET request for the parent directory.
  116. * Free request in fuse_reply_data().
  117. 2011-12-08 Miklos Szeredi <miklos@szeredi.hu>
  118. * Fix build if FUSE_NODE_SLAB is not defined. Patch by Emmanuel
  119. Dreyfus
  120. * Check for availability of utimensat() function. Patch by
  121. Emmanuel Dreyfus
  122. 2011-12-07 Miklos Szeredi <miklos@szeredi.hu>
  123. * Add fuse_lowlevel_notify_delete() which tells the kernel that a
  124. file or directory is deleted. Patch by John Muir
  125. 2011-12-06 Miklos Szeredi <miklos@szeredi.hu>
  126. * Update retrieve_reply() method
  127. 2011-12-05 Miklos Szeredi <miklos@szeredi.hu>
  128. * Low level API: lock argument of fuse_reply_lock should have a
  129. 'const' qualifier. Reported by Shachar Sharon
  130. * Add support for ioctl on directories. Reported by Antonio SJ
  131. Musumeci
  132. 2011-10-13 Miklos Szeredi <miklos@szeredi.hu>
  133. * Reply to request with ENOMEM in case of failure to allocate
  134. request structure. Otherwise the task issuing the request will
  135. just freeze up until the filesystem daemon is killed. Reported by
  136. Stephan Kulow
  137. 2011-09-23 Miklos Szeredi <miklos@szeredi.hu>
  138. * Replace daemon() function with fork(). Patch by Anatol Pomozov
  139. 2011-08-26 Miklos Szeredi <miklos@szeredi.hu>
  140. * If configured with --disable-mtab then don't call mount(8) from
  141. libfuse to update the mtab. Reported by: James Sierp
  142. 2011-08-24 Miklos Szeredi <miklos@szeredi.hu>
  143. * Use LRU list for cleaning up the cache if the "remember=T"
  144. option was given. Patch by therealneworld@gmail.com
  145. 2011-07-06 Miklos Szeredi <miklos@szeredi.hu>
  146. * Add ->flock() operation to low and high level interfaces. This
  147. fixes problems with emulating flock() with POSIX locking.
  148. Reported by Sebastian Pipping. As with lock/setlk/getlk most
  149. filesystems don't need to implement this, as the kernel takes care
  150. of file locking. The only reason to implement locking operations
  151. is for network filesystems which want file locking to work between
  152. clients.
  153. 2011-07-02 Sebastian Pipping <sebastian@pipping.org>
  154. * Make xmp_utimens of examples "fusexmp" and "fusexmp_fh"
  155. not follow symlinks as other layers do that already.
  156. 2011-06-02 Miklos Szeredi <miklos@szeredi.hu>
  157. * Add "remember" option. This works similar to "noforget" except
  158. that eventually the node will be allowed to expire from the cache.
  159. Patch by therealneworld@gmail.com
  160. 2011-05-27 Miklos Szeredi <miklos@szeredi.hu>
  161. * Check if splice/vmsplice are supported
  162. 2011-05-26 Miklos Szeredi <miklos@szeredi.hu>
  163. * Remove -lrt -ldl from fuse.pc for dynamic linking since
  164. libfuse.so is already linked with these libraries. Reported by:
  165. Nikolaus Rath
  166. 2011-05-20 Miklos Szeredi <miklos@szeredi.hu>
  167. * Cleaner build output. Patch by Reuben Hawkins
  168. 2011-05-19 Miklos Szeredi <miklos@szeredi.hu>
  169. * Disable splice by default, add "splice_read", "splice_write" and
  170. "splice_move" options. Keep the "no_splice_*" variants, which can
  171. disable splice even if the filesystem explicitly enables it.
  172. 2011-04-15 Max Krasnyansky <maxk@kernel.org>
  173. * Added support for "auto_unmount" option which unmounts the
  174. filesystem automatically on process exit (or crash).
  175. 2011-03-30 Miklos Szeredi <miklos@szeredi.hu>
  176. * Patches by Laszlo Papp fixing various issues found by the
  177. Coverity checker
  178. 2011-03-11 Miklos Szeredi <miklos@szeredi.hu>
  179. * In case of failure to add to /etc/mtab don't umount. Reported
  180. by Marc Deslauriers
  181. 2011-02-02 Miklos Szeredi <miklos@szeredi.hu>
  182. * libfuse: In fuse_session_loop_mt() don't pause when exiting the
  183. worker threads. The pause() was added in 2.2.1 to prevent
  184. segfault on pthread_cancel() on an exited, detached thread. Now
  185. worker threads are not detached and pthread_cancel() should work
  186. fine even after the thread exited. Reported by Boris Protopopov
  187. 2011-01-31 Miklos Szeredi <miklos@szeredi.hu>
  188. * fusermount: chdir to / before performing mount/umount
  189. * fusermount: only allow mount and umount if util-linux supports
  190. --no-canonicalize
  191. 2010-12-16 Miklos Szeredi <miklos@szeredi.hu>
  192. * Highlevel lib: allow hash tables to shrink
  193. * Highlevel lib: add slab allocation for node cache. This will
  194. allow the memory used by the filesystem to grow and shrink
  195. depending on how many inodes are currently cached.
  196. 2010-12-13 Miklos Szeredi <miklos@szeredi.hu>
  197. * Highlevel lib: use dynamically resized hash table for looking up
  198. by name and node ID.
  199. 2010-12-07 Miklos Szeredi <miklos@szeredi.hu>
  200. * Allow batching of forget requests. This allows forget requests
  201. to be processed faster and doesn't require a modification to fuse
  202. filesystems. Reported by Terje Malmedal
  203. * Add ->forget_multi() operation to the lowlevel API. The
  204. filesystem may implement this to process multiple forget requests
  205. in one call
  206. * Fix the ambiguity of ioctl ABI on the kernel/userspace boundary
  207. for 32bit vs. 64bit userspace
  208. 2010-11-10 Miklos Szeredi <miklos@szeredi.hu>
  209. * Add new write_buf() method to the highlevel API. Similarly to
  210. the lowlevel write_buf() method, this allows implementing zero
  211. copy writes.
  212. * Add a new read_buf() method to the highlevel API. This allows
  213. returning a generic buffer from the read method, which in turn
  214. allows zero copy reads.
  215. * In fusexmp_fh implement the ->read_buf() and ->write_buf()
  216. methods. Leave the ->read() and ->write() implementations for
  217. reference, even though they are not necessary.
  218. 2010-11-08 Miklos Szeredi <miklos@szeredi.hu>
  219. * Fix check for read-only fs in mtab update
  220. * Open /dev/null for write instead of read for redirecting stdout
  221. and stderr
  222. * If umount(8) supports --fake and --no-canonicalize (util-linux-ng
  223. version 2.18 or later), and umount(2) supports the
  224. UMOUNT_NOFOLLOW flag (linux kernel version 2.6.35 or later) then,
  225. "fusermount -u" will call the umount(2) system call and use
  226. "umount --fake ..." to update /etc/mtab
  227. * Added --disable-legacy-umount option to configure. This
  228. disables the runtime checking of umount(8) version. When built
  229. with this option then "fusermount -u" will fail if umount(8)
  230. doesn't support the --fake and --no-canonicalize options.
  231. * Fix fuse_buf_copy() if already at the end of the buffers
  232. * Add new ->write_buf() method to low level interface. This
  233. allows passig a generic buffer, either containing a memory buffer
  234. or a file descriptor. This allows implementing zero copy writes.
  235. * Add fuse_session_receive_buf() and fuse_session_process_buf()
  236. which may be used in event loop implementations to replace
  237. fuse_chan_recv() and fuse_session_process() respectively.
  238. * Remove unnecessary restoring of current working directory in
  239. "fusermount -u"
  240. * Add ctx->pid to debug output
  241. * Fix st_nlink value in high level lib if file is unlinked but
  242. still open
  243. * libfuse: add store request. Request data to be stored in the
  244. kernel buffers for a given inode.
  245. * libfuse: add retrieve request. Retrieve data stored in the
  246. kernel buffers for a given inode.
  247. 2010-10-14 Miklos Szeredi <miklos@szeredi.hu>
  248. * Use LTLIBICONV when linking libfuse. This fixes building against
  249. uclibc + libiconv. Patch by Natanael Copa
  250. 2010-10-05 Miklos Szeredi <miklos@szeredi.hu>
  251. * Add missing argument check in ulockmgr.c to prevent calling
  252. ulockmgr_server with illegal arguments. This would cause an ever
  253. growing list of ulockmgr_server processes with an endless list of
  254. open files which finally exceeds the open file handle limit.
  255. Patch by Markus Ammer
  256. 2010-09-28 Miklos Szeredi <miklos@szeredi.hu>
  257. * Fix ambiguous symbol version for fuse_chan_new.
  258. fuse_versionscript included fuse_chan_new in both FUSE_2.4 and
  259. FUSE_2.6. Remove the FUSE_2.4, which is invalid.
  260. 2010-09-28 Miklos Szeredi <miklos@szeredi.hu>
  261. * Fix option escaping for fusermount. If the "fsname=" option
  262. contained a comma then the option parser in fusermount was
  263. confused (Novell bugzilla #641480). Fix by escaping commas when
  264. passing them over to fusermount. Reported by Jan Engelhardt
  265. 2010-08-27 Miklos Szeredi <miklos@szeredi.hu>
  266. * Add NetBSD support. Patch from Emmanuel Dreyfus
  267. 2010-07-12 Miklos Szeredi <miklos@szeredi.hu>
  268. * libfuse: add buffer interface. Add a generic buffer interface
  269. for use with I/O. Buffer vectors are supplied and each buffer in
  270. the vector may be a memory pointer or a file descriptor.
  271. * The fuse_reply_fd() interface is converted to using buffers.
  272. 2010-06-23 Miklos Szeredi <miklos@szeredi.hu>
  273. * Make the number of max background requests and congestion
  274. threshold tunable. New options are "max_background" and
  275. "congestion_threshold". Only effective on linux kernel versions
  276. 2.6.32 or greater. Patch by Csaba Henk
  277. 2010-06-17 Miklos Szeredi <miklos@szeredi.hu>
  278. * Add fuse_reply_fd() reply function to the low level interface.
  279. On linux version 2.6.35 or greater this will use splice() to move
  280. data directly from a file descriptor to the fuse device without
  281. needing to go though a userspace buffer. With the
  282. FUSE_REPLY_FD_MOVE flag the kernel will attempt to move the data
  283. directly into the filesystem's cache. On earlier kernels it will
  284. fall back to an intermediate buffer. The options
  285. "no_splice_write" and "no_splice_move" can be used to disable
  286. splicing and moving respectively.
  287. 2010-06-15 Miklos Szeredi <miklos@szeredi.hu>
  288. * Fix out-of-source build. Patch by Jörg Faschingbauer
  289. * Add a "nopath" option and flag, indicating that path argument
  290. need not be calculated for the following operations: read, write,
  291. flush, release, fsync, readdir, releasedir, fsyncdir, ftruncate,
  292. fgetattr, lock, ioctl and poll.
  293. 2010-05-10 Miklos Szeredi <miklos@szeredi.hu>
  294. * Remove "chmod root" from install of fusermount. Reported by
  295. Lucas C. Villa Real
  296. 2010-04-26 Miklos Szeredi <miklos@szeredi.hu>
  297. * Released 2.8.4
  298. 2010-04-26 Miklos Szeredi <miklos@szeredi.hu>
  299. * Fix checking for symlinks in umount from /tmp. Reported by Al
  300. Viro
  301. * Fix umounting if /tmp is a symlink. Reported by Franco Broi
  302. 2010-02-18 Miklos Szeredi <miklos@szeredi.hu>
  303. * Fix definition of FUSE_OPT_END for C++. Reported by Tim
  304. Bruylants
  305. 2010-02-03 Miklos Szeredi <miklos@szeredi.hu>
  306. * Fix stack alignment for clone()
  307. 2010-02-01 Miklos Szeredi <miklos@szeredi.hu>
  308. * Released 2.8.3
  309. 2010-02-01 Miklos Szeredi <miklos@szeredi.hu>
  310. * Using "--no-canonicalize" with umount(8) conflicts with the race
  311. fix, sinceit assumes the supplied path is absolute, while the race
  312. fix relies on the path being relative to the current directory.
  313. Reported by Tom Rindborg
  314. 2010-01-26 Miklos Szeredi <miklos@szeredi.hu>
  315. * Released 2.8.2
  316. 2010-01-21 Miklos Szeredi <miklos@szeredi.hu>
  317. * Fix race if two "fusermount -u" instances are run in parallel.
  318. Reported by Dan Rosenberg
  319. * Make sure that the path to be unmounted doesn't refer to a
  320. symlink
  321. 2010-01-14 Miklos Szeredi <miklos@szeredi.hu>
  322. * Fix compile error on FreeBSD. Patch by Jay Sullivan
  323. 2009-12-17 Miklos Szeredi <miklos@szeredi.hu>
  324. * Use '--no-canonicalize' option of mount(8) (available in
  325. util-linux-ng version 2.17 or greater) to avoid calling
  326. readling(2) on the newly mounted filesystem before the mount
  327. procedure is finished. This has caused a deadlock if "audit" was
  328. enabled in the kernel. Also use '--no-canonicalize' for umount to
  329. avoid touching the mounted filesystem.
  330. 2009-09-11 Miklos Szeredi <miklos@szeredi.hu>
  331. * Released 2.8.1
  332. 2009-08-25 Miklos Szeredi <miklos@szeredi.hu>
  333. * Fix missing versioned symbol fuse_get_context@FUSE_2.2
  334. 2009-08-18 Miklos Szeredi <miklos@szeredi.hu>
  335. * Released 2.8.0
  336. 2009-08-18 Miklos Szeredi <miklos@szeredi.hu>
  337. * Add missing fuse_session_data to versionscript
  338. * Make sure all global symbols are prefixed with "fuse_" or "cuse_"
  339. 2009-07-16 Miklos Szeredi <miklos@szeredi.hu>
  340. * Clarify how the protocol version should be negotiated between
  341. kernel and userspace. Notably libfuse didn't correctly handle the
  342. case when the supported major versions didn't match
  343. * Add missing pthread link for libulockmgr. Patch by Petr Salinger
  344. 2009-07-02 Miklos Szeredi <miklos@szeredi.hu>
  345. * The context is extended with a 'umask' field. The umask is sent
  346. for mknod, mkdir and create requests by linux kernel version
  347. 2.6.31 or later, otherwise the umask is set to zero. Also
  348. introduce a new feature flag: FUSE_CAP_DONT_MASK. If the kernel
  349. supports this feature, then this flag will be set in conn->capable
  350. in the ->init() method. If the filesystem sets this flag in in
  351. conn->want, then the create modes will not be masked.
  352. * Add low level interfaces for lookup cache and attribute
  353. invalidation. This feature is available in linux kernels 2.6.31
  354. or later. Patch by John Muir
  355. * Kernel interface version is now 7.12
  356. * fusermount: Do not silently ignore command line arguments.
  357. Patch by Sebastian Harl
  358. 2009-06-19 Miklos Szeredi <miklos@szeredi.hu>
  359. * Released 2.8.0-pre3
  360. 2009-06-19 Miklos Szeredi <miklos@szeredi.hu>
  361. * Add fuse_getgroups (high level lib) and fuse_req_getgroups (low
  362. level lib) functions to query the supplementary group IDs for the
  363. current request. Currently this is implemented on Linux by
  364. reading from the /proc filesystem.
  365. 2009-06-18 Miklos Szeredi <miklos@szeredi.hu>
  366. * Add "noforget" option to high level lib to prevent ESTALE errors
  367. on NFS exported filesystems. This result in paths being cached
  368. forever, resulting in ever growing memory usage. Use with care.
  369. * Add "no_remote_lock" option to disable remote file locking even
  370. if the filesystem implements it. With this option locking
  371. primitives (flock, lockf, fcntl(F_SETLK)) will still work, but
  372. will ignore remotely locked files.
  373. * CUSE patches from Tejun Heo:
  374. * Unrestricted ioctl support left some debris. Clean them up:
  375. o No reason to pass around pointer to flags. Pass flags directly.
  376. o Clean up comment and prototype parameter names.
  377. o fuse_lib_ioctl() didn't reply when get_path() failed. Fix it.
  378. o Remove unused variables {in|out}_iov from fuse_lib_ioctl().
  379. * Add fuse_reply_ioctl_iov()
  380. * Move fuse_session, fuse_req and fuse_ll definitions to fuse_i.h
  381. and make send_reply_iov() and fuse_setup_common() global (also in
  382. fuse_i.h). These will be used by CUSE support.
  383. * Restructure fuse_ll_process()
  384. * Implement libfuse side of CUSE support. CUSE uses subset of FUSE
  385. operations as dir operations don't make sense for CUSE where one
  386. instance implements single character device.
  387. CUSE support comes with its own cuse_lowevel_ops and related
  388. initialization and helper functions. Except for initialization, it
  389. usage is basically identical to FUSE.
  390. This patch also adds example/cusexmp.c which can create a character
  391. device with name and device number specified on command line. The
  392. created device itself is pretty boring. It's a bit bucket supporting
  393. read, write and access via ioctl.
  394. 2009-06-16 Miklos Szeredi <miklos@szeredi.hu>
  395. * Add missing fuse_reply_bmap to versionscript. Debian
  396. Bug#531329. Reported by Goswin Brederlow
  397. 2009-05-27 Miklos Szeredi <miklos@szeredi.hu>
  398. * Don't call forget_node() if the lookup was negative and write()
  399. for the reply returned ENOENT. Reported by John Haxby
  400. 2009-05-25 Miklos Szeredi <miklos@szeredi.hu>
  401. * Add FUSE_CAP_EXPORT_SUPPORT to fuse_common.h
  402. 2009-05-08 Miklos Szeredi <miklos@szeredi.hu>
  403. * Fix missing newlines in some printfs
  404. * Fix 'make install-strip'. Reported by Dominick Layfield
  405. 2009-01-05 Miklos Szeredi <miklos@szeredi.hu>
  406. * Released 2.8.0-pre2
  407. 2008-12-08 Miklos Szeredi <miklos@szeredi.hu>
  408. * Implement poll support. Patch by Tejun Heo
  409. * Add missing setattr flags to <fuse_lowlevel.h>.
  410. * Only pass valid flags to ->setattr().
  411. 2008-12-05 Miklos Szeredi <miklos@szeredi.hu>
  412. * Implement ioctl support. On high level interface only
  413. "restricted" ioctls are supported (which are defined with the
  414. _IO(), _IOR(), _IOW() or _IOWR() macros). Unrestricted ioctls
  415. will only be allwed to CUSE (Character Device in Userspace)
  416. servers. Patch by Tejun Heo
  417. 2008-11-28 Miklos Szeredi <miklos@szeredi.hu>
  418. * If open sets fi->nonseekable, libfuse will tell the kernel that
  419. the file is not seekable. Patch by Tejun Heo
  420. 2008-11-19 Miklos Szeredi <miklos@szeredi.hu>
  421. * lowlevel lib: fix deadlock if fuse_reply_* is called from the
  422. interrupt handling function. Reported by Tero Marttila
  423. 2008-10-16 Miklos Szeredi <miklos@szeredi.hu>
  424. * Allow commas in options to be escaped with a backslash
  425. * Add new function: fuse_opt_add_opt_escaped()
  426. * Add missing fuse_reply_bmap() to the version script
  427. 2008-10-14 Miklos Szeredi <miklos@szeredi.hu>
  428. * Pass current file flags to read and write operations
  429. 2008-07-24 Miklos Szeredi <miklos@szeredi.hu>
  430. * Clean up debug output in highlevel lib
  431. 2008-07-10 Miklos Szeredi <miklos@szeredi.hu>
  432. * Released 2.8.0-pre1
  433. 2008-06-27 Miklos Szeredi <miklos@szeredi.hu>
  434. * Fix handling of (no)suid and (no)dev options if filesystem is
  435. mounted from /etc/fstab or via mount(8). Reported by Jan Ondrej.
  436. * Skip calling mount(8) if /etc/mtab doesn't exist or if it's on a
  437. read-only filesystem. This works around issues with certain mount
  438. implementations. Reported by Szabolcs Szakacsits.
  439. 2008-06-16 Miklos Szeredi <miklos@szeredi.hu>
  440. * Remove fuse kernel module sources. Linux 2.6.27 will support
  441. NFS exporting.
  442. 2008-06-10 Miklos Szeredi <miklos@szeredi.hu>
  443. * Fix theoretical infinite loops in libfuse. Reported by Szabolcs
  444. Szakacsits
  445. * Fix missing <sys/param.h> include for PATH_MAX. Reported by
  446. Szabolcs Szakacsits
  447. 2008-05-23 Miklos Szeredi <miklos@szeredi.hu>
  448. * Fix mounting over symlink. Reported by Szabolcs Szakacsits
  449. 2008-05-09 Miklos Szeredi <miklos@szeredi.hu>
  450. * Don't allow bigger than 4kB writes by default on 2.6.26 and
  451. later kernels, so that filesystems not expecting this are not
  452. broken on a kernel upgrade. Provide a 'big_writes' mount option
  453. to enable this feature. In future API revisions this may become
  454. the default.
  455. 2008-04-09 Miklos Szeredi <miklos@szeredi.hu>
  456. * Update warning message for missing newline at end of fuse.conf
  457. * Update debug message for successful operation to not include the
  458. string "error:"
  459. 2008-04-08 Miklos Szeredi <miklos@szeredi.hu>
  460. * Update error message for missing mountpoint parameter. Reported
  461. by Allen Pulsifer
  462. 2008-04-04 Miklos Szeredi <miklos@szeredi.hu>
  463. * Print library version information to debug output
  464. * Highlevel lib: don't limit paths to 4095 characters
  465. 2008-03-25 Miklos Szeredi <miklos@szeredi.hu>
  466. * Fix memory leaks on mount. Patch by Szabolcs Szakacsits
  467. 2008-03-19 Miklos Szeredi <miklos@szeredi.hu>
  468. * Fix missing pthread_mutex_destroy in error path of
  469. fuse_lib_opendir(). Patch by Szabolcs Szakacsits
  470. 2008-03-07 Miklos Szeredi <miklos@szeredi.hu>
  471. * Add queuing on contention to per-node lock algorithm, to avoid
  472. starvation.
  473. * Only enable cancelation when reading a request, otherwise
  474. cancellation could happen with a mutex held, which could hang the
  475. process on umount
  476. 2008-02-08 Miklos Szeredi <miklos@szeredi.hu>
  477. * Block SIGCHLD when executing mount and umount
  478. * fusexmp_fh: avoid unnecessary seeking in readdir
  479. * Update kernel interface to 7.9:
  480. * Support receiving file handle from kernel in GETATTR request
  481. * Allow operations with a NULL path argument, if the filesystem
  482. supports it
  483. * Add support atomic open(O_TRUNC)
  484. * Support the st_blksize field in struct stat
  485. * If the "FUSE_THREAD_STACK" environment is set, initialize the
  486. stack size of threads by this value. Patch by Florin Malita
  487. * Add per-node locking, instead of a global tree lock to protect
  488. the path from changing during operations. Original patch by
  489. Rodrigo Castro
  490. 2008-02-03 Csaba Henk <csaba.henk@creo.hu>
  491. * lib/mount_bsd.c:
  492. - string formatting fixes
  493. - exit if mounting has failed
  494. (in FreeBSD a mount failure is not critical per se, as the daemon
  495. still could be mounted externally, but waiting for such an event
  496. is more confusing than fruitful)
  497. - ditch the kvm(8) stuff and simply use forced unmount which just
  498. won't block
  499. - prettify option specifications
  500. - add "-onosync_unmount" kernel option
  501. 2008-01-07 Csaba Henk <csaba.henk@creo.hu>
  502. * lib/mount_bsd.c:
  503. - refine device closing in a race-free way
  504. - add support for "-osubtype" on FreeBSD
  505. * makeconf.sh: make it work under FreeBSD
  506. 2008-01-03 Csaba Henk <csaba.henk@creo.hu>
  507. * lib/mount_bsd.c: close device before unmount
  508. (cf. lib/mount.c rev. 1.43) and fix some warnings
  509. 2007-12-23 Miklos Szeredi <miklos@szeredi.hu>
  510. * Fix './configure --disable-static'. Patch from Ismail Dönmez
  511. 2007-12-17 Miklos Szeredi <miklos@szeredi.hu>
  512. * Released 2.7.2
  513. 2007-12-12 Miklos Szeredi <miklos@szeredi.hu>
  514. * Fix kernel module compile for 2.6.24
  515. * Invalidate attributes of parent directory after create(), since
  516. the modification time changes. Invalidate attributes on rename,
  517. since some filesystems may update st_ctime. Reported by Szabolcs
  518. Szakacsits
  519. * Fix NFS exporting to handle 64bit node IDs
  520. * Disable old symbol versions if __UCLIBC__ is defined. If a
  521. symbol in a library has multiple versions, the runtime linker in
  522. uClibc seems to randomly choose between them.
  523. * Remove erroneous 'fuse_opt_insert_arg@FUSE_2_5' from
  524. fuse_version_script. fuse_opt_free_args() was added in fuse-2.6.
  525. * Close fuse device file descriptor before calling umount(),
  526. preventing a deadlock when umount is synchronous. Reported by
  527. Szabolcs Szakacsits
  528. 2007-11-12 Miklos Szeredi <miklos@szeredi.hu>
  529. * 'fusermount -u' did not umount the filesystem if /etc/mtab was a
  530. symlink. This bug was introduced in 2.7.1 by "Don't call
  531. /bin/[u]mount if /etc/mtab is a symlink". Found by robertsong.
  532. 2007-10-16 Miklos Szeredi <miklos@szeredi.hu>
  533. * Released 2.7.1
  534. 2007-10-16 Miklos Szeredi <miklos@szeredi.hu>
  535. * Clarify licence version to be "LGPLv2" for the library
  536. * kernel fixes:
  537. * After mount set nlink attribute for the root inode to 1
  538. * Fix wake up of task waiting for a reserved request
  539. * Fix allowing setattr, listxattr and statfs for other users
  540. 2007-09-18 Miklos Szeredi <miklos@szeredi.hu>
  541. * Add missing context initialization in fuse_fs_chmod(). Bug
  542. found by "iohead"
  543. * Fix kernel module compilation for 2.6.23. Based on patch by
  544. Marian Marinov
  545. 2007-09-04 Philippe Elie <phil.el@wanadoo.fr>
  546. * lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget()
  547. 2007-07-31 Miklos Szeredi <miklos@szeredi.hu>
  548. * Work around hotplug issue, that it calls filesystem with file
  549. descriptors 0, 1 and 2 not open. Tracked down by Leif Johnson
  550. 2007-07-25 Miklos Szeredi <miklos@szeredi.hu>
  551. * Don't call /bin/[u]mount if /etc/mtab is a symlink. Reported by
  552. Tomas M
  553. * Also don't touch /etc/mtab if it is within the mounted
  554. filesystem. Suggested by Jeffrey Law
  555. 2007-07-12 Miklos Szeredi <miklos@szeredi.hu>
  556. * Reset args->argc in fuse_opt_free_args(). Patch by Lucas
  557. C. Villa Real
  558. 2007-07-02 Miklos Szeredi <miklos@szeredi.hu>
  559. * Released 2.7.0
  560. 2007-07-02 Miklos Szeredi <miklos@szeredi.hu>
  561. * Accept a NULL "op" for fuse_main(), etc. This is useful if
  562. filesystem is only invoking fuse to print a help message, or
  563. version. Fixes RedHat bugzilla #217343
  564. 2007-06-22 Miklos Szeredi <miklos@szeredi.hu>
  565. * lib: fix locking when loading a filesystem module
  566. 2007-06-21 Miklos Szeredi <miklos@szeredi.hu>
  567. * Add fs subtype support to mount.fuse
  568. 2007-06-20 Miklos Szeredi <miklos@szeredi.hu>
  569. * Add fs subtype support to libfuse and fusermount
  570. 2007-06-19 Miklos Szeredi <miklos@szeredi.hu>
  571. * kernel: sync with mainline (2.6.22)
  572. 2007-06-18 Miklos Szeredi <miklos@szeredi.hu>
  573. * Send debug output to stderr instead of stdout. Patch by Jan
  574. Engelhardt
  575. 2007-06-03 Miklos Szeredi <miklos@szeredi.hu>
  576. * libulockmgr: Work around a kernel bug in recv(), causing it to
  577. sometimes return zero even if data was available on the socket.
  578. 2007-05-29 Miklos Szeredi <miklos@szeredi.hu>
  579. * lib: optimization: store parent pointer in node instead of
  580. parent id
  581. 2007-05-25 Miklos Szeredi <miklos@szeredi.hu>
  582. * lib: don't create new thread for each FORGET request. FORGET
  583. messages sometimes caused so many threads to be created, that
  584. process virtual memory space ran out. Reported by Chris AtLee
  585. 2007-05-24 Miklos Szeredi <miklos@szeredi.hu>
  586. * lib: fix memory leak on thread creation failure in multithreaded
  587. event loop. Found by Chris AtLee
  588. 2007-05-23 Miklos Szeredi <miklos@szeredi.hu>
  589. * lowlevel lib: add fuse_reply_iov function, which is similar to
  590. fuse_reply_buf, but accepts a vector of buffers. Patch by Roger
  591. Willcocks
  592. 2007-05-21 Miklos Szeredi <miklos@szeredi.hu>
  593. * Fix Oops or error if a regular file is created with mknod(2) on
  594. a fuse filesystem. Kernels 2.6.18 onward are affected. Thanks to
  595. J. Cameijo Cerdeira for the report
  596. 2007-05-11 Csaba Henk <csaba.henk@creo.hu>
  597. * libfuse: fix return value of fuse_loop()/fuse_loop_mt().
  598. Error reported by Csaba Henk, fix by Miklos Szeredi
  599. * libfuse: fix unlock in flush
  600. * libfuse: do unlocking on RELEASE+FLUSH
  601. 2007-05-03 Miklos Szeredi <miklos@szeredi.hu>
  602. * Released 2.7.0-rc1
  603. 2007-05-02 Miklos Szeredi <miklos@szeredi.hu>
  604. * kernel: sync with mainline:
  605. * Use invalidate_mapping_pages() if available
  606. * Fix BUG when invalid file type is supplied in mount. Patch by
  607. Timo Savola
  608. 2007-04-27 Miklos Szeredi <miklos@szeredi.hu>
  609. * libfuse: call umount(8) directly instead of fusermount if
  610. possible
  611. * Clean up init script, make it LSB compliant
  612. 2007-04-26 Miklos Szeredi <miklos@szeredi.hu>
  613. * In multithreaded loop, use a semaphore instead of SIGHUP to wake
  614. up the main thread on umount. This is more elegant, and works
  615. even if signals are blocked.
  616. 2007-04-25 Miklos Szeredi <miklos@szeredi.hu>
  617. * Improve mounting support in libfuse:
  618. - check non-empty mountpoint
  619. - only fall back to fusermount when necessary
  620. 2007-04-23 Miklos Szeredi <miklos@szeredi.hu>
  621. * Don't chdir to "/" in foreground mode, it causes more trouble
  622. than it's worth
  623. 2007-04-18 Miklos Szeredi <miklos@szeredi.hu>
  624. * Replace utils/mount.fuse "sh" script with a "C" program
  625. 2007-04-15 Miklos Szeredi <miklos@szeredi.hu>
  626. * Add -lulockmgr to compilation comment in fusexmp_fh.c
  627. 2007-04-05 Miklos Szeredi <miklos@szeredi.hu>
  628. * Check for iconv. Patch by Csaba Henk
  629. * Add direct umounting
  630. * Use "fusectl" as the device for the fusectl filesystem. Debian
  631. Bug#417945. Reported by Laurent Bonnaud
  632. 2007-04-01 Csaba Henk <csaba.henk@creo.hu>
  633. * Fix some FreeBSD related macros.
  634. 2007-03-30 Miklos Szeredi <miklos@szeredi.hu>
  635. * Add support for direct mounting by libfuse. Fall back on
  636. calling fusermount if it doesn't work
  637. 2007-03-14 Miklos Szeredi <miklos@szeredi.hu>
  638. * Released 2.7.0-pre1
  639. 2007-03-05 Miklos Szeredi <miklos@szeredi.hu>
  640. * Correctly handle O_APPEND in direct IO mode. Reported by Greg
  641. Bruno
  642. * mount.fuse should use /bin/bash. Debian Bug#413403. Reported
  643. by Thomas Weinbrenner
  644. 2007-02-26 Miklos Szeredi <miklos@szeredi.hu>
  645. * Fix detection of installed fuse in init script. Reported and
  646. fix suggested by Davide Canova
  647. 2007-02-05 Miklos Szeredi <miklos@szeredi.hu>
  648. * Fix 2.6.9 RHEL kernels, which have compatibility mutex.h, but
  649. don't define mutex_destroy(), bummer. Patch from Phil Schwan
  650. 2007-02-04 Miklos Szeredi <miklos@szeredi.hu>
  651. * Compile fuseblk for kernels which don't have an option to turn
  652. off the block layer (CONFIG_BLOCK). Reported by Szakacsits
  653. Szabolcs
  654. 2007-02-03 Miklos Szeredi <miklos@szeredi.hu>
  655. * Add filesystem stacking support to high level API. Filesystem
  656. modules can be built into libfuse or loaded from shared object
  657. (.so) files
  658. * Add 'subdir' and 'iconv' built in modules
  659. * lib/fuse.c: Fix locking for the reply code in create and open
  660. 2007-02-02 Miklos Szeredi <miklos@szeredi.hu>
  661. * kernel: make it compile on "strange" kernels which have emulated
  662. mutexes via <linux/mutex.h> but no i_mutex. Reported by Tomasz
  663. Mateja
  664. 2007-01-28 Miklos Szeredi <miklos@szeredi.hu>
  665. * kernel: fix BUG in control filesystem if it is umounted and
  666. mounted again, while some fuse filesystems are present.
  667. Bugreport from Florent Mertens
  668. * kernel: sync with mainline, support 2.6.20
  669. 2007-01-22 Miklos Szeredi <miklos@szeredi.hu>
  670. * lib/Makefile.am: actually link libfuse against libfuse_libs
  671. 2007-01-19 Miklos Szeredi <miklos@szeredi.hu>
  672. * Build fix for 2.6.16 vanila and 2.6.15 FC5 kernels. Patch from
  673. Ian Abbott
  674. 2007-01-18 Miklos Szeredi <miklos@szeredi.hu>
  675. * Fix abort in fuse_new() compatibility API for opts == NULL case.
  676. Novell bugzilla #233870. Patch from Takashi Iwai.
  677. 2007-01-13 Miklos Szeredi <miklos@szeredi.hu>
  678. * Fix option parsing in mount.fuse. Patch from Jens M. Noedler
  679. 2007-01-02 Miklos Szeredi <miklos@szeredi.hu>
  680. * Fix unaligned access in file desctriptor passing in libfuse,
  681. fusermount and ulockmgr. Debian bug ID: 404904. Reported and
  682. tested by Sebastian Fontius
  683. 2006-12-16 Miklos Szeredi <miklos@szeredi.hu>
  684. * kernel: don't keep unreferenced inodes in the icache.
  685. 2006-12-15 Miklos Szeredi <miklos@szeredi.hu>
  686. * fusermount: Fix detection of fuseblk. Reported by Szakacsits
  687. Szabolcs
  688. * lib: Fix use after free in fuse_flush(). Reported by Ron
  689. Lindman
  690. 2006-12-10 Miklos Szeredi <miklos@szeredi.hu>
  691. * mount.fuse: add "setuid=USER" option which does a "su - USER"
  692. for the filesystem
  693. * fusermount: use "/bin/mount -f" to add entry to /etc/mtab, and
  694. "/bin/umount" to remove entry from /etc/mtab. This gets rid of
  695. the ugly code dealing with mtab, as well as a possible race
  696. between fusermount and mount trying to modify /etc/mtab at the
  697. same time
  698. * Fix "buffer size too small: 4" warning for users of the
  699. fuse_loop_mt_proc() function.
  700. 2006-12-04 Miklos Szeredi <miklos@szeredi.hu>
  701. * Fix warnings with gcc-4.1 on 64bit archs. Report from
  702. Harshavardhana
  703. * Add extra warning options, and fix resulting warnings
  704. * Really fix fuse_teardown problem
  705. 2006-12-02 Miklos Szeredi <miklos@szeredi.hu>
  706. * Add -lrt to fuse.pc (if needed) to fix static linking against
  707. libfuse. Reported by Szakacsits Szabolcs
  708. 2006-12-01 Miklos Szeredi <miklos@szeredi.hu>
  709. * Released 2.6.1
  710. 2006-11-30 Miklos Szeredi <miklos@szeredi.hu>
  711. * Fix API version 21 and 22 compatibility for fuse_teardown.
  712. Reported by Bgs
  713. 2006-11-29 Miklos Szeredi <miklos@szeredi.hu>
  714. * fusermount: Print a more helpful message in case the kernel
  715. doesn't support the 'fuseblk' filesystem type. This has been
  716. biting ntfs-3g users. Reported by Yura Pakhuchiy
  717. * kernel: fix build problem for "make -C ...". Reported by
  718. Stephen Bryant
  719. 2006-11-19 Miklos Szeredi <miklos@szeredi.hu>
  720. * Fix bug in certain error paths of lookup routines. The request
  721. object was reused for sending FORGET, which is illegal. This bug
  722. could cause an Oops in linux-2.6.18 or in fuse-2.6.0, and might
  723. silently corrupt memory in earlier versions. Report and test
  724. program by Russ Cox
  725. 2006-11-11 Miklos Szeredi <miklos@szeredi.hu>
  726. * Print an error if an incompatible kernel interface version is
  727. detected in INIT. This will only show if filesystem is started
  728. with -d or -f
  729. * Fix order of fuse_destroy()/fuse_unmount() in error cleanup of
  730. fuse_setup_common(). Reported by Szakacsits Szabolcs
  731. 2006-11-06 Miklos Szeredi <miklos@szeredi.hu>
  732. * Fix recursive locking in fuse_create(). Thanks to Takuya
  733. Ishibashi for the bug report
  734. 2006-10-28 Miklos Szeredi <miklos@szeredi.hu>
  735. * Fix automake problem. Patch from Nix
  736. 2006-10-26 Miklos Szeredi <miklos@szeredi.hu>
  737. * Fix mount.fuse to use /bin/sh instead of /bin/bash, which is not
  738. always available on embedded systems. Patch from Paul Smith
  739. * Fix util/Makefile.am, so that failure to run update-rc.d or
  740. device creation doesn't cause make to fail. Reported by Paul
  741. Smith
  742. 2006-10-21 Miklos Szeredi <miklos@szeredi.hu>
  743. * Released 2.6.0
  744. 2006-10-18 Miklos Szeredi <miklos@szeredi.hu>
  745. * fusermount: don't try to create a lock file if /etc/mtab is a
  746. symlink. Report and patch from Alexei Sheplyakov (debian bug
  747. #393693)
  748. 2006-10-17 Miklos Szeredi <miklos@szeredi.hu>
  749. * Minor changes, sync with mainline tree
  750. 2006-10-16 Miklos Szeredi <miklos@szeredi.hu>
  751. * Released 2.6.0-rc3
  752. 2006-10-15 Miklos Szeredi <miklos@szeredi.hu>
  753. * kernel: cleanups
  754. 2006-10-13 Miklos Szeredi <miklos@szeredi.hu>
  755. * kernel: Fix compilation on patched 2.6.18 (fc6) and 2.6.19.
  756. Report from David Shaw
  757. * lib: Fix lost error on renaming a file. Report from David Shaw
  758. * lib: Fix lost error on hiding open files (renaming to
  759. .fuse_hiddenXXXX)
  760. * kernel: Fix a rare hang on SMP/32bit on heavy filesystem
  761. activity. The cause of the bug was that some calls to
  762. i_size_write() were not protected by a lock, and hence
  763. i_size_seqcount could become corrupted. This caused subsequent
  764. calls to i_size_read() to spin forever. This is a long standing
  765. bug was probably introduced in version 2.2, and thought to be
  766. related to NFS exporting (it's not). It was reported by various
  767. people, but Dana Henriksen has finally helped me to track it down,
  768. so big thanks to him
  769. * kernel: Protect against truncation of a swapfile
  770. 2006-10-10 Miklos Szeredi <miklos@szeredi.hu>
  771. * kernel: Check for signature of super_operations->umount_begin().
  772. Ubuntu kernel 2.6.17 seems to use the new signature found in
  773. 2.6.18. Thanks to Florent Mertens for the report
  774. 2006-10-08 Miklos Szeredi <miklos@szeredi.hu>
  775. * Make sure inode numers wrap around at 2^32. This is needed on
  776. dual 64bit/32bit architectures, because 32bit applications using
  777. the non-largefile interface would otherwise break (EOVERFLOW error
  778. would be returned by the stat() system call family)
  779. * ulockmgr: handle the case, when a locking operation fails
  780. because no more file desctriptors are available in
  781. ulockmgr_server. Also work around a Linux kernel bug (known to
  782. exist for all Linux kernel versions <= 2.6.18) which may cause
  783. sent file descriptors to be lost in the above case
  784. * ulockmgr: optimize file descriptor use
  785. * restore needed cpp flags to util/Makefile.am
  786. * Install udev rules as 99-fuse.rules instead of 60-fuse.rules
  787. * Minor clean up of udev rules
  788. * Add a synchronous DESTROY message to kernel interface. This is
  789. invoked from umount, when the final instance of the filesystem is
  790. released. It is only sent for filesystems mounted with the
  791. 'blkdev' option for security reasons.
  792. * If the DESTROY message is received, call the filesystem's
  793. ->destroy() method. In this case it's not called from session
  794. destruction as it would be otherwise.
  795. 2006-10-01 Miklos Szeredi <miklos@szeredi.hu>
  796. * Released 2.6.0-rc2
  797. 2006-10-01 Miklos Szeredi <miklos@szeredi.hu>
  798. * Add support for FLUSH+RELEASE operation for FreeBSD. Original
  799. patch by Csaba Henk
  800. * Add init script to insert fuse module and mount the control
  801. filesystem. The script is installed as /etc/init.d/fuse and on
  802. debian based systems (where update-rc.d is available) symlinks
  803. from /etc/rc*.d/ are also installed.
  804. * Include '#define FUSE_USE_VERSION=XX' into examples so they
  805. become more self contained.
  806. 2006-09-30 Miklos Szeredi <miklos@szeredi.hu>
  807. * API changes:
  808. * Move lock_owner from a separate argument into fuse_file_info
  809. * Add a flag to fuse_file_info indicating (1) a highlevel lock
  810. operation (unlock all) was initiated by a flush, (2) a lowlevel
  811. release operation should perform a flush as well.
  812. * fusermount: revert modprobe change (2006-08-18) since it
  813. doesn't work reliably with udev
  814. * Add support for block device backed filesystems. This mode is
  815. selected with the 'blkdev' option, which is privileged.
  816. * Add support for the bmap (FIBMAP ioctl) operation on block
  817. device backed filesystems. This allows swapon and lilo to work on
  818. such filesystems.
  819. * kernel changes:
  820. * Drop support for kernels earlier than 2.6.9. Kernel module from
  821. previous (2.5.x) release can be used with library from this
  822. release
  823. * In fuse_dentry_revalidate() use dget_parent() instead of
  824. dereferencing d_parent, since there's no protection against parent
  825. changing and going away
  826. * Protect nlookup from concurrent updates
  827. * In lookup if a directory alias exists but is unused,
  828. then get rid of it, otherwise return -EBUSY.
  829. * In mkdir if a directory alias exists, return success, but leave
  830. dentry negative. In reality this could happen if a remote rename
  831. immediately followed the mkdir.
  832. * Don't BUG in fuse_iget() if multiple retries are needed to get a
  833. good inode. This could happen if several lookups are racing for
  834. the same inode.
  835. 2006-09-29 Miklos Szeredi <miklos@szeredi.hu>
  836. * Fix compilation on 2.6.9. Report from Troy Ayers
  837. 2006-09-27 Miklos Szeredi <miklos@szeredi.hu>
  838. * Fix Oops in fuse_readpages(). Reported by David Shaw
  839. 2006-09-24 Csaba Henk <csaba.henk@creo.hu>
  840. * Add support for nanosec times on FreeBSD
  841. * Fix FreeBSD compatibility issues
  842. 2006-09-23 Miklos Szeredi <miklos@szeredi.hu>
  843. * Fix one more compatibility bug. Thanks to Ricardo Correia
  844. * Fix utimens compilation with uClibc. Patch from Jamie Guinan
  845. 2006-09-22 Miklos Szeredi <miklos@szeredi.hu>
  846. * Fixed several compatibility bugs in low level interface.
  847. Reported by Ricardo Correia
  848. * Add workaround for ARM caching bug
  849. 2006-09-16 Miklos Szeredi <miklos@szeredi.hu>
  850. * Rename new utimes() method to more logical utimens()
  851. 2006-09-14 Miklos Szeredi <miklos@szeredi.hu>
  852. * Fuse tried to unlink already unlinked hidden files. Bug
  853. reported by Milan Svoboda
  854. 2006-09-10 Miklos Szeredi <miklos@szeredi.hu>
  855. * Released 2.6.0-rc1
  856. 2006-09-10 Miklos Szeredi <miklos@szeredi.hu>
  857. * kernel: Fix unlock on close for kernels < 2.6.18
  858. * Add ulockmgr library & server. This can be used for handling
  859. file locking requests either directly from libfuse or over a
  860. network, etc. This first version is not optimized and the number
  861. of file descriptors it uses may get out of hand
  862. 2006-09-07 Miklos Szeredi <miklos@szeredi.hu>
  863. * lib: Add interrupt support to high level library, which may be
  864. enabled with the 'intr' mount option.
  865. * When an operation is interrupted the thread handling that
  866. operation will receive SIGUSR1 (or other signal specified with the
  867. 'intr_signal=N' option). The library installs a no-op signal
  868. handler for this signal, unless there's already a handler
  869. installed.
  870. * The filesystem may query interrupt status (regardless of 'intr')
  871. with the fuse_interrupted() function.
  872. * mount.fuse: initialize $HOME if not set. Report from Sven Goldt
  873. 2006-09-03 Miklos Szeredi <miklos@szeredi.hu>
  874. * lib: Multithreaded loop now allows unlimited number of threads.
  875. This is needed for locking operations which may block
  876. indefinitely. Also the kernel now doesn't limit the number of
  877. outstanding requests so the library shouldn't do so either.
  878. 2006-09-01 Miklos Szeredi <miklos@szeredi.hu>
  879. * Fix recursive lock bug in interrupt handling
  880. * Add utimes() method to highlevel interface, which supports
  881. setting times with nanosecond resolution
  882. 2006-08-18 Miklos Szeredi <miklos@szeredi.hu>
  883. * kernel: fix page leak if fuse_readpages() failed in it's
  884. initialization. Bug found and original patch from Alexander
  885. Zarochentsev
  886. * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
  887. the kernel tree) the statfs method will receive the path within
  888. the filesystem on which the stat(v)fs syscall was called
  889. * fusermount: try to modprobe fuse module if invoked by root and
  890. unable to open device. This is needed with udev, since the device
  891. node will be created only when the module is inserted, hence
  892. module autoloading won't work. Reported by Szakacsits Szabolcs
  893. 2006-07-30 Miklos Szeredi <miklos@szeredi.hu>
  894. * fusermount: if selinux is active, restore the original file's
  895. security context in unmount_rename(). Redhat bugzilla id 188561.
  896. Patch from Yves Perrenoud
  897. * Add POSIX file locking operation to high level library
  898. * Initialize context for unlink of hidden files on umount. Bug
  899. reported by Tim Stoakes
  900. 2006-07-14 Miklos Szeredi <miklos@szeredi.hu>
  901. * Multiple release() calls can race with each other, resulting in
  902. the hidden file being deleted before the last release finishes.
  903. Bug found and patch tested by Mark Huijgen
  904. 2006-07-05 Miklos Szeredi <miklos@szeredi.hu>
  905. * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
  906. this makes sense on systems using udev. Reported by Szakacsits
  907. Szabolcs
  908. 2006-06-29 Miklos Szeredi <miklos@szeredi.hu>
  909. * Released 2.6.0-pre3
  910. 2006-06-29 Miklos Szeredi <miklos@szeredi.hu>
  911. * Support in kernel module for file locking and interruption. The
  912. same functionality is available in official kernels >= 2.6.18
  913. 2006-06-28 Miklos Szeredi <miklos@szeredi.hu>
  914. * Add POSIX file locking support
  915. * Add request interruption
  916. 2006-06-06 Miklos Szeredi <miklos@szeredi.hu>
  917. * Add missing pthread_rwlock_destroy(). Patch from Remy Blank
  918. 2006-06-05 Remy Blank <remy.blank@pobox.com>
  919. * lib: canonicalize mount point in fuse_helper_opt_proc() so that
  920. unmounting succeeds even if mount point was relative.
  921. 2006-06-04 Csaba Henk <csaba.henk@creo.hu>
  922. * lib: fix emergency umount in helper.c when malloc fails.
  923. (The way it was done would end up in a segfault.)
  924. 2006-06-01 Csaba Henk <csaba.henk@creo.hu>
  925. * lib: adjust threading related compiler flags.
  926. Switch to "-pthread" from "-lpthread" as that's the preferred
  927. one on several platforms. Consulted with Terrence Cole and
  928. Miklos Szeredi
  929. 2006-05-08 Miklos Szeredi <miklos@szeredi.hu>
  930. * lib: search fusermount in installation directory (bindir) as
  931. well as in PATH.
  932. 2006-05-03 Miklos Szeredi <miklos@szeredi.hu>
  933. * lib: fix compilation if CLOCK_MONOTONIC is not defined.
  934. Reported by Christian Magnusson
  935. 2006-04-23 Csaba Henk <csaba.henk@creo.hu>
  936. * lib: make FreeBSD mount routine recognize if kernel features
  937. backgrounded init and if it does, run the mount util in foreground
  938. (similarly to Linux)
  939. 2006-04-21 Miklos Szeredi <miklos@szeredi.hu>
  940. * kernel: fix fput deadlock fix, the lockless solution could lead
  941. to "VFS: busy inodes after umount..."
  942. * kernel: fix race between checking and setting file->private_data
  943. for the device. Found by Al Viro
  944. 2006-04-11 Miklos Szeredi <miklos@szeredi.hu>
  945. * kernel: remove request pool, instead allocate requests on
  946. demand. Account the number of background requests, and if they go
  947. over a limit, block the allocation of new requests.
  948. * kernel: fix deadlock if backgrounded request holds the last
  949. reference to the super block
  950. * kernel: don't use fuse_reset_request() during direct I/O
  951. 2006-04-06 Csaba Henk <csaba.henk@creo.hu>
  952. * lib: Let FreeBSD mount option parsing routine recognize "no"
  953. prefixes for FUSE specific options as well
  954. 2006-04-01 Miklos Szeredi <miklos@szeredi.hu>
  955. * lib: Add missing rwlock initialization. Patch by Ryan Bradetich
  956. 2006-03-17 Miklos Szeredi <miklos@szeredi.hu>
  957. * API changes:
  958. * fuse_main(), fuse_setup() and fuse_new() have an additionl
  959. user_data parameter
  960. * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
  961. file descriptor
  962. * fuse_unmount() receives a 'struct fuse_chan' pointer. It
  963. destroys the given channel
  964. * fuse_teardown() no longer has a file descriptor parameter
  965. * new exported functions: fuse_session_remove_chan(),
  966. fuse_get_session(), fuse_daemonize()
  967. * fuse_chan_recv() may now return a new channel which will be used
  968. to send the reply
  969. 2006-03-16 Miklos Szeredi <miklos@szeredi.hu>
  970. * Released 2.6.0-pre2
  971. 2006-03-16 Miklos Szeredi <miklos@szeredi.hu>
  972. * Don't unmount if already unmounted. This fixes a problem seen
  973. in the following situation: Lazy unmount a busy filesystem; Mount
  974. a new one in top; When the first finally unmounts, the second also
  975. unmounts. Reported by Franco Broi
  976. 2006-03-15 Miklos Szeredi <miklos@szeredi.hu>
  977. * lowlevel lib: use indirect function calls instead of a
  978. switch/case construct. Besides increased efficiency it helps
  979. maintainability & readability too. Patch from Florin Malita
  980. 2006-03-13 Miklos Szeredi <miklos@szeredi.hu>
  981. * kernel: replace global spinlock with a per-connection spinlock
  982. 2006-03-10 Miklos Szeredi <miklos@szeredi.hu>
  983. * Fix source compatibility breakage for fuse_unmount(). Report
  984. from Yura Pakhuchiy
  985. 2006-03-02 Miklos Szeredi <miklos@szeredi.hu>
  986. * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
  987. 2006-03-01 Miklos Szeredi <miklos@szeredi.hu>
  988. * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
  989. Jeff Dike
  990. * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
  991. interface to return -errno in case of error.
  992. 2006-03-01 Csaba Henk <csaba.henk@creo.hu>
  993. * libfuse: pass device file descriptor to fuse_unmount(), rewrite
  994. FreeBSD implementation so that it uses libc (sysctl backed) instead
  995. of an embdedded script (kmem backed). Adjust the control flow of
  996. hello_ll so that device doesn't get closed before unmount attempt.
  997. 2006-02-25 Miklos Szeredi <miklos@szeredi.hu>
  998. * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
  999. implement method. This is needed on FreeBSD, and nicer on Linux
  1000. too. Highlevel lib already did this. Reported by Csaba Henk
  1001. * Fix negative entry handling. There was a bug, that negative
  1002. lookups with timeouts (nodeid == 0) returned -EIO.
  1003. 2006-02-23 Miklos Szeredi <miklos@szeredi.hu>
  1004. * Fix race between RELEASE and UNLINK, which might leave
  1005. .fuse_hidden* files around
  1006. 2006-02-21 Miklos Szeredi <miklos@szeredi.hu>
  1007. * fusexmp_fh: implement flush() method and call close() on the
  1008. open file descriptor. This is needed if used on an NFS
  1009. filesystem, which buffers data until file is closed. Franco Broi
  1010. spotted the situation when 'cp -p' failed to set the modification
  1011. time because of this.
  1012. 2006-02-20 Miklos Szeredi <miklos@szeredi.hu>
  1013. * Released 2.6.0-pre1
  1014. 2006-02-19 Miklos Szeredi <miklos@szeredi.hu>
  1015. * libfuse: fix use-after-free bug in interruptred reply_entry().
  1016. Patch from John Muir
  1017. * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
  1018. ID: 352631. Found by Stéphane Rosi
  1019. 2006-02-17 Miklos Szeredi <miklos@szeredi.hu>
  1020. * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
  1021. into a single function fuse_add_direntry(). This cleans up the
  1022. interface and makes it possible to do stacking.
  1023. 2006-02-16 Miklos Szeredi <miklos@szeredi.hu>
  1024. * Fix rare race betweeen abort and release caused by failed iget()
  1025. in fuse_create_open().
  1026. * Add 'ac_attr_timeout' option e.g. for filesystems which do their
  1027. own attribute caching.
  1028. 2006-02-15 Miklos Szeredi <miklos@szeredi.hu>
  1029. * Work around FreeBSD runtime linker "feature" which binds an old
  1030. version of a symbol to internal references if the symbol has more
  1031. than one version. This resulted in infinite recursion in
  1032. fuse_lowlevel_new_compat25().
  1033. 2006-02-10 Csaba Henk <csaba.henk@creo.hu>
  1034. * Refine clock_gettime() querying so that linker options
  1035. shall be set as it's appropriate for the target platform.
  1036. 2006-02-09 Miklos Szeredi <miklos@szeredi.hu>
  1037. * Fix udev rule syntax. Reported by Nix
  1038. 2006-02-08 Miklos Szeredi <miklos@szeredi.hu>
  1039. * In some cases udev rule seems to be ineffective when installed
  1040. as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
  1041. 2006-02-03 Miklos Szeredi <miklos@szeredi.hu>
  1042. * Fix compilation when build directory is different from source
  1043. directory. Reported by Frédéric L. W. Meunier
  1044. 2006-02-02 Miklos Szeredi <miklos@szeredi.hu>
  1045. * Fix even bigger bug introduced in fix for request_end() on
  1046. 2006-01-14. Reported by Gal Rosen
  1047. 2006-01-30 Miklos Szeredi <miklos@szeredi.hu>
  1048. * highlevel-lib: add 'auto_cache' option. This caches file data
  1049. based on modification time and size
  1050. 2006-01-20 Miklos Szeredi <miklos@szeredi.hu>
  1051. * Sanitize storage type and help message in mount_bsd.c. Patch
  1052. from Csaba Henk
  1053. * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
  1054. FUSE_OPT_KEY_DISCARD
  1055. * Add options 'max_readahead', 'sync_read' and 'async_read'
  1056. * Kernel ABI version 7.6:
  1057. * Negotiate the 'max_readahead' value and 'async_read' flags with
  1058. userspace in the INIT method
  1059. * Add connection info to ->init() methods to both lowlevel and
  1060. highlevel API
  1061. * Fall back to synchronous read() behavior if either library or
  1062. userspace filesystem is using the old interface version. This is
  1063. needed so non-updated filesystems won't be confused by the
  1064. different read() behavior
  1065. 2006-01-19 Miklos Szeredi <miklos@szeredi.hu>
  1066. * lib: if "fsname=" option was given, pass it to fusermount
  1067. * fuse_opt: add new fuse_opt_insert_arg() function, which is
  1068. needed by filesystems to implement some argument manipulations
  1069. correctly
  1070. * fuse_opt: fix memory leak in handling "--" option
  1071. 2006-01-18 Miklos Szeredi <miklos@szeredi.hu>
  1072. * kernel: fix detection of case when fuse is not configured into
  1073. the kernel either as module or built-in
  1074. * fuse_opt.h: fix incompatibility with C++ compilers by renaming
  1075. 'template' structure member to 'templ'. Reported by Takashi Iwai
  1076. * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
  1077. * kernel: support version 2.6.16 (i_sem -> i_mutex)
  1078. 2006-01-16 Miklos Szeredi <miklos@szeredi.hu>
  1079. * Added (again) asynchronous readpages support
  1080. * Each connection now shows up under /sys/fs/fuse/connections
  1081. * Connection attributes exported to sysfs: 'waiting' number of
  1082. waiting requests; 'abort' abort the connection
  1083. * Connection may be aborted through either the sysfs interface or
  1084. with 'umount -f mountpoint'
  1085. 2006-01-14 Miklos Szeredi <miklos@szeredi.hu>
  1086. * Released 2.5.0
  1087. 2006-01-14 Miklos Szeredi <miklos@szeredi.hu>
  1088. * kernel: fix a couple of bugs
  1089. * Order of request_end() and fuse_copy_finish() was wrong.
  1090. Posthumous note: Franco Broi managed to exploit this, though it
  1091. seemed quite impossible
  1092. * request_end() used request pointer after decrementing refcount
  1093. * Clearing ->connected or ->mounted connection flags could race
  1094. with setting other bitfields not protected with a lock
  1095. 2006-01-10 Miklos Szeredi <miklos@szeredi.hu>
  1096. * kernel: add necessary compile flags for 2.4.X/x86_64.
  1097. Report from Sean Ziegeler
  1098. 2006-01-09 Miklos Szeredi <miklos@szeredi.hu>
  1099. * Released 2.5.0-pre2
  1100. 2006-01-09 Miklos Szeredi <miklos@szeredi.hu>
  1101. * Applied patch from Csaba Henk, to update mount_bsd to new
  1102. fuse_mount() semantics
  1103. * Ignore auto,noauto,... options in mount.fuse. Reported by Frank
  1104. Steiner and Don Taber
  1105. * fusermount: add 'dirsync' mount option
  1106. 2006-01-07 Miklos Szeredi <miklos@szeredi.hu>
  1107. * Improved help reporting and added version reporting to library
  1108. 2006-01-06 Miklos Szeredi <miklos@szeredi.hu>
  1109. * Change working directory to "/" even if running in the
  1110. foreground. Patch from Jonathan Brandmeyer
  1111. * Changed lots of functions to use 'struct fuse_args' instead of
  1112. separate argc and argv
  1113. * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
  1114. fuse_remove_signal_handlers() functions, so that it's now pretty
  1115. easy to get all the functionality of fuse_main() with a filesystem
  1116. using the lowlevel API.
  1117. 2006-01-02 Miklos Szeredi <miklos@szeredi.hu>
  1118. * mount.fuse: the 'user' option should be ignored. Report and
  1119. solution from Mattd.
  1120. * mount.fuse: export PATH in the right place. Report and patch
  1121. from Hannes Schweizer
  1122. 2005-12-16 Miklos Szeredi <miklos@szeredi.hu>
  1123. * Clean up the option parsing interface slightly, by creating an
  1124. "argument list" structure, that contains the argument vector and
  1125. count
  1126. 2005-12-15 Miklos Szeredi <miklos@szeredi.hu>
  1127. * fusermount: check if /mnt/mtab is a symlink and don't modify it
  1128. in that case
  1129. * kernel: simplify request size limiting. INIT only contains
  1130. maximum write size, maximum path component size remains fixed at
  1131. 1024 bytes, and maximum xattr size depends on read buffer.
  1132. 2005-12-14 Miklos Szeredi <miklos@szeredi.hu>
  1133. * Fix readdir() failure on x86_64, of 32bit programs compiled
  1134. without largefile support. Bug report and help from Anthony
  1135. Kolasny
  1136. * If lookup returns invalid mode, return -EIO instead of creating
  1137. a regular file
  1138. * Add current output argument vector to option processing
  1139. function
  1140. 2005-12-12 Miklos Szeredi <miklos@szeredi.hu>
  1141. * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
  1142. 2005-12-09 Miklos Szeredi <miklos@szeredi.hu>
  1143. * Released 2.5.0-pre1
  1144. 2005-12-09 Miklos Szeredi <miklos@szeredi.hu>
  1145. * libfuse: added option parsing interface, defined in
  1146. <fuse_opt.h>.
  1147. 2005-12-07 Miklos Szeredi <miklos@szeredi.hu>
  1148. * Return EIO for file operations (read, write, fsync, flush) on
  1149. open files whose inode has become "bad". Inodes will be marked
  1150. "bad" if their type changes. Bug report by Csaba Henk
  1151. 2005-12-06 Miklos Szeredi <miklos@szeredi.hu>
  1152. * Use bigger request buffer size. write() did not work on archs
  1153. with > 4k page size, Bug report by Mark Haney
  1154. * ABI version 7.5:
  1155. * Extend INIT reply with data size limits
  1156. 2005-12-02 Miklos Szeredi <miklos@szeredi.hu>
  1157. * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug
  1158. reported by Vincenzo Ciancia
  1159. * Handle exit-by-umount in fuse_read_cmd()
  1160. 2005-11-29 Miklos Szeredi <miklos@szeredi.hu>
  1161. * Check if '-msoft-float' option is supported by compiler when
  1162. configuring for a 2.4.x kernel. Bug report by Mark Haney
  1163. * In multithreaded loop send a TERM signal to the main thread if
  1164. one of the other threads exit. Needed on FreeBSD for a clean exit
  1165. on umount. Should not cause any harm on Linux either
  1166. 2005-11-28 Miklos Szeredi <miklos@szeredi.hu>
  1167. * Fix bug in 32-bit file handle compatibility
  1168. 2005-11-27 Miklos Szeredi <miklos@szeredi.hu>
  1169. * Block TERM, INT, HUP and QUIT signals in all but the main
  1170. thread. According to POSIX it's not specified which thread will
  1171. receive these signals.
  1172. * Kernel changes:
  1173. * Check for directory aliasing on mkdir, not just on lookup
  1174. * Check for special node ID values in create+open operation
  1175. * Sync with -mm: readv, writev, aio_read and aio_write methods
  1176. added to file operations
  1177. * Cleanups: lookup code, page offset calculation
  1178. * ABI stepped to 7.4, changes:
  1179. * frsize member added to fuse_kstatfs structure
  1180. * added support for negative entry caching: on lowlevel API if
  1181. fuse_entry_param::ino is set to zero in reply to a lookup request,
  1182. the kernel will cache the dentry for the specified amount of time.
  1183. * libfuse: added 'negative_timeout' option: specifies how much
  1184. negative entries should be cached. Default is zero, to be
  1185. compatible with prior versions
  1186. 2005-11-22 Miklos Szeredi <miklos@szeredi.hu>
  1187. * Add detection of mainline FUSE code in running kernel
  1188. 2005-11-21 Miklos Szeredi <miklos@szeredi.hu>
  1189. * Don't use async cancelation in multithreaded loop. This makes
  1190. it more portable to systems where read() is not async cancel safe.
  1191. Report from Andriy Gapon
  1192. 2005-11-20 Miklos Szeredi <miklos@szeredi.hu>
  1193. * Warn if API version 11 compatibility is requested
  1194. 2005-11-17 Miklos Szeredi <miklos@szeredi.hu>
  1195. * More FreeBSD merge
  1196. * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
  1197. them, because it corrupts /etc/mtab. Found by Thomas Biege
  1198. CVE-2005-3531
  1199. * libfuse: don't use system() to invoke 'fusermount -u ...'
  1200. because it breaks mountpoints with spaces in them into multiple
  1201. arguments
  1202. 2005-11-16 Miklos Szeredi <miklos@szeredi.hu>
  1203. * Merge library part of FreeBSD port. Patch by Csaba Henk
  1204. 2005-11-11 Miklos Szeredi <miklos@szeredi.hu>
  1205. * Use 64bit type for file handle, so the full range supported by
  1206. the kernel interface is available to applications
  1207. 2005-11-10 Miklos Szeredi <miklos@szeredi.hu>
  1208. * Moved mountpoint argument checking from fuse_parse_cmdline() to
  1209. fuse_mount() in preparation to FreeBSD merge.
  1210. 2005-11-08 Miklos Szeredi <miklos@szeredi.hu>
  1211. * Remove unneeded close() from fuse_teardown(). Spotted by Csaba
  1212. Henk.
  1213. 2005-11-07 Miklos Szeredi <miklos@szeredi.hu>
  1214. * Make the statfs change backwards compatible.
  1215. 2005-11-06 Miklos Szeredi <miklos@szeredi.hu>
  1216. * Change ->statfs() method to use 'struct statvfs' instead of
  1217. 'struct statfs'. This makes the API more portable since statvfs()
  1218. is defined by POSIX.
  1219. 2005-10-28 Miklos Szeredi <miklos@szeredi.hu>
  1220. * Add fgetattr() method, which currently will only be called after
  1221. a successful call to a create() method.
  1222. 2005-10-26 Miklos Szeredi <miklos@szeredi.hu>
  1223. * Change kernel ABI version to 7.3
  1224. * Add ACCESS operation. This is called from the access() system
  1225. call if 'default_permissions' mount option is not given, and is
  1226. not called on kernels 2.4.*
  1227. * Add atomic CREATE+OPEN operation. This will only work with
  1228. 2.6.15 (presumably) or later Linux kernels.
  1229. * Add ftruncate() method. This will only work with 2.6.15
  1230. (presumably) or later Linux kernels.
  1231. * Fix kernel module compile if kernel source and build directories
  1232. differ. Report and initial patch by John Eastman
  1233. 2005-10-18 Miklos Szeredi <miklos@szeredi.hu>
  1234. * lib: optimize buffer reallocation in fill_dir.
  1235. 2005-10-17 Miklos Szeredi <miklos@szeredi.hu>
  1236. * Released 2.4.1
  1237. 2005-10-14 Miklos Szeredi <miklos@szeredi.hu>
  1238. * libfuse: add debug for write result (by Shaun Jackman) and
  1239. warnings for too large read/write result
  1240. 2005-10-11 Miklos Szeredi <miklos@szeredi.hu>
  1241. * Spelling fixes, thanks to Ioannis Barkas
  1242. 2005-10-10 Miklos Szeredi <miklos@szeredi.hu>
  1243. * fuse_common.h: use extern "C". Thanks to Valient Gough for the
  1244. patch
  1245. 2005-10-07 Miklos Szeredi <miklos@szeredi.hu>
  1246. * highlevel-lib: init() and destroy() methods didn't have an
  1247. initialized fuse_context. Bug reported by Tim Stoakes
  1248. 2005-10-04 Miklos Szeredi <miklos@szeredi.hu>
  1249. * Released 2.4.0
  1250. 2005-10-03 Miklos Szeredi <miklos@szeredi.hu>
  1251. * Add documentation to fuse_lowlevel.h
  1252. * API cleanups:
  1253. * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
  1254. * Move fuse_mount() and fuse_unmount() to fuse_common.h
  1255. * Change the return type of fuse_reply_none() from int to void.
  1256. 2005-09-30 Miklos Szeredi <miklos@szeredi.hu>
  1257. * kernel: NFS exporting leaked dentries. Bug found and fixed by
  1258. Akshat Aranya.
  1259. 2005-09-29 Miklos Szeredi <miklos@szeredi.hu>
  1260. * fusermount: fix error message, when unable to open /dev/fuse.
  1261. Report by Balázs Pozsár
  1262. 2005-09-28 Miklos Szeredi <miklos@szeredi.hu>
  1263. * UClibc fixes from Christian Magnusson
  1264. 2005-09-27 Miklos Szeredi <miklos@szeredi.hu>
  1265. * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman.
  1266. 2005-09-26 Miklos Szeredi <miklos@szeredi.hu>
  1267. * Released 2.4.0-rc1
  1268. 2005-09-26 Miklos Szeredi <miklos@szeredi.hu>
  1269. * fusermount: allow user umount in the case when /etc/mtab is a
  1270. symlink to /proc/mounts. Reported by Balázs Pozsár.
  1271. 2005-09-23 Miklos Szeredi <miklos@szeredi.hu>
  1272. * Check for special node ID values in lookup and creation
  1273. 2005-09-22 Miklos Szeredi <miklos@szeredi.hu>
  1274. * Slight optimization in returning EINVAL error in case of an open
  1275. with O_DIRECT flag.
  1276. 2005-09-20 Miklos Szeredi <miklos@szeredi.hu>
  1277. * Remove '--enable-auto-modprobe' configure flag. Module
  1278. auto-loading is now handled by the kernel.
  1279. 2005-09-15 Miklos Szeredi <miklos@szeredi.hu>
  1280. * Install UDEV rule file, so /dev/fuse is created with mode 0666.
  1281. Help from Jens M. Noedler.
  1282. 2005-09-14 Miklos Szeredi <miklos@szeredi.hu>
  1283. * Add memory cleanup on thread exit
  1284. 2005-09-13 Miklos Szeredi <miklos@szeredi.hu>
  1285. * Set umask to zero in fusexmp and fusexmp_fh, so that
  1286. files/directories are created with the requested mode.
  1287. 2005-09-12 Miklos Szeredi <miklos@szeredi.hu>
  1288. * Don't ignore read error in multithreaded loop
  1289. 2005-09-08 Miklos Szeredi <miklos@szeredi.hu>
  1290. * Released 2.4.0-pre2
  1291. 2005-09-08 Miklos Szeredi <miklos@szeredi.hu>
  1292. * Revert lock and access operations. Postpone these until 2.5.
  1293. 2005-09-02 Miklos Szeredi <miklos@szeredi.hu>
  1294. * Fix compile warning on 2.6.13 and later
  1295. * Fix compilation on old kernels
  1296. 2005-08-19 Miklos Szeredi <miklos@szeredi.hu>
  1297. * lib: always refresh directory contents after rewinddir() to
  1298. conform to SUS. Bug found by John Muir.
  1299. 2005-08-15 Miklos Szeredi <miklos@szeredi.hu>
  1300. * Released 2.4.0-pre1
  1301. 2005-08-14 Miklos Szeredi <miklos@szeredi.hu>
  1302. * lib: cleaned up (or messed up, depending on your POV) the low
  1303. level library API. Hopefully this is close to the final form.
  1304. 2005-08-05 Miklos Szeredi <miklos@szeredi.hu>
  1305. * fusermount: don't allow empty mountpoint argument, which defeats
  1306. automatic umounting in fuse_main(). Bugreport by Václav Jůza
  1307. 2005-08-03 Miklos Szeredi <miklos@szeredi.hu>
  1308. * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
  1309. option is used (Paul Alfille).
  1310. 2005-08-02 Miklos Szeredi <miklos@szeredi.hu>
  1311. * highlevel-lib: added mount options "attr_timeout" and
  1312. "entry_timeout". These options control the length of time file
  1313. attributes and entries (names) are cached. Both default to 1.0
  1314. second.
  1315. * kernel: correctly handle zero timeout for attributes and entries
  1316. 2005-08-01 Miklos Szeredi <miklos@szeredi.hu>
  1317. * Added missing symbols to versionscript (Joshua J. Berry)
  1318. * kernel: implement two flags, open can set: 'direct_io' and
  1319. 'keep_cache'. These correspond exactly to mount options
  1320. 'direct_io' and 'kernel_cache', but allow a per-open setting.
  1321. * Move 'direct_io' and 'kernel_cache' mount option handling to
  1322. userspace. For both mount options, if the option is given, then
  1323. the respective open flag is set, otherwise the open flag is left
  1324. unmodified (so the filesystem can set it).
  1325. * lib (highlevel): make open method optional
  1326. 2005-07-28 Miklos Szeredi <miklos@szeredi.hu>
  1327. * kernel: invalidate attributes for read/readdir/readlink
  1328. operations
  1329. * kernel: detect newer UML kernels
  1330. 2005-07-26 Miklos Szeredi <miklos@szeredi.hu>
  1331. * Make the installation path of fuse.ko and mount.fuse
  1332. configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
  1333. environment variables. Requirement and help from Csaba Henk.
  1334. 2005-07-22 Miklos Szeredi <miklos@szeredi.hu>
  1335. * Fix bug, that causes filesystem requests to hang when unique
  1336. request counter becomes negative. This happens after
  1337. 2,147,483,648 operations, so most people won't care. Thanks to
  1338. Franco Broi for the report and testing.
  1339. 2005-07-21 Miklos Szeredi <miklos@szeredi.hu>
  1340. * Don't change mtime/ctime/atime to local time on read/write.
  1341. Bug reported by Ben Grimm
  1342. * Install fuse_common.h and fuse_lowlevel.h. Report by Christian
  1343. Magnusson
  1344. * fusermount: use getopt_long() for option parsing. It allows the
  1345. use of '--' to stop argument scanning, so fusermount can now
  1346. operate on directories whose names begin with a '-'. Patch by
  1347. Adam Connell
  1348. 2005-07-15 Miklos Szeredi <miklos@szeredi.hu>
  1349. * fusermount: add '-v', '--version' and '--help' options
  1350. * add inode based API
  1351. 2005-07-12 Miklos Szeredi <miklos@szeredi.hu>
  1352. * lib: don't block signals in worker threads. Problem noticed by
  1353. Usarin Heininga
  1354. 2005-07-07 Miklos Szeredi <miklos@szeredi.hu>
  1355. * lib: don't allow both 'allow_other' and 'allow_root' options to
  1356. be given
  1357. 2005-07-06 Miklos Szeredi <miklos@szeredi.hu>
  1358. * fusermount: check if mountpoint is empty (only '.' and '..' for
  1359. directories, and size = 0 for regular files). If "nonempty"
  1360. option is given, omit this check. This is useful, so users don't
  1361. accidentally hide data (e.g. from backup programs). Thanks to
  1362. Frank van Maarseveen for pointing this out.
  1363. * kernel: check if mandatory mount options ('fd', 'rootmode',
  1364. 'user_id', 'group_id') are all given
  1365. * lib: simplify 'readdir_ino' handling
  1366. * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
  1367. 2005-07-03 Miklos Szeredi <miklos@szeredi.hu>
  1368. * kernel: clean up 'direct_io' code
  1369. 2005-06-28 Miklos Szeredi <miklos@szeredi.hu>
  1370. * Add 'mount.fuse' written by Petr Klima
  1371. * '/dev/fuse' is created by 'make install' if does not yet exist
  1372. 2005-06-20 Miklos Szeredi <miklos@szeredi.hu>
  1373. * Fix UCLIBC compile error. Patch by Christian Magnusson
  1374. 2005-06-08 Miklos Szeredi <miklos@szeredi.hu>
  1375. * Enable the auto-loading of the module via access to the
  1376. corresponding device file. Patch by Takashi Iwai.
  1377. * Allow mounting a regular file (over a regular file) for
  1378. unprivleged users.
  1379. * Do not create temporary device file. Require "/dev/fuse" to
  1380. exist, and be readable/writable by the mounting user.
  1381. 2005-06-02 Miklos Szeredi <miklos@szeredi.hu>
  1382. * Released 2.3.0
  1383. 2005-06-02 Miklos Szeredi <miklos@szeredi.hu>
  1384. * Fix serious information leak: if the filesystem returns a short
  1385. byte count to a read request, and there are non-zero number of
  1386. pages which are not filled at all, these pages will not be zeroed.
  1387. Hence the user can read out previous memory contents. Found by
  1388. Sven Tantau.
  1389. 2005-05-27 Miklos Szeredi <miklos@szeredi.hu>
  1390. * Add "readdir_ino" mount option, which tries to fill in the d_ino
  1391. field in struct dirent. This mount option is ignored if "use_ino"
  1392. is used. It helps some programs (e.g. 'pwd' used over NFS from a
  1393. non-Linux OS). Patch by David Shaw.
  1394. 2005-05-12 Miklos Szeredi <miklos@szeredi.hu>
  1395. * Released 2.3-rc1
  1396. 2005-05-12 Miklos Szeredi <miklos@szeredi.hu>
  1397. * File save in krusader and other editors doesn't work with sshfs,
  1398. because open() is interrupted by a periodic signal, and open()
  1399. restarts forever, without any progress. This could just be fixed
  1400. in open(), but the problem is more generic: if signals are
  1401. received more often than the filesystem can get the request to
  1402. userspace, it will never finish. This is probably only a
  1403. theoretical problem, nevertheless I'm removing the possibility to
  1404. interrupt requests with anything other than SIGKILL, even before
  1405. being sent to userspace. Bugreport by Eduard Czimbalmos.
  1406. 2005-05-09 Miklos Szeredi <miklos@szeredi.hu>
  1407. * libfuse: add "tree_lock" rwlock, that is locked for write in
  1408. rename, unlink and rmdir, and locked for read in all other
  1409. operations. This should fix the rename/release race reported by
  1410. Valient Gough and others. The solution is very coarse, a finer
  1411. grained locking scheme could be implemented, but it would be much
  1412. more complex. Let's see whether this is good enough.
  1413. 2005-05-09 Miklos Szeredi <miklos@szeredi.hu>
  1414. * Released 2.3-pre7
  1415. 2005-05-08 Miklos Szeredi <miklos@szeredi.hu>
  1416. * Better fix for out of order FORGET messages. Now the
  1417. LOOKUP/FORGET messages are balanced exactly (one FORGET can
  1418. balance many lookups), so the order no longer matters. This
  1419. changes the kernel ABI slightly, but the library remains backward
  1420. compatible.
  1421. 2005-05-06 Miklos Szeredi <miklos@szeredi.hu>
  1422. * Fix abort for out of order FORGET messages. Again. Spotted by
  1423. Franco Broi again. Sorry :)
  1424. 2005-04-29 Miklos Szeredi <miklos@szeredi.hu>
  1425. * Released 2.3-pre6
  1426. 2005-04-29 Miklos Szeredi <miklos@szeredi.hu>
  1427. * Make fusermount work with fuse kernel modules not yet supporting
  1428. the "group_id" option (added for the purpose of stricter
  1429. permission checking).
  1430. 2005-04-28 Miklos Szeredi <miklos@szeredi.hu>
  1431. * Check for hard-linked directories in lookup. This could cause
  1432. problems in the VFS, which assumes that such objects never exist.
  1433. * Make checking of permission for other users more strict. Now
  1434. the same privilege is required for the mount owner as for ptrace
  1435. on the process performing the filesystem operation.
  1436. 2005-04-23 Miklos Szeredi <miklos@szeredi.hu>
  1437. * Released 2.3-pre5
  1438. 2005-04-22 Miklos Szeredi <miklos@szeredi.hu>
  1439. * Add -msoft-float to kernel module compile flags for 2.4.X. This
  1440. is needed on certain architectures. Report from Chris Kirby
  1441. * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
  1442. Reported by David Shaw
  1443. * Remove "allow_root" option from kernel module, and implement
  1444. it's functionality in the library
  1445. * Fix Oops caused by premature release of fuse_conn. Clean up
  1446. related code, to be more readable
  1447. * Sendfile should not use page cache if "direct_io" mount option
  1448. is given
  1449. 2005-04-08 Miklos Szeredi <miklos@szeredi.hu>
  1450. * Fix Oops in case of nfs export. Spotted by David Shaw
  1451. * Fix another Oops in case of write over nfs with direct_io turned
  1452. on. Again spotted by David Shaw
  1453. 2005-04-07 Miklos Szeredi <miklos@szeredi.hu>
  1454. * Released 2.3-pre4
  1455. 2005-04-07 Miklos Szeredi <miklos@szeredi.hu>
  1456. * lib: finalized new readdir() interface, which now supersedes the
  1457. getdir() method.
  1458. 2005-04-03 Miklos Szeredi <miklos@szeredi.hu>
  1459. * Released 2.3-pre3
  1460. 2005-04-03 Miklos Szeredi <miklos@szeredi.hu>
  1461. * Implement backward compatibility with version 5 kernel ABI
  1462. 2005-04-01 Miklos Szeredi <miklos@szeredi.hu>
  1463. * Released 2.3-pre2
  1464. 2005-04-01 Miklos Szeredi <miklos@szeredi.hu>
  1465. * kernel: fix dirent offset handling
  1466. * lib: add readdir and releasedir methods
  1467. * lib: use fh field of fuse_file_info in opendir, readdir,
  1468. releasedir and fsyncdir methods
  1469. * lib: check kernel API version and bail out of it's old. This
  1470. will be properly fixed in the next release
  1471. 2005-03-31 Miklos Szeredi <miklos@szeredi.hu>
  1472. * Released 2.3-pre1
  1473. 2005-03-31 Miklos Szeredi <miklos@szeredi.hu>
  1474. * kernel API: add padding to structures, so 64bit and 32bit
  1475. compiler will return the same size
  1476. * kernel API: add offset field to fuse_dirent. This will allow
  1477. more sophisticated readdir interface for userspace
  1478. * kernel API: change major number to 6
  1479. * kernel: fix warnings on 64bit archs
  1480. * kernel: in case of API version mismatch, return ECONNREFUSED
  1481. 2005-03-24 Miklos Szeredi <miklos@szeredi.hu>
  1482. * kernel: trivial cleanups
  1483. 2005-03-21 Miklos Szeredi <miklos@szeredi.hu>
  1484. * Add fsyncdir() operation
  1485. 2005-03-19 Miklos Szeredi <miklos@szeredi.hu>
  1486. * kernel: add locking to background list (fixes previous fix)
  1487. 2005-03-18 Miklos Szeredi <miklos@szeredi.hu>
  1488. * kernel: fix bug which could cause leave busy inodes after
  1489. unmount, and Oops.
  1490. 2005-03-08 Miklos Szeredi <miklos@szeredi.hu>
  1491. * examples: add -lpthread to link flags to work around valgrind
  1492. quirk
  1493. * lib: don't exit threads, so cancelation doesn't cause segfault
  1494. 2005-03-04 Miklos Szeredi <miklos@szeredi.hu>
  1495. * kernel: fix nasty bug which could cause an Oops under certain
  1496. situations. Found by Magnus Johansson
  1497. 2005-02-28 Miklos Szeredi <miklos@szeredi.hu>
  1498. * libfuse: added opendir() method. This can be used in case
  1499. permission checking in getdir() is too late. Thanks to Usarin
  1500. Heininga for pointing out this deficiency
  1501. * libfuse: added init() and destroy() methods to fuse_operations
  1502. * kernel: llseek() method for files and directories made explicit
  1503. * kernel: fixed inode leak in NFS export in case of nodeid
  1504. wrapping
  1505. 2005-02-15 Miklos Szeredi <miklos@szeredi.hu>
  1506. * libfuse: clean up some unitialized memory found with valgrind
  1507. * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an
  1508. explicitly linked libpthread for applications
  1509. 2005-02-10 Miklos Szeredi <miklos@szeredi.hu>
  1510. * fusermount: set umask, otherwise /etc/mtab will have
  1511. unpredictable permission. Spotted by Jindrich Kolorenc
  1512. * fusermount: set owner and group of /etc/mtab to original values
  1513. on unmount
  1514. * libfuse: add 'use_ino' option to help. Patch by Valient Gough
  1515. 2005-02-07 Miklos Szeredi <miklos@szeredi.hu>
  1516. * Cleaned up directory reading (temporary file is not used)
  1517. 2005-02-02 Miklos Szeredi <miklos@szeredi.hu>
  1518. * Released 2.2
  1519. 2005-02-02 Miklos Szeredi <miklos@szeredi.hu>
  1520. * Fix possible race when operation is interrupted
  1521. 2005-01-28 Miklos Szeredi <miklos@szeredi.hu>
  1522. * Fix compilation on 2.6.7
  1523. 2005-01-26 Miklos Szeredi <miklos@szeredi.hu>
  1524. * Released 2.2-pre6
  1525. 2005-01-26 Miklos Szeredi <miklos@szeredi.hu>
  1526. * Fix bug in link() operation which caused the wrong path to be
  1527. passed as the first argument. Found by Anton Altaparmakov
  1528. 2005-01-21 Miklos Szeredi <miklos@szeredi.hu>
  1529. * LIB: fix double reply in readdir operation
  1530. * fusermount: fix uid checking bug. Patch by Adam Connell
  1531. * KERNEL: fix compile on various RedHat patched 2.4 kernels.
  1532. Patch by Keshava Gowda
  1533. 2005-01-20 Miklos Szeredi <miklos@szeredi.hu>
  1534. * KERNEL: provide correct llseek semantics for fuse device (fixes
  1535. a bug on Progeny 2.4.20 kernel). Reported by Valient Gough
  1536. 2005-01-20 Miklos Szeredi <miklos@szeredi.hu>
  1537. * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
  1538. 2005-01-18 Miklos Szeredi <miklos@szeredi.hu>
  1539. * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
  1540. and RELEASEDIR. This ends the ugly hack of passing a file
  1541. descriptor to the kernel, and actually makes the code simpler.
  1542. 2005-01-17 Miklos Szeredi <miklos@szeredi.hu>
  1543. * Released 2.2-pre4
  1544. 2005-01-17 Miklos Szeredi <miklos@szeredi.hu>
  1545. * fusermount: remove capability setting, which was the cause of
  1546. problems for some users. It seems that FS related capabilities
  1547. are removed by setfsuid(), so this isn't even needed.
  1548. 2005-01-15 Miklos Szeredi <miklos@szeredi.hu>
  1549. * fix compilation on 2.4 kernels (reported by Valient Gough)
  1550. * fix failure to unmount bug (found by David Shaw)
  1551. * fusermount: improve parsing of /etc/fuse.conf
  1552. 2005-01-13 Miklos Szeredi <miklos@szeredi.hu>
  1553. * Remove 'mount_max' and 'user_allow_other' module options. These
  1554. are now checked by fusermount, and can be set in /etc/fuse.conf
  1555. * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
  1556. 2005-01-11 Miklos Szeredi <miklos@szeredi.hu>
  1557. * KERNEL: fix possible inode allocation problem, where
  1558. sizeof(struct inode) is not aligned (found by Mike Waychison)
  1559. * KERNEL: use new follow_link/put_link methods
  1560. * KERNEL: cosmetic fixes
  1561. 2005-01-10 Miklos Szeredi <miklos@szeredi.hu>
  1562. * Released 2.2-pre3
  1563. 2005-01-10 Miklos Szeredi <miklos@szeredi.hu>
  1564. * Add missing code that was accidently left out
  1565. 2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
  1566. * Released 2.2-pre2
  1567. 2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
  1568. * Change "uid" mount option to "user_id" to avoid confusion with a
  1569. mount option "uid" commonly used by many filesystems
  1570. 2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
  1571. * Released 2.2-pre1
  1572. 2005-01-09 Miklos Szeredi <miklos@szeredi.hu>
  1573. * If FUSE is configured in the kernel, don't build it by default
  1574. 2005-01-07 Miklos Szeredi <miklos@szeredi.hu>
  1575. * Compile fix by Christian Magnusson
  1576. 2005-01-05 Miklos Szeredi <miklos@szeredi.hu>
  1577. * Fix compilation for 2.6.{0-5} kernels
  1578. 2005-01-04 Miklos Szeredi <miklos@szeredi.hu>
  1579. * KERNEL: if request is interrupted, still keep reference to used
  1580. inode(s) and file, so that FORGET and RELEASE are not sent until
  1581. userspace finishes the request.
  1582. * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
  1583. request with the same information, which is more flexible,
  1584. simpler, works on embedded systems.
  1585. 2004-12-16 Miklos Szeredi <miklos@szeredi.hu>
  1586. * KERNEL ABI: update interface to make it independent of type
  1587. sizes. This will help on 64 bit architectures which can run
  1588. legacy 32 bit applications.
  1589. * KERNEL ABI: add "len" field to request headers. This will allow
  1590. sending/receiving requests in multiple chunks.
  1591. * KERNEL: handle file type change more intelligently
  1592. * LIB: "-o debug" option should disable backgrounding (fix by
  1593. Fabien Reygrobellet)
  1594. 2004-12-13 Miklos Szeredi <miklos@szeredi.hu>
  1595. * KERNEL: invalidate dentry/attributes if interrupted request
  1596. could leave filesystem in an unknown state.
  1597. 2004-12-12 Miklos Szeredi <miklos@szeredi.hu>
  1598. * KERNEL: lots of cleanups related to avoiding possible deadlocks.
  1599. These will cause some regressions, but stability is considered
  1600. more important. If any of these features turns out to be
  1601. important, it can be readded with the deadlock problems addressed.
  1602. * Make all requests interruptible (only with SIGKILL currently).
  1603. This can be used to break any deadlock produced by the userspace
  1604. filesystem accessing it's own exported files. The RELEASE request
  1605. is special, because if it's interrupted before sending it to
  1606. userspace it is still sent, but the reply is not awaited.
  1607. * If request is interrupted before being sent to userspace, and if
  1608. it hasn't yet got any side effects, it is always restarted,
  1609. regardless of the SA_RESTART flag. This makes these interruptions
  1610. transparent to the process.
  1611. * Remove shared-writable mmap support, which was prone to an
  1612. out-of-memory deadlock situation
  1613. * Remove INVALIDATE userspace initiated request
  1614. * Make readpages() synchronous. Asynchronous requests are
  1615. deadlock prone, since they cannot be interrupted.
  1616. * Add readv/writev support to fuse device operations
  1617. * Remove some printks, which userspace FS can use for a DoS
  1618. against syslog
  1619. * Remove 'large_read' mount option from 2.6 in kernel, check it in
  1620. fusermount instead
  1621. * LIB: improve compatibility with a fuse.h header installed in
  1622. ${prefix}/include which in turn includes the real header.
  1623. * LIB: improve compatibility by defining fuse_main() (which is now
  1624. not used), so old configure scripts find it.
  1625. 2004-12-10 Miklos Szeredi <miklos@szeredi.hu>
  1626. * When mounting on a subdirectory of / don't duplicate slashes at
  1627. the beggining of path (spotted by David Shaw)
  1628. 2004-12-09 Miklos Szeredi <miklos@szeredi.hu>
  1629. * Fix bug causing garbage in mount options (spotted by David Shaw)
  1630. 2004-12-07 Miklos Szeredi <miklos@szeredi.hu>
  1631. * Add 'writepage' flag to 'fuse_file_info'.
  1632. * More comments in fuse.h
  1633. * Get rid of double underscores
  1634. 2004-12-04 Miklos Szeredi <miklos@szeredi.hu>
  1635. * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
  1636. * helper.c: add -ho option, which only displays the options not
  1637. the usage header. This can be used by filesystems which have
  1638. their own options.
  1639. 2004-12-03 Miklos Szeredi <miklos@szeredi.hu>
  1640. * Add source compatibility to 2.1 and 1.1 APIs. To select betwen
  1641. versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
  1642. including the fuse header
  1643. * Add binary compatibility to 2.1 version of library with symbol
  1644. versioning
  1645. 2004-12-03 Miklos Szeredi <miklos@szeredi.hu>
  1646. * Released 2.1
  1647. 2004-12-01 Miklos Szeredi <miklos@szeredi.hu>
  1648. * kernel: clean up writing functions
  1649. * kernel: no allocation on write in direct_io mode
  1650. * move linux/fuse.h to fuse_kernel.h
  1651. 2004-11-30 Miklos Szeredi <miklos@szeredi.hu>
  1652. * kernel: clean up reading functions
  1653. 2004-11-29 Miklos Szeredi <miklos@szeredi.hu>
  1654. * kernel: make readpage() uninterruptible
  1655. * kernel: check readonly filesystem flag in fuse_permission
  1656. * lib: don't die if version file not found and new style device
  1657. exists
  1658. * lib: add '-r' option, which is short for '-o ro'
  1659. * fusermount: simplify device opening
  1660. * kernel: when direct_io is turend on, copy data directly to
  1661. destination without itermediate buffer. More efficient and safer,
  1662. since no allocation is done.
  1663. * fusermount: fix warning if fuse module is not loaded
  1664. * kernel: use /dev/fuse on 2.4 too
  1665. 2004-11-26 Miklos Szeredi <miklos@szeredi.hu>
  1666. * libfuse API change: open, read, write, flush, fsync and release
  1667. are passed a 'struct fuse_file_info' pointer containing the open
  1668. flags (open and release), and the file handle. Verion changed to
  1669. 3.0.
  1670. 2004-11-23 Miklos Szeredi <miklos@szeredi.hu>
  1671. * More cleanups in the kernel
  1672. * The 10,229 charater device number has been assigned for FUSE
  1673. * Version file checking fix (reported by Christian Magnusson)
  1674. * fusermount: opening the fuse device now doesn't need /sys.
  1675. * Optimize reading by controlling the maximum readahead based on
  1676. the 'max_read' mount option
  1677. * fixes for UCLIBC (Christian Magnusson)
  1678. 2004-11-19 Miklos Szeredi <miklos@szeredi.hu>
  1679. * Cleaned up kernel in preparation for merge into mainline:
  1680. * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
  1681. * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
  1682. * __user annotations for sparse
  1683. * allocate individual pages instead of kmalloc in fuse_readdir,
  1684. fuse_read and fuse_write.
  1685. * Fix NFS export in case "use_ino" mount option is given
  1686. * Make libfuse and fusermount compatible with future versions
  1687. * fusermount: properly add mount options to /etc/mtab
  1688. 2004-11-15 Miklos Szeredi <miklos@szeredi.hu>
  1689. * fusermount: do not resolve last component of mountpoint on if it
  1690. is '.' or '..'. This new path resolvation is now done on mount as
  1691. well as unmount. This enables relative paths to work on unmount.
  1692. * fusermount: parse common mount options like "ro", "rw", etc...
  1693. * Allow module params to be changed through sysfs
  1694. 2004-11-14 Miklos Szeredi <miklos@szeredi.hu>
  1695. * Released 2.1-pre1
  1696. 2004-11-14 Miklos Szeredi <miklos@szeredi.hu>
  1697. * Fix bug in fuse_readpages() causing Oops in certain situations.
  1698. Bug found by Vincenzo Ciancia.
  1699. * Fix compilation with kernels versions > 2.6.9.
  1700. 2004-11-11 Miklos Szeredi <miklos@szeredi.hu>
  1701. * Check kernel interface version in fusermount to prevent
  1702. strangeness in case of mismatch.
  1703. * No need to allocate fuse_conn until actual mount happens
  1704. * Fix potential race between umount and fuse_invalidate
  1705. * Check superblock of proc file in addition to inode number
  1706. * Fix race between request_send_noreply() and fuse_dev_release()
  1707. 2004-11-10 Miklos Szeredi <miklos@szeredi.hu>
  1708. * Separate configure for the kernel directory
  1709. * Don't allow write to return more than 'count'
  1710. * Extend kernel interface for future use
  1711. 2004-11-09 Miklos Szeredi <miklos@szeredi.hu>
  1712. * Fix 'makeconf.sh' to use autoreconf if available
  1713. 2004-11-08 Miklos Szeredi <miklos@szeredi.hu>
  1714. * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
  1715. compatibility with earlier versions. To compile earier versions
  1716. just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
  1717. Do not use the "use_ino" mount flag with filesystems compiled with
  1718. FUSE_DIRFIL_COMPAT.
  1719. * Add pkg-config support. To compile a FUSE based filesystem you
  1720. can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
  1721. or similar. Note, that the PKG_CONFIG_PATH environment variable
  1722. usually needs to be set to "/usr/local/lib/pkgconfig".
  1723. * fuse.h is now installed in ${prefix}/include/fuse/
  1724. 2004-11-02 Miklos Szeredi <miklos@szeredi.hu>
  1725. * Added "use_ino" mount option. This enables the filesystems to
  1726. set the st_ino field on files
  1727. 2004-11-01 Miklos Szeredi <miklos@szeredi.hu>
  1728. * Fix compile problems with ancient (<=2.4.18) kernels (reported
  1729. by Jeremy Smith)
  1730. * Add "allow_root" mount option. Patch by Yaroslav Rastrigin
  1731. * Clear the 'exited' flag when mail loop is finished
  1732. 2004-10-28 Miklos Szeredi <miklos@szeredi.hu>
  1733. * Make xattr functions work under 2.6 (bug found by Vincenzo
  1734. Ciancia)
  1735. 2004-10-26 Miklos Szeredi <miklos@szeredi.hu>
  1736. * Reset request in fuse_flush() (bugreport by David Shaw)
  1737. 2004-10-21 Miklos Szeredi <miklos@szeredi.hu>
  1738. * fuse_main() now does not exit on error, rather it returns an
  1739. error code
  1740. * Exported __fuse_setup() and __fuse_teardown() functions, which
  1741. make it easier to implement a custom event loop.
  1742. * Use daemon() call to background the filesystem after mounting.
  1743. This function closes the standard input, output and error and
  1744. changes the current working directory to "/".
  1745. 2004-10-14 Miklos Szeredi <miklos@szeredi.hu>
  1746. * Released 1.9
  1747. 2004-10-09 Miklos Szeredi <miklos@szeredi.hu>
  1748. * Don't allow fuse_flush() to be interrupted (bug found by David
  1749. Shaw)
  1750. 2004-09-27 Miklos Szeredi <miklos@szeredi.hu>
  1751. * Add PID to fuse_context. Patch by Steven James
  1752. * Change file handle type to 'unsigned long' in kernel interface
  1753. 2004-09-22 Miklos Szeredi <miklos@szeredi.hu>
  1754. * A slight API change: fuse_get_context() doesn't need the "fuse"
  1755. pointer, but the returned context contains it instead. The
  1756. fuse_get() function is not needed anymore, so it's removed.
  1757. * Fix mounting and umounting FUSE filesystem under another FUSE
  1758. filesystem by non-root (bug spotted by Valient Gough)
  1759. 2004-09-21 Miklos Szeredi <miklos@szeredi.hu>
  1760. * Fix deadlock in case of memory allocation failure. Patch by
  1761. Christian Magnusson
  1762. 2004-09-16 Miklos Szeredi <miklos@szeredi.hu>
  1763. * Check memory allocation failures in libfuse
  1764. 2004-09-14 Miklos Szeredi <miklos@szeredi.hu>
  1765. * Check temporary file creation failure in do_getdir(). Bug
  1766. spotted by Terje Oseberg
  1767. 2004-09-13 Miklos Szeredi <miklos@szeredi.hu>
  1768. * Allow "large_read" option for 2.6 kernels but warn of deprecation
  1769. * Make requests non-interruptible so race with FORGET is avoided.
  1770. This is only a temporary solution
  1771. * Support compiling FUSE kernel module on 2.4.x UML kernels
  1772. 2004-09-09 Miklos Szeredi <miklos@szeredi.hu>
  1773. * Fix bug in case two FORGETs for the same node are executed in
  1774. the wrong order. Bug spotted and endured for months by Franco
  1775. Broi, and logfile for solution provided by Terje Oseberg
  1776. 2004-09-01 Miklos Szeredi <miklos@szeredi.hu>
  1777. * Add -D_REENTRANT to the compile flags
  1778. * Add documentation of fuse internals by Terje Oseberg
  1779. 2004-08-16 Miklos Szeredi <miklos@szeredi.hu>
  1780. * Change release method to be non-interruptible. Fixes bug
  1781. causing missing release() call when program which has opened files
  1782. is killed (reported by Franco Broi and David Shaw)
  1783. 2004-07-29 Miklos Szeredi <miklos@szeredi.hu>
  1784. * Add fuse_invalidate() to library API
  1785. 2004-07-26 Miklos Szeredi <miklos@szeredi.hu>
  1786. * Check permissions in setattr if 'default_permissions' flag is
  1787. set. Bug spotted by Damjan Lango
  1788. 2004-07-24 Miklos Szeredi <miklos@szeredi.hu>
  1789. * 'large_read' mount option removed for 2.6 kernels, since the
  1790. default (dynamic read size) is better
  1791. * Extend kernel API with file handles. A file handle is returned
  1792. by open, and passed to read, write, flush, fsync and release.
  1793. This is currently only used for debug output in the library.
  1794. * Security changes:
  1795. * Change the current directory to the mountpoint before checking
  1796. the permissions and mount filesystem on "."
  1797. * By default don't modprobe the fuse module for non-root. The old
  1798. behavior can be restored with the '--enable-auto-modprobe' flag of
  1799. ./configure
  1800. * By default don't allow shared writable mappings for non-root.
  1801. The old behavior can be restored with the 'user_mmap=1' module
  1802. parameter
  1803. 2004-07-23 Miklos Szeredi <miklos@szeredi.hu>
  1804. * Clean up mount option passing to fusermount and to fuse_new()
  1805. BEWARE: this changes the userspace API slightly, and the command
  1806. line usage of programs using fuse_main()
  1807. 2004-07-20 Miklos Szeredi <miklos@szeredi.hu>
  1808. * Optimize reading under 2.6 kernels by issuing multiple page
  1809. asynchronous read requests
  1810. 2004-07-18 Miklos Szeredi <miklos@szeredi.hu>
  1811. * Only use redirty_page_for_writepage() for kernels >= 2.6.6
  1812. 2004-07-16 Miklos Szeredi <miklos@szeredi.hu>
  1813. * Separate directory entry and inode attribute validity timer
  1814. * New write semaphore to stop page writeback during truncate
  1815. * Fsync now waits for all writes to complete before sending the
  1816. request
  1817. * Optimization: if a page is completely written by
  1818. fuse_commit_write(), clear the dirty flag and set the uptodate
  1819. flag for that page
  1820. * Some memory cleanup at exit
  1821. 2004-07-13 Miklos Szeredi <miklos@szeredi.hu>
  1822. * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
  1823. disable the "hide if open" behavior of unlink/rename.
  1824. * If temporary buffer allocation fails in raw read, fall back to a
  1825. smaller buffer
  1826. 2004-07-12 Miklos Szeredi <miklos@szeredi.hu>
  1827. * Fix bug in do_open() in libfuse: open count was incremented
  1828. after the reply is sent so it could race with unlink/forget and
  1829. cause an abort.
  1830. 2004-07-08 Miklos Szeredi <miklos@szeredi.hu>
  1831. * When performing create or remove operation, refresh the parent's
  1832. attributes on next revalidate, as i_nlink (and maybe size/time)
  1833. could be inacurate.
  1834. * Use redirty_page_for_writepage() in fuse_writepage() for skipped
  1835. pages (2.6 only)
  1836. * Set set_page_dirty address space operation (2.6 only)
  1837. 2004-07-06 Miklos Szeredi <miklos@szeredi.hu>
  1838. * Minor fix in read: print debug info even if read size is zero
  1839. 2004-07-04 Miklos Szeredi <miklos@szeredi.hu>
  1840. * Fix race between truncate and writepage (fsx-linux now runs
  1841. without error)
  1842. 2004-07-02 Miklos Szeredi <miklos@szeredi.hu>
  1843. * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
  1844. by Mattias Wadman)
  1845. * Added option for direct read/write (-r)
  1846. * Fix revalidate time setting for newly created inodes
  1847. * Remove uid==0 check for '-x' option in fusermount (kernel checks
  1848. this)
  1849. * fuse_main() only installs handlers for signals (out of INT, HUP,
  1850. TERM, PIPE), for which no handler has yet been installed
  1851. * Add module option 'user_allow_other' which if set to non-zero
  1852. will allow non root user to specify the 'allow_other' mount option
  1853. ('-x' option of fusermount)
  1854. * Fix deadlock between page writeback completion and truncate
  1855. (bug found by Valient Gough with the fsx-linux utility)
  1856. 2004-07-01 Miklos Szeredi <miklos@szeredi.hu>
  1857. * Change passing fuse include dir to 2.6 kernel make system more
  1858. robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
  1859. kernel)
  1860. 2004-06-30 Miklos Szeredi <miklos@szeredi.hu>
  1861. * Acquire inode->i_sem before open and release methods to prevent
  1862. concurrent rename or unlink operations.
  1863. * Make __fuse_read_cmd() read only one command. This allows
  1864. multiplexing the fuse file descriptor with other event sources
  1865. using select() or poll() (patch by Jeff Harris)
  1866. * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
  1867. 2004-06-27 Miklos Szeredi <miklos@szeredi.hu>
  1868. * Fix file offset wrap around at 4G when doing large reads
  1869. 2004-06-24 Miklos Szeredi <miklos@szeredi.hu>
  1870. * Fix memory leak in open (Valient Gough)
  1871. 2004-06-24 Miklos Szeredi <miklos@szeredi.hu>
  1872. * Add "close after delete" support to libfuse (patch by Valient
  1873. Gough)
  1874. * Cancel all worker threads before exit in multithreaded mode
  1875. 2004-06-23 Miklos Szeredi <miklos@szeredi.hu>
  1876. * Fix locking bugs
  1877. * Don't send reply to RELEASE
  1878. * Work with newer libtool (1.5a)
  1879. * Check for st_atim member of struct stat
  1880. 2004-06-22 Miklos Szeredi <miklos@szeredi.hu>
  1881. * No request allocation needed on inode and file release
  1882. 2004-06-21 Miklos Szeredi <miklos@szeredi.hu>
  1883. * Fix possible inode leak in userspace in case of unfinished
  1884. lookup/mknod/mkdir/symlink/link operation.
  1885. 2004-06-20 Miklos Szeredi <miklos@szeredi.hu>
  1886. * Fix some races and cleanups in fuse_read_super()
  1887. 2004-06-19 Miklos Szeredi <miklos@szeredi.hu>
  1888. * Requests are allocated at open time
  1889. 2004-06-03 Miklos Szeredi <miklos@szeredi.hu>
  1890. * Build shared library as well as static (using libtool)
  1891. * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but
  1892. there has not been a release with the previous minor number, and I
  1893. hope nobody is using it for anything.
  1894. * Change fuse_main(), so that default behavior is to go into
  1895. background if mount is successful. '-f' and '-d' options disable
  1896. backgrounding. This fixes the "Why does my FUSE daemon hang?"
  1897. newbie complaint.
  1898. * Cache ENOSYS (function not implemented) errors on *xattr, flush
  1899. and fsync
  1900. * Don't call getdir method from open() only from first readdir().
  1901. Open is sometimes just used to store the current directory
  1902. (e.g. find)
  1903. 2004-05-18 Miklos Szeredi <miklos@szeredi.hu>
  1904. * Added flush() call
  1905. 2004-05-04 Miklos Szeredi <miklos@szeredi.hu>
  1906. * Extended attributes support for 2.4 (patch by Cody Pisto)
  1907. 2004-04-20 Miklos Szeredi <miklos@szeredi.hu>
  1908. * Fixed parser with modversions (Mattias Wadman)
  1909. 2004-04-19 Miklos Szeredi <miklos@szeredi.hu>
  1910. * Added mount option parser to 2.4 build
  1911. 2004-04-13 Miklos Szeredi <miklos@szeredi.hu>
  1912. * Replaced binary mount data with text options
  1913. * Show FUSE specific mount options in /proc/mounts
  1914. * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
  1915. 2004-04-09 Miklos Szeredi <miklos@szeredi.hu>
  1916. * Check some limits so userspace won't get too big requests
  1917. 2004-04-05 Miklos Szeredi <miklos@szeredi.hu>
  1918. * Kill compile warning
  1919. * Upgraded user-mount patch for 2.6.5
  1920. 2004-04-02 Miklos Szeredi <miklos@szeredi.hu>
  1921. * Add detection of user-mode-linux to configure
  1922. 2004-03-31 Miklos Szeredi <miklos@szeredi.hu>
  1923. * fixed zero size case for getxattr and listxattr
  1924. 2004-03-30 Miklos Szeredi <miklos@szeredi.hu>
  1925. * new fusermount flag '-z': lazy unmount, default is not lazy
  1926. * Extended attributes operations added (getxattr, setxattr,
  1927. listxattr, removexattr)
  1928. 2004-03-25 Miklos Szeredi <miklos@szeredi.hu>
  1929. * If filesystem doesn't define a statfs operation, then an
  1930. all-zero default statfs is returned instead of ENOSYS
  1931. 2004-03-24 Miklos Szeredi <miklos@szeredi.hu>
  1932. * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
  1933. 2004-03-09 Miklos Szeredi <miklos@szeredi.hu>
  1934. * Fix for uClinux (Christian Magnusson)
  1935. 2004-03-02 Miklos Szeredi <miklos@szeredi.hu>
  1936. * fuse_main() adds "-n progname" to the fusermount command line
  1937. * More kernel interface changes:
  1938. * Lookup/getattr return cache timeout values
  1939. 2004-02-25 Miklos Szeredi <miklos@szeredi.hu>
  1940. * Clean up option parsing in fuse_main()
  1941. * Added fuse_get() function which returns the fuse object created
  1942. by fuse_main()
  1943. 2004-02-20 Miklos Szeredi <miklos@szeredi.hu>
  1944. * removed old way of mounting (fusermount mountpoint program)
  1945. * more kernel interface changes:
  1946. * added nanosecond precision to file times
  1947. * removed interface version from mount data
  1948. * added /proc/fs/fuse/version which contains MAJOR.MINOR
  1949. 2004-02-19 Miklos Szeredi <miklos@szeredi.hu>
  1950. * statfs library API changed to match other methods. Since this
  1951. is not backward compatible FUSE_MAJOR_VERSION is changed to 2
  1952. * kernel interface changes follow:
  1953. * statfs changed to 64 bits, added 'bavail' field
  1954. * add generation number to lookup result
  1955. * optimized mknod/mkdir/symlink/link (no separate lookup is
  1956. needed)
  1957. * rdev size increased to 32 bits for mknod
  1958. * kernel interface version changed to 3.1
  1959. 2004-02-18 Miklos Szeredi <miklos@szeredi.hu>
  1960. * user-mount upgraded for 2.6.3 kernel
  1961. 2004-02-17 Miklos Szeredi <miklos@szeredi.hu>
  1962. * Added user-mount.2.6.2-rc3.patch
  1963. * Add FS_SAFE flag to fuse filesystem
  1964. * fusermount should allow (un)mounting for non-root even if not
  1965. suid-root
  1966. 2004-02-12 Miklos Szeredi <miklos@szeredi.hu>
  1967. * Remove MS_PERMISSION mount flag (that means something else now)
  1968. 2004-02-10 Miklos Szeredi <miklos@szeredi.hu>
  1969. * Added check for i_size_read/write functions to configure.in
  1970. (patch by Valient Gough)
  1971. 2004-02-06 Miklos Szeredi <miklos@szeredi.hu>
  1972. * Fixed writing >= 2G files
  1973. * Check file size on open (with generic_file_open())
  1974. * Readpage calls flush_dcache_page() after storing data
  1975. * Use i_size_read/write for accessing inode->i_size
  1976. * Make loopback mount of a fuse file work
  1977. 2004-02-04 Miklos Szeredi <miklos@szeredi.hu>
  1978. * Released 1.1
  1979. 2004-01-29 Miklos Szeredi <miklos@szeredi.hu>
  1980. * Properly check if the inode exists in fuse_invalidate
  1981. 2004-01-27 Miklos Szeredi <miklos@szeredi.hu>
  1982. * Added -q option for fusermount
  1983. * fuse_unmount() now uses -q option of fusermount, so no error is
  1984. printed if the cause of the program exit is that the filesystem
  1985. has already been unmounted
  1986. * Fix i_nlink correctness after rmdir/unlink
  1987. 2004-01-26 Miklos Szeredi <miklos@szeredi.hu>
  1988. * Released 1.1-pre2
  1989. 2004-01-26 Miklos Szeredi <miklos@szeredi.hu>
  1990. * Fix typo (thanks Marcos Dione)
  1991. * Compile fixes for 2.4 kernels
  1992. 2004-01-23 Miklos Szeredi <miklos@szeredi.hu>
  1993. * Fix CONFIG_MODVERSIONS compile on 2.6
  1994. 2004-01-22 Miklos Szeredi <miklos@szeredi.hu>
  1995. * Write all pending data before a RELEASE operation
  1996. * Suppress 'Bad file descriptor' warning on exit
  1997. * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
  1998. get confused with '-d' of fuse_main() (sorry about this change)
  1999. * New fusermount option '-l' which enables big reads. Big reads
  2000. are now disabled by default.
  2001. * fuse_main() can accept fusermount arguments after a '--'
  2002. 2004-01-19 Miklos Szeredi <miklos@szeredi.hu>
  2003. * Support for exporting filesystem over NFS (see README.NFS)
  2004. 2004-01-14 Miklos Szeredi <miklos@szeredi.hu>
  2005. * Support non-blocking writepage on 2.6. This makes FUSE behave
  2006. much more nicely in low-memory situations
  2007. * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
  2008. (Note: the mknod method does not yet use 32bit device number)
  2009. 2004-01-13 Miklos Szeredi <miklos@szeredi.hu>
  2010. * Code cleanups
  2011. 2004-01-07 Miklos Szeredi <miklos@szeredi.hu>
  2012. * Released 1.1-pre1
  2013. 2004-01-06 Miklos Szeredi <miklos@szeredi.hu>
  2014. * Integrated 2.6 kernel support patch by Michael Grigoriev
  2015. * Improvements and cleanups for 2.6 kernels
  2016. 2004-01-05 Miklos Szeredi <miklos@szeredi.hu>
  2017. * Added -d option to fusermount
  2018. 2003-12-15 Miklos Szeredi <miklos@szeredi.hu>
  2019. * Added major+minor version to library API, and minor version to
  2020. kernel API
  2021. 2003-12-13 David McNab <david@rebirthing.co.nz>
  2022. * Implemented fsync support in examples/example.py
  2023. * Implemented 'fsync' and 'statfs' methods in python
  2024. interface
  2025. 2003-12-12 Miklos Szeredi <miklos@szeredi.hu>
  2026. * Make it compile on 2.4.19.
  2027. * Add fsync operation (write file failed on xemacs & vi)
  2028. 2003-12-12 David McNab <david@rebirthing.co.nz>
  2029. * Added distutils support to the python module, as per standard
  2030. python development practice
  2031. 2003-12-11 Miklos Szeredi <miklos@szeredi.hu>
  2032. * Add file locking for mount/unmount (based on patch by Valient
  2033. Gough)
  2034. 2003-12-11 David McNab <david@rebirthing.co.nz>
  2035. * Python filesystem - was broken with python2.3, now fixed:
  2036. - changed PyTuple_* calls to PySequence_*, because os.lstat
  2037. is no longer returning a pure tuple
  2038. - changed PyInt_Check() calls to also call PyLong_Check,
  2039. to cover for cases (eg os.lstat) where longs are returned
  2040. - Added support for file 'release' handling, which IMO is
  2041. essential since this signals to a FS that writes to a file
  2042. are complete (and therefore the file can now be disposed of
  2043. meaningfully at the python filesystem's discretion)
  2044. - Added '__init__' handler to base Fuse class, which allows
  2045. your Python class to know the mountpoint and mount args,
  2046. as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
  2047. * General:
  2048. - added 'mount.fuse' script (in util/ dir), which is meant to be
  2049. symlinked from /sbin, and which allows FUSE filesystems to
  2050. be mounted with the 'mount' command, and listed in fstab;
  2051. also, mount arguments get passed to your filesystem
  2052. 2003-11-04 Miklos Szeredi <miklos@szeredi.hu>
  2053. * Fix kernel version detection (again). Bugreport by Peter Levart
  2054. 2003-11-03 Miklos Szeredi <miklos@szeredi.hu>
  2055. * Applied read combining patch by Michael Grigoriev (tested by
  2056. Valient Gough and Vincent Wagelaar)
  2057. 2003-10-22 Miklos Szeredi <miklos@szeredi.hu>
  2058. * Mtab handling fix in fusermount by "Valient Gough" (SF patch
  2059. #766443)
  2060. 2003-10-13 Miklos Szeredi <miklos@szeredi.hu>
  2061. * Error code fixes in kernel module
  2062. 2003-10-04 Miklos Szeredi <miklos@szeredi.hu>
  2063. * kernel version detection fix
  2064. * fusermount now uses "lazy" umount option
  2065. * fusermount can use modprobe with module-init-tools
  2066. 2003-09-08 Miklos Szeredi <miklos@szeredi.hu>
  2067. * Integrated caching patch by Michael Grigoriev
  2068. * Added "Filesystems" file with descriptions of projects using
  2069. FUSE
  2070. * Added patch by Michael Grigoriev to allow compliation of FUSE
  2071. kernel module for 2.6 kernels
  2072. 2003-06-02 Miklos Szeredi <miklos@szeredi.hu>
  2073. * And another spec-file fix by Achim Settelmeier
  2074. 2003-05-26 Miklos Szeredi <miklos@szeredi.hu>
  2075. * Spec-file fix by Achim Settelmeier
  2076. 2003-03-10 Miklos Szeredi <miklos@szeredi.hu>
  2077. * Fix umount oops (found by Samuli Kärkkäinen)
  2078. 2003-03-05 Miklos Szeredi <miklos@szeredi.hu>
  2079. * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
  2080. 2003-03-04 Miklos Szeredi <miklos@szeredi.hu>
  2081. * Updated fuse.spec file (Achim Settelmeier)
  2082. 2003-02-19 Miklos Szeredi <miklos@szeredi.hu>
  2083. * Version 1.0 released
  2084. 2003-02-12 Miklos Szeredi <miklos@szeredi.hu>
  2085. * SuSE compilation fix by Juan-Mariano de Goyeneche
  2086. 2002-12-10 Miklos Szeredi <miklos@szeredi.hu>
  2087. * The release() VFS call is now exported to the FUSE interface
  2088. 2002-12-05 Miklos Szeredi <miklos@szeredi.hu>
  2089. * 64 bit file offset fixes in the fuse kernel module
  2090. * Added function 'fuse_exit()' which can be used to exit the main
  2091. loop
  2092. 2002-12-03 Miklos Szeredi <miklos@szeredi.hu>
  2093. * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is
  2094. an incompatible interface change.
  2095. 2002-10-28 Miklos Szeredi <miklos@szeredi.hu>
  2096. * Portablility fix (bug reported by C. Chris Erway)
  2097. 2002-10-25 Miklos Szeredi <miklos@szeredi.hu>
  2098. * Use Mark Glines' fd passing method for default operation instead
  2099. of old reexec
  2100. 2002-10-22 Miklos Szeredi <miklos@szeredi.hu>
  2101. * fix "Stale NFS file handle" bug caused by changes in 2.4.19
  2102. 2002-10-22 Miklos Szeredi <miklos@szeredi.hu>
  2103. * fix incompatiblity with Red Hat kernels, with help from Nathan
  2104. Thompson-Amato.
  2105. 2002-04-18 Mark Glines <mark@glines.org>
  2106. * added an alternative to fuse_mount(), called
  2107. fuse_mount_ioslave(), which does not need to reexec the
  2108. FUSE program.
  2109. * added a small helper util needed by fuse_mount_ioslave().
  2110. 2002-03-16 Mark Glines <mark@glines.org>
  2111. * use struct fuse_statfs everywhere possible to avoid problems
  2112. with the headerfiles changing struct statfs member sizes
  2113. 2002-03-01 Miklos Szeredi <miklos@szeredi.hu>
  2114. * Another RPM spec file for RedHat >= 7 by Ian Pilcher
  2115. 2002-01-14 Miklos Szeredi <miklos@szeredi.hu>
  2116. * RPM support by Achim Settelmeier
  2117. 2002-01-09 Miklos Szeredi <miklos@szeredi.hu>
  2118. * Version 0.95 released
  2119. 2002-01-09 Miklos Szeredi <miklos@szeredi.hu>
  2120. * Revaidate all path components not just the last, this means a
  2121. very small performance penalty for being more up-to-date.
  2122. 2002-01-08 Miklos Szeredi <miklos@szeredi.hu>
  2123. * Update and fix python interface
  2124. 2002-01-07 Mark Glines <mark@glines.org>
  2125. * Added statfs() support to kernel, lib, examples, and perl!
  2126. 2001-12-26 Miklos Szeredi <miklos@szeredi.hu>
  2127. * Better cross compilation support
  2128. * Ported to Compaq IPAQ
  2129. 2001-12-20 Miklos Szeredi <miklos@szeredi.hu>
  2130. * Added function fuse_get_context() to library API (inspired by
  2131. patch from Matt Ryan)
  2132. * Added flags to fusermount and to kernel interface to control
  2133. permission checking
  2134. * Integrated fuse_set_operations() into fuse_new()
  2135. 2001-12-08 Miklos Szeredi <miklos@szeredi.hu>
  2136. * Applied header protection + extern "C" patch by Roland
  2137. Bauerschmidt
  2138. 2001-12-02 Miklos Szeredi <miklos@szeredi.hu>
  2139. * Added perl bindings by Mark Glines
  2140. 2001-11-21 Miklos Szeredi <miklos@szeredi.hu>
  2141. * Cleaned up way of mounting simple filesystems.
  2142. * fuse_main() helper function added
  2143. 2001-11-18 Miklos Szeredi <miklos@szeredi.hu>
  2144. * Optimized read/write operations, so that minimal copying of data
  2145. is done
  2146. 2001-11-14 Miklos Szeredi <miklos@szeredi.hu>
  2147. * Python bindings by Jeff Epler added
  2148. 2001-11-13 Miklos Szeredi <miklos@szeredi.hu>
  2149. * Fixed vfsmount reference leak in fuse_follow_link
  2150. * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
  2151. userspace is ignored
  2152. 2001-11-09 Miklos Szeredi <miklos@szeredi.hu>
  2153. * Started ChangeLog