blob: 744ab422dbbb3f8bf79e5978a56519ab701fc626 [file] [log] [blame]
Miklos Szeredi288ed4e2006-09-07 06:02:44 +000012006-09-07 Miklos Szeredi <miklos@szeredi.hu>
2
3 * lib: Add interrupt support to high level library, which may be
4 enabled with the 'intr' mount option.
5
6 * When an operation is interrupted the thread handling that
7 operation will receive SIGUSR1 (or other signal specified with the
8 'intr_signal=N' option). The library installs a no-op signal
9 handler for this signal, unless there's already a handler
10 installed.
11
12 * The filesystem may query interrupt status (regardless of 'intr')
13 with the fuse_interrupted() function.
14
Miklos Szeredid8588412006-09-07 06:08:56 +000015 * mount.fuse: initialize $HOME if not set. Report from Sven Goldt
16
Miklos Szeredi38f152c2006-09-03 18:28:52 +0000172006-09-03 Miklos Szeredi <miklos@szeredi.hu>
18
19 * lib: Multithreaded loop now allows unlimited number of threads.
20 This is needed for locking operations which may block
21 indefinitely. Also the kernel now doesn't limit the number of
22 outstanding requests so the library shouldn't do so either.
23
Miklos Szeredifa440772006-09-02 09:51:08 +0000242006-09-01 Miklos Szeredi <miklos@szeredi.hu>
25
26 * Fix recursive lock bug in interrupt handling
27
28 * Add utimes() method to highlevel interface, which supports
29 setting times with nanosecond resolution
30
Miklos Szeredi63d3c402006-08-18 16:38:08 +0000312006-08-18 Miklos Szeredi <miklos@szeredi.hu>
32
33 * kernel: fix page leak if fuse_readpages() failed in it's
34 initialization. Bug found and original patch from Alexander
35 Zarochentsev
36
Miklos Szeredi3ded1a32006-08-18 18:43:50 +000037 * For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
38 the kernel tree) the statfs method will receive the path within
Miklos Szeredid2bda142006-08-19 09:26:16 +000039 the filesystem on which the stat(v)fs syscall was called
Miklos Szeredi3ded1a32006-08-18 18:43:50 +000040
Miklos Szeredi543087d2006-08-18 19:26:23 +000041 * fusermount: try to modprobe fuse module if invoked by root and
42 unable to open device. This is needed with udev, since the device
43 node will be created only when the module is inserted, hence
44 module autoloading won't work. Reported by Szakacsits Szabolcs
45
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000462006-07-30 Miklos Szeredi <miklos@szeredi.hu>
47
48 * fusermount: if selinux is active, restore the original file's
49 security context in unmount_rename(). Redhat bugzilla id 188561.
50 Patch from Yves Perrenoud
51
52 * Add POSIX file locking operation to high level library
53
Miklos Szerediad519562006-07-31 11:07:40 +000054 * Initialize context for unlink of hidden files on umount. Bug
55 reported by Tim Stoakes
56
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +0000572006-07-14 Miklos Szeredi <miklos@szeredi.hu>
58
59 * Multiple release() calls can race with each other, resulting in
60 the hidden file being deleted before the last release finishes.
61 Bug found and patch tested by Mark Huijgen
62
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +0000632006-07-05 Miklos Szeredi <miklos@szeredi.hu>
64
Miklos Szeredi9a5c11d2006-07-30 17:33:40 +000065 * fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
66 this makes sense on systems using udev. Reported by Szakacsits
67 Szabolcs
Miklos Szeredi3b0e4fa2006-07-14 10:13:16 +000068
Miklos Szeredi91762cd2006-06-29 14:38:35 +0000692006-06-29 Miklos Szeredi <miklos@szeredi.hu>
70
71 * Released 2.6.0-pre3
72
732006-06-29 Miklos Szeredi <miklos@szeredi.hu>
74
75 * Support in kernel module for file locking and interruption. The
76 same functionality is available in official kernels >= 2.6.18
77
Miklos Szeredib052a1a2006-06-28 14:51:20 +0000782006-06-28 Miklos Szeredi <miklos@szeredi.hu>
79
80 * Add POSIX file locking support
81
82 * Add request interruption
83
Miklos Szeredi55a84102006-06-06 10:16:38 +0000842006-06-06 Miklos Szeredi <miklos@szeredi.hu>
85
86 * Add missing pthread_rwlock_destroy(). Patch from Remy Blank
87
Miklos Szeredi9dedb702006-06-06 09:48:30 +0000882006-06-05 Remy Blank <remy.blank@pobox.com>
89
90 * lib: canonicalize mount point in fuse_helper_opt_proc() so that
91 unmounting succeeds even if mount point was relative.
92
Csaba Henkd021ce42006-06-03 23:04:18 +0000932006-06-04 Csaba Henk <csaba.henk@creo.hu>
94
95 * lib: fix emergency umount in helper.c when malloc fails.
96 (The way it was done would end up in a segfault.)
97
Csaba Henk4f5c7b42006-06-01 14:19:17 +0000982006-06-01 Csaba Henk <csaba.henk@creo.hu>
99
100 * lib: adjust threading related compiler flags.
101 Switch to "-pthread" from "-lpthread" as that's the preferred
102 one on several platforms. Consulted with Terrence Cole and
103 Miklos Szeredi
Miklos Szeredi06908f42006-05-16 14:39:47 +0000104
Miklos Szeredi9d3b7da2006-05-08 12:35:04 +00001052006-05-08 Miklos Szeredi <miklos@szeredi.hu>
106
107 * lib: search fusermount in installation directory (bindir) as
108 well as in PATH.
109
Miklos Szeredi2512aaa2006-05-03 14:54:59 +00001102006-05-03 Miklos Szeredi <miklos@szeredi.hu>
111
112 * lib: fix compilation if CLOCK_MONOTONIC is not defined.
113 Reported by Christian Magnusson
114
Csaba Henk2efe48f2006-04-22 22:46:52 +00001152006-04-23 Csaba Henk <csaba.henk@creo.hu>
116
117 * lib: make FreeBSD mount routine recognize if kernel features
118 backgrounded init and if it does, run the mount util in foreground
119 (similarly to Linux)
120
Miklos Szeredi5fe07d62006-04-21 14:09:28 +00001212006-04-21 Miklos Szeredi <miklos@szeredi.hu>
122
123 * kernel: fix fput deadlock fix, the lockless solution could lead
124 to "VFS: busy inodes after umount..."
125
126 * kernel: fix race between checking and setting file->private_data
127 for the device. Found by Al Viro
128
1292006-04-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7a2814c2006-04-12 10:41:50 +0000130
131 * kernel: remove request pool, instead allocate requests on
132 demand. Account the number of background requests, and if they go
133 over a limit, block the allocation of new requests.
134
135 * kernel: fix deadlock if backgrounded request holds the last
136 reference to the super block
137
138 * kernel: don't use fuse_reset_request() during direct I/O
139
Csaba Henkbaa49d22006-04-06 00:12:44 +00001402006-04-06 Csaba Henk <csaba.henk@creo.hu>
141
142 * lib: Let FreeBSD mount option parsing routine recognize "no"
143 prefixes for FUSE specific options as well
144
Miklos Szeredid0a777a2006-04-05 07:18:00 +00001452006-04-01 Miklos Szeredi <miklos@szeredi.hu>
146
147 * lib: Add missing rwlock initialization. Patch by Ryan Bradetich
148
Miklos Szeredi6f385412006-03-17 15:05:40 +00001492006-03-17 Miklos Szeredi <miklos@szeredi.hu>
150
151 * API changes:
152
153 * fuse_main(), fuse_setup() and fuse_new() have an additionl
154 user_data parameter
155
156 * fuse_mount() returns a 'struct fuse_chan' pointer instead of a
157 file descriptor
158
159 * fuse_unmount() receives a 'struct fuse_chan' pointer. It
160 destroys the given channel
161
162 * fuse_teardown() no longer has a file descriptor parameter
163
164 * new exported functions: fuse_session_remove_chan(),
165 fuse_get_session(), fuse_daemonize()
166
Miklos Szeredi8d975f62006-03-17 15:56:05 +0000167 * fuse_chan_recv() may now return a new channel which will be used
168 to send the reply
169
Miklos Szeredif51e43f2006-03-16 14:19:25 +00001702006-03-16 Miklos Szeredi <miklos@szeredi.hu>
171
Miklos Szeredi9db31dc2006-03-16 14:43:28 +0000172 * Released 2.6.0-pre2
173
1742006-03-16 Miklos Szeredi <miklos@szeredi.hu>
175
Miklos Szeredif51e43f2006-03-16 14:19:25 +0000176 * Don't unmount if already unmounted. This fixes a problem seen
177 in the following situation: Lazy unmount a busy filesystem; Mount
178 a new one in top; When the first finally unmounts, the second also
179 unmounts. Reported by Franco Broi
180
Miklos Szeredi2c1381f2006-03-15 20:34:10 +00001812006-03-15 Miklos Szeredi <miklos@szeredi.hu>
182
183 * lowlevel lib: use indirect function calls instead of a
184 switch/case construct. Besides increased efficiency it helps
185 maintainability & readability too. Patch from Florin Malita
186
Miklos Szeredi67d26d42006-03-13 17:39:56 +00001872006-03-13 Miklos Szeredi <miklos@szeredi.hu>
188
189 * kernel: replace global spinlock with a per-connection spinlock
190
Miklos Szeredi87c77932006-03-10 10:18:20 +00001912006-03-10 Miklos Szeredi <miklos@szeredi.hu>
192
193 * Fix source compatibility breakage for fuse_unmount(). Report
194 from Yura Pakhuchiy
195
Miklos Szeredi9caf0fe2006-03-02 19:55:56 +00001962006-03-02 Miklos Szeredi <miklos@szeredi.hu>
197
198 * Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
199
Miklos Szeredi5d9ce362006-03-01 12:10:13 +00002002006-03-01 Miklos Szeredi <miklos@szeredi.hu>
201
202 * Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
203 Jeff Dike
204
205 * Renamed fuse_chan_receive() to fuse_chan_recv() and changed
206 interface to return -errno in case of error.
207
Csaba Henkee588c02006-03-01 09:40:35 +00002082006-03-01 Csaba Henk <csaba.henk@creo.hu>
209
210 * libfuse: pass device file descriptor to fuse_unmount(), rewrite
211 FreeBSD implementation so that it uses libc (sysctl backed) instead
212 of an embdedded script (kmem backed). Adjust the control flow of
213 hello_ll so that device doesn't get closed before unmount attempt.
214
Miklos Szerediaa8258e2006-02-25 14:42:03 +00002152006-02-25 Miklos Szeredi <miklos@szeredi.hu>
216
217 * Lowlevel lib: return all-zero statvfs data if filesystem doesn't
218 implement method. This is needed on FreeBSD, and nicer on Linux
219 too. Highlevel lib already did this. Reported by Csaba Henk
220
221 * Fix negative entry handling. There was a bug, that negative
222 lookups with timeouts (nodeid == 0) returned -EIO.
223
2242006-02-23 Miklos Szeredi <miklos@szeredi.hu>
225
226 * Fix race between RELEASE and UNLINK, which might leave
227 .fuse_hidden* files around
228
Miklos Szeredi6bab4802006-02-21 18:31:29 +00002292006-02-21 Miklos Szeredi <miklos@szeredi.hu>
230
231 * fusexmp_fh: implement flush() method and call close() on the
232 open file descriptor. This is needed if used on an NFS
233 filesystem, which buffers data until file is closed. Franco Broi
234 spotted the situation when 'cp -p' failed to set the modification
235 time because of this.
236
Miklos Szeredie109e282006-02-20 11:06:20 +00002372006-02-20 Miklos Szeredi <miklos@szeredi.hu>
238
239 * Released 2.6.0-pre1
240
Miklos Szeredib67f2162006-02-20 10:55:33 +00002412006-02-19 Miklos Szeredi <miklos@szeredi.hu>
242
243 * libfuse: fix use-after-free bug in interruptred reply_entry().
244 Patch from John Muir
245
246 * libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
247 ID: 352631. Found by Stéphane Rosi
248
Miklos Szeredi1bf64f42006-02-17 15:49:25 +00002492006-02-17 Miklos Szeredi <miklos@szeredi.hu>
250
251 * Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
252 into a single function fuse_add_direntry(). This cleans up the
253 interface and makes it possible to do stacking.
254
Miklos Szeredi99ac9c02006-02-16 10:08:32 +00002552006-02-16 Miklos Szeredi <miklos@szeredi.hu>
256
257 * Fix rare race betweeen abort and release caused by failed iget()
258 in fuse_create_open().
259
Miklos Szeredi6e806e92006-02-16 16:59:39 +0000260 * Add 'ac_attr_timeout' option e.g. for filesystems which do their
261 own attribute caching.
262
Miklos Szeredid65cdfe2006-02-15 14:25:17 +00002632006-02-15 Miklos Szeredi <miklos@szeredi.hu>
264
265 * Work around FreeBSD runtime linker "feature" which binds an old
266 version of a symbol to internal references if the symbol has more
267 than one version. This resulted in infinite recursion in
268 fuse_lowlevel_new_compat25().
269
Csaba Henkdcce3e52006-02-10 06:22:15 +00002702006-02-10 Csaba Henk <csaba.henk@creo.hu>
271
272 * Refine clock_gettime() querying so that linker options
273 shall be set as it's appropriate for the target platform.
274
Miklos Szeredi390ae312006-02-10 16:44:34 +00002752006-02-09 Miklos Szeredi <miklos@szeredi.hu>
276
277 * Fix udev rule syntax. Reported by Nix
278
Miklos Szeredieb643582006-02-08 10:54:02 +00002792006-02-08 Miklos Szeredi <miklos@szeredi.hu>
280
281 * In some cases udev rule seems to be ineffective when installed
282 as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
283
Miklos Szeredi357529c2006-02-03 09:20:31 +00002842006-02-03 Miklos Szeredi <miklos@szeredi.hu>
285
286 * Fix compilation when build directory is different from source
287 directory. Reported by Frédéric L. W. Meunier
288
Miklos Szeredice28c7e2006-02-02 14:59:05 +00002892006-02-02 Miklos Szeredi <miklos@szeredi.hu>
290
291 * Fix even bigger bug introduced in fix for request_end() on
292 2006-01-14. Reported by Gal Rosen
293
Miklos Szeredi320abe42006-01-30 18:14:51 +00002942006-01-30 Miklos Szeredi <miklos@szeredi.hu>
295
296 * highlevel-lib: add 'auto_cache' option. This caches file data
297 based on modification time and size
298
Miklos Szeredi065f2222006-01-20 15:15:21 +00002992006-01-20 Miklos Szeredi <miklos@szeredi.hu>
300
Miklos Szeredid66b7282006-02-02 15:15:21 +0000301 * Sanitize storage type and help message in mount_bsd.c. Patch
302 from Csaba Henk
303
Miklos Szeredi065f2222006-01-20 15:15:21 +0000304 * fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
305 FUSE_OPT_KEY_DISCARD
306
307 * Add options 'max_readahead', 'sync_read' and 'async_read'
308
309 * Kernel ABI version 7.6:
310
311 * Negotiate the 'max_readahead' value and 'async_read' flags with
312 userspace in the INIT method
313
314 * Add connection info to ->init() methods to both lowlevel and
315 highlevel API
316
317 * Fall back to synchronous read() behavior if either library or
318 userspace filesystem is using the old interface version. This is
319 needed so non-updated filesystems won't be confused by the
320 different read() behavior
321
3222006-01-19 Miklos Szeredi <miklos@szeredi.hu>
323
324 * lib: if "fsname=" option was given, pass it to fusermount
325
326 * fuse_opt: add new fuse_opt_insert_arg() function, which is
327 needed by filesystems to implement some argument manipulations
328 correctly
329
330 * fuse_opt: fix memory leak in handling "--" option
331
3322006-01-18 Miklos Szeredi <miklos@szeredi.hu>
333
334 * kernel: fix detection of case when fuse is not configured into
335 the kernel either as module or built-in
336
337 * fuse_opt.h: fix incompatibility with C++ compilers by renaming
338 'template' structure member to 'templ'. Reported by Takashi Iwai
339
340 * fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
341
342 * kernel: support version 2.6.16 (i_sem -> i_mutex)
343
Miklos Szeredi15af1b82006-01-16 17:52:24 +00003442006-01-16 Miklos Szeredi <miklos@szeredi.hu>
345
346 * Added (again) asynchronous readpages support
347
348 * Each connection now shows up under /sys/fs/fuse/connections
349
350 * Connection attributes exported to sysfs: 'waiting' number of
351 waiting requests; 'abort' abort the connection
352
353 * Connection may be aborted through either the sysfs interface or
354 with 'umount -f mountpoint'
355
Miklos Szeredi9db5faa2006-01-14 14:47:21 +00003562006-01-14 Miklos Szeredi <miklos@szeredi.hu>
357
Miklos Szeredi75bb0de2006-01-14 18:38:54 +0000358 * Released 2.5.0
359
3602006-01-14 Miklos Szeredi <miklos@szeredi.hu>
361
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000362 * kernel: fix a couple of bugs
363
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000364 * Order of request_end() and fuse_copy_finish() was wrong.
Miklos Szeredie0451092006-01-27 11:19:51 +0000365 Posthumous note: Franco Broi managed to exploit this, though it
Miklos Szeredi68183ca2006-01-27 11:16:11 +0000366 seemed quite impossible
Miklos Szeredi9db5faa2006-01-14 14:47:21 +0000367
368 * request_end() used request pointer after decrementing refcount
369
370 * Clearing ->connected or ->mounted connection flags could race
371 with setting other bitfields not protected with a lock
Miklos Szeredi15af1b82006-01-16 17:52:24 +0000372
Miklos Szeredia9820342006-01-10 10:54:11 +00003732006-01-10 Miklos Szeredi <miklos@szeredi.hu>
374
375 * kernel: add necessary compile flags for 2.4.X/x86_64.
376 Report from Sean Ziegeler
377
Miklos Szeredi35676b02006-01-09 10:13:28 +00003782006-01-09 Miklos Szeredi <miklos@szeredi.hu>
379
Miklos Szeredie07b1a22006-01-09 14:46:10 +0000380 * Released 2.5.0-pre2
381
3822006-01-09 Miklos Szeredi <miklos@szeredi.hu>
383
Miklos Szeredi35676b02006-01-09 10:13:28 +0000384 * Applied patch from Csaba Henk, to update mount_bsd to new
385 fuse_mount() semantics
386
Miklos Szeredib32c79b2006-01-09 11:14:29 +0000387 * Ignore auto,noauto,... options in mount.fuse. Reported by Frank
388 Steiner and Don Taber
389
Miklos Szeredicb075c82006-01-09 11:33:04 +0000390 * fusermount: add 'dirsync' mount option
391
Miklos Szerediad005972006-01-07 10:14:34 +00003922006-01-07 Miklos Szeredi <miklos@szeredi.hu>
393
394 * Improved help reporting and added version reporting to library
395
Miklos Szeredi0af762a2006-01-06 09:47:54 +00003962006-01-06 Miklos Szeredi <miklos@szeredi.hu>
397
398 * Change working directory to "/" even if running in the
399 foreground. Patch from Jonathan Brandmeyer
400
Miklos Szeredi95da8602006-01-06 18:29:40 +0000401 * Changed lots of functions to use 'struct fuse_args' instead of
402 separate argc and argv
403
404 * Added fuse_parse_cmdline(), fuse_set_signal_handlers() and
405 fuse_remove_signal_handlers() functions, so that it's now pretty
406 easy to get all the functionality of fuse_main() with a filesystem
407 using the lowlevel API.
408
Miklos Szeredib8638182006-01-02 12:52:24 +00004092006-01-02 Miklos Szeredi <miklos@szeredi.hu>
410
Miklos Szeredif1941472006-01-02 16:27:48 +0000411 * mount.fuse: the 'user' option should be ignored. Report and
412 solution from Mattd.
413
414 * mount.fuse: export PATH in the right place. Report and patch
415 from Hannes Schweizer
Miklos Szeredib8638182006-01-02 12:52:24 +0000416
Miklos Szeredi73f41392005-12-16 11:12:16 +00004172005-12-16 Miklos Szeredi <miklos@szeredi.hu>
418
419 * Clean up the option parsing interface slightly, by creating an
420 "argument list" structure, that contains the argument vector and
421 count
422
Miklos Szeredi4e829092005-12-15 16:13:49 +00004232005-12-15 Miklos Szeredi <miklos@szeredi.hu>
424
425 * fusermount: check if /mnt/mtab is a symlink and don't modify it
426 in that case
427
Miklos Szeredi154ffe22005-12-15 16:41:20 +0000428 * kernel: simplify request size limiting. INIT only contains
429 maximum write size, maximum path component size remains fixed at
430 1024 bytes, and maximum xattr size depends on read buffer.
431
Miklos Szeredie248e4b2005-12-14 16:18:32 +00004322005-12-14 Miklos Szeredi <miklos@szeredi.hu>
433
434 * Fix readdir() failure on x86_64, of 32bit programs compiled
435 without largefile support. Bug report and help from Anthony
436 Kolasny
437
Miklos Szeredi64709572005-12-14 22:16:28 +0000438 * If lookup returns invalid mode, return -EIO instead of creating
Miklos Szeredicaa09312005-12-14 23:25:00 +0000439 a regular file
440
441 * Add current output argument vector to option processing
442 function
Miklos Szeredi64709572005-12-14 22:16:28 +0000443
Miklos Szeredi76fc3de2005-12-12 09:34:45 +00004442005-12-12 Miklos Szeredi <miklos@szeredi.hu>
445
446 * Fix stale code in ifdef FreeBSD. Patch from Csaba Henk
447
Miklos Szeredi659743b2005-12-09 17:41:42 +00004482005-12-09 Miklos Szeredi <miklos@szeredi.hu>
449
Miklos Szeredi3b534a42005-12-09 20:09:42 +0000450 * Released 2.5.0-pre1
451
4522005-12-09 Miklos Szeredi <miklos@szeredi.hu>
453
Miklos Szeredi659743b2005-12-09 17:41:42 +0000454 * libfuse: added option parsing interface, defined in
455 <fuse_opt.h>.
456
Miklos Szeredic53cddd2005-12-07 12:57:59 +00004572005-12-07 Miklos Szeredi <miklos@szeredi.hu>
458
459 * Return EIO for file operations (read, write, fsync, flush) on
460 open files whose inode has become "bad". Inodes will be marked
461 "bad" if their type changes. Bug report by Csaba Henk
462
Miklos Szeredi044da2e2005-12-06 17:59:55 +00004632005-12-06 Miklos Szeredi <miklos@szeredi.hu>
464
465 * Use bigger request buffer size. write() did not work on archs
466 with > 4k page size, Bug report by Mark Haney
467
468 * ABI version 7.5:
469
470 * Extend INIT reply with data size limits
471
Miklos Szeredifa829b52005-12-02 11:05:41 +00004722005-12-02 Miklos Szeredi <miklos@szeredi.hu>
473
474 * Fix memory leak in fuse_read_cmd()/fuse_process_cmd(). Bug
475 reported by Vincenzo Ciancia
476
477 * Handle exit-by-umount in fuse_read_cmd()
478
Miklos Szeredi3cc8a262005-11-29 11:04:27 +00004792005-11-29 Miklos Szeredi <miklos@szeredi.hu>
480
481 * Check if '-msoft-float' option is supported by compiler when
482 configuring for a 2.4.x kernel. Bug report by Mark Haney
483
Miklos Szeredi40d7b382005-11-29 20:07:23 +0000484 * In multithreaded loop send a TERM signal to the main thread if
485 one of the other threads exit. Needed on FreeBSD for a clean exit
486 on umount. Should not cause any harm on Linux either
487
Miklos Szerediead7f102005-11-28 16:02:27 +00004882005-11-28 Miklos Szeredi <miklos@szeredi.hu>
489
490 * Fix bug in 32-bit file handle compatibility
491
Miklos Szeredia90b7342005-11-27 19:22:42 +00004922005-11-27 Miklos Szeredi <miklos@szeredi.hu>
493
494 * Block TERM, INT, HUP and QUIT signals in all but the main
495 thread. According to POSIX it's not specified which thread will
496 receive these signals.
Miklos Szeredi2b478112005-11-28 13:27:10 +0000497
498 * Kernel changes:
499
500 * Check for directory aliasing on mkdir, not just on lookup
501
502 * Check for special node ID values in create+open operation
503
504 * Sync with -mm: readv, writev, aio_read and aio_write methods
505 added to file operations
506
507 * Cleanups: lookup code, page offset calculation
508
509 * ABI stepped to 7.4, changes:
510
511 * frsize member added to fuse_kstatfs structure
512
513 * added support for negative entry caching: on lowlevel API if
514 fuse_entry_param::ino is set to zero in reply to a lookup request,
515 the kernel will cache the dentry for the specified amount of time.
516
517 * libfuse: added 'negative_timeout' option: specifies how much
518 negative entries should be cached. Default is zero, to be
Miklos Szerediead7f102005-11-28 16:02:27 +0000519 compatible with prior versions
Miklos Szeredi2b478112005-11-28 13:27:10 +0000520
Miklos Szeredibac4c772005-11-23 13:35:54 +00005212005-11-22 Miklos Szeredi <miklos@szeredi.hu>
522
523 * Add detection of mainline FUSE code in running kernel
524
Miklos Szeredi8393e3d2005-11-21 11:37:01 +00005252005-11-21 Miklos Szeredi <miklos@szeredi.hu>
526
527 * Don't use async cancelation in multithreaded loop. This makes
528 it more portable to systems where read() is not async cancel safe.
529 Report from Andriy Gapon
530
Miklos Szeredi05c97842005-11-20 17:05:07 +00005312005-11-20 Miklos Szeredi <miklos@szeredi.hu>
532
533 * Warn if API version 11 compatibility is requested
534
Miklos Szeredi9c2ccb42005-11-17 17:11:48 +00005352005-11-17 Miklos Szeredi <miklos@szeredi.hu>
536
537 * More FreeBSD merge
538
Miklos Szeredi832ee442005-11-18 21:02:36 +0000539 * fusermount: don't allow mountpoints with '\n', '\t', or '\\' in
540 them, because it corrupts /etc/mtab. Found by Thomas Biege
Miklos Szeredibac4c772005-11-23 13:35:54 +0000541 CVE-2005-3531
Miklos Szeredi832ee442005-11-18 21:02:36 +0000542
543 * libfuse: don't use system() to invoke 'fusermount -u ...'
544 because it breaks mountpoints with spaces in them into multiple
545 arguments
546
Miklos Szeredib3f99722005-11-16 13:00:24 +00005472005-11-16 Miklos Szeredi <miklos@szeredi.hu>
548
549 * Merge library part of FreeBSD port. Patch by Csaba Henk
550
Miklos Szeredi3a770472005-11-11 21:32:42 +00005512005-11-11 Miklos Szeredi <miklos@szeredi.hu>
552
553 * Use 64bit type for file handle, so the full range supported by
554 the kernel interface is available to applications
555
Miklos Szeredibcc53852005-11-10 09:54:41 +00005562005-11-10 Miklos Szeredi <miklos@szeredi.hu>
557
558 * Moved mountpoint argument checking from fuse_parse_cmdline() to
559 fuse_mount() in preparation to FreeBSD merge.
560
Miklos Szeredi4ec06812005-11-08 13:04:27 +00005612005-11-08 Miklos Szeredi <miklos@szeredi.hu>
562
563 * Remove unneeded close() from fuse_teardown(). Spotted by Csaba
564 Henk.
565
Miklos Szeredic706ad92005-11-07 15:30:48 +00005662005-11-07 Miklos Szeredi <miklos@szeredi.hu>
567
568 * Make the statfs change backwards compatible.
569
Miklos Szeredi52cb09d2005-11-07 11:59:00 +00005702005-11-06 Miklos Szeredi <miklos@szeredi.hu>
571
572 * Change ->statfs() method to use 'struct statvfs' instead of
573 'struct statfs'. This makes the API more portable since statvfs()
574 is defined by POSIX.
575
Miklos Szeredif7eec032005-10-28 13:09:50 +00005762005-10-28 Miklos Szeredi <miklos@szeredi.hu>
577
578 * Add fgetattr() method, which currently will only be called after
579 a successful call to a create() method.
580
Miklos Szeredib0b13d12005-10-26 12:53:25 +00005812005-10-26 Miklos Szeredi <miklos@szeredi.hu>
582
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000583 * Change kernel ABI version to 7.3
584
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000585 * Add ACCESS operation. This is called from the access() system
Miklos Szeredid9079a72005-10-26 15:29:06 +0000586 call if 'default_permissions' mount option is not given, and is
587 not called on kernels 2.4.*
Miklos Szeredib0b13d12005-10-26 12:53:25 +0000588
Miklos Szeredid9079a72005-10-26 15:29:06 +0000589 * Add atomic CREATE+OPEN operation. This will only work with
590 2.6.15 (presumably) or later Linux kernels.
591
Miklos Szeredi11509ce2005-10-26 16:04:04 +0000592 * Add ftruncate() method. This will only work with 2.6.15
593 (presumably) or later Linux kernels.
594
595 * Fix kernel module compile if kernel source and build directories
596 differ. Report and initial patch by John Eastman
597
Miklos Szeredic4c12ae2005-10-20 14:48:50 +00005982005-10-18 Miklos Szeredi <miklos@szeredi.hu>
599
600 * lib: optimize buffer reallocation in fill_dir.
601
Miklos Szeredic9daeb12005-10-17 10:19:21 +00006022005-10-17 Miklos Szeredi <miklos@szeredi.hu>
603
604 * Released 2.4.1
605
Miklos Szeredif412d072005-10-14 21:24:32 +00006062005-10-14 Miklos Szeredi <miklos@szeredi.hu>
607
Miklos Szeredi062f0e52005-10-14 21:28:21 +0000608 * libfuse: add debug for write result (by Shaun Jackman) and
609 warnings for too large read/write result
Miklos Szeredif412d072005-10-14 21:24:32 +0000610
Miklos Szeredib75d4b92005-10-11 10:12:08 +00006112005-10-11 Miklos Szeredi <miklos@szeredi.hu>
612
613 * Spelling fixes, thanks to Ioannis Barkas
614
Miklos Szeredibaab5872005-10-10 08:41:14 +00006152005-10-10 Miklos Szeredi <miklos@szeredi.hu>
616
617 * fuse_common.h: use extern "C". Thanks to Valient Gough for the
618 patch
619
Miklos Szeredi4f5df5e2005-10-07 12:39:58 +00006202005-10-07 Miklos Szeredi <miklos@szeredi.hu>
621
622 * highlevel-lib: init() and destroy() methods didn't have an
623 initialized fuse_context. Bug reported by Tim Stoakes
624
Miklos Szeredif2491122005-10-04 10:10:41 +00006252005-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi83f253e2005-10-04 05:56:01 +0000626
627 * Released 2.4.0
628
Miklos Szeredi836ab712005-10-03 14:11:59 +00006292005-10-03 Miklos Szeredi <miklos@szeredi.hu>
630
631 * Add documentation to fuse_lowlevel.h
632
633 * API cleanups:
634
635 * Remove definitions of unused FATTR_CTIME / FUSE_SET_ATTR_CTIME
636
637 * Move fuse_mount() and fuse_unmount() to fuse_common.h
638
639 * Change the return type of fuse_reply_none() from int to void.
640
Miklos Szerediaf138742005-09-30 08:49:59 +00006412005-09-30 Miklos Szeredi <miklos@szeredi.hu>
642
643 * kernel: NFS exporting leaked dentries. Bug found and fixed by
644 Akshat Aranya.
645
Miklos Szeredidb016e02005-09-29 10:06:27 +00006462005-09-29 Miklos Szeredi <miklos@szeredi.hu>
647
648 * fusermount: fix error message, when unable to open /dev/fuse.
649 Report by Balázs Pozsár
650
Miklos Szeredi35200932005-09-28 14:50:49 +00006512005-09-28 Miklos Szeredi <miklos@szeredi.hu>
652
653 * UClibc fixes from Christian Magnusson
654
Miklos Szeredi8eddf642005-09-27 08:58:26 +00006552005-09-27 Miklos Szeredi <miklos@szeredi.hu>
656
657 * Added NAME="%k" to util/udev.rules. Fix by Mattias Wadman.
658
Miklos Szerediedec95c2005-09-26 10:22:22 +00006592005-09-26 Miklos Szeredi <miklos@szeredi.hu>
660
Miklos Szeredi39851ac2005-09-26 11:17:50 +0000661 * Released 2.4.0-rc1
662
6632005-09-26 Miklos Szeredi <miklos@szeredi.hu>
664
Miklos Szerediedec95c2005-09-26 10:22:22 +0000665 * fusermount: allow user umount in the case when /etc/mtab is a
666 symlink to /proc/mounts. Reported by Balázs Pozsár.
667
Miklos Szeredi6becf0b2005-09-23 11:25:28 +00006682005-09-23 Miklos Szeredi <miklos@szeredi.hu>
669
Miklos Szeredi8722dd22005-09-23 13:34:44 +0000670 * Check for special node ID values in lookup and creation
Miklos Szeredi6becf0b2005-09-23 11:25:28 +0000671
Miklos Szeredif45f3c12005-09-22 15:14:27 +00006722005-09-22 Miklos Szeredi <miklos@szeredi.hu>
673
674 * Slight optimization in returning EINVAL error in case of an open
675 with O_DIRECT flag.
676
Miklos Szeredi670d07a2005-09-20 11:36:32 +00006772005-09-20 Miklos Szeredi <miklos@szeredi.hu>
678
679 * Remove '--enable-auto-modprobe' configure flag. Module
680 auto-loading is now handled by the kernel.
681
Miklos Szeredid51fca12005-09-15 12:51:00 +00006822005-09-15 Miklos Szeredi <miklos@szeredi.hu>
683
684 * Install UDEV rule file, so /dev/fuse is created with mode 0666.
685 Help from Jens M. Noedler.
686
Miklos Szeredi7e7530d2005-09-14 15:20:26 +00006872005-09-14 Miklos Szeredi <miklos@szeredi.hu>
688
689 * Add memory cleanup on thread exit
690
Miklos Szeredid7ea8cf2005-09-13 12:53:58 +00006912005-09-13 Miklos Szeredi <miklos@szeredi.hu>
692
693 * Set umask to zero in fusexmp and fusexmp_fh, so that
694 files/directories are created with the requested mode.
695
Miklos Szeredi0d41f2f2005-09-12 16:40:26 +00006962005-09-12 Miklos Szeredi <miklos@szeredi.hu>
697
698 * Don't ignore read error in multithreaded loop
699
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +00007002005-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000701
Miklos Szeredi2277ecc2005-09-08 15:34:44 +0000702 * Released 2.4.0-pre2
703
7042005-09-08 Miklos Szeredi <miklos@szeredi.hu>
705
Miklos Szeredifcf9f8d2005-09-08 14:28:54 +0000706 * Revert lock and access operations. Postpone these until 2.5.
707
7082005-09-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi56487812005-09-02 13:05:06 +0000709
710 * Fix compile warning on 2.6.13 and later
711
Miklos Szeredi3b9e53f2005-09-02 16:04:48 +0000712 * Fix compilation on old kernels
Miklos Szeredi0716de02005-09-02 14:56:09 +0000713
Miklos Szeredi77ccf652005-08-19 14:40:27 +00007142005-08-19 Miklos Szeredi <miklos@szeredi.hu>
715
716 * lib: always refresh directory contents after rewinddir() to
717 conform to SUS. Bug found by John Muir.
718
Miklos Szeredia1482422005-08-14 23:00:27 +00007192005-08-15 Miklos Szeredi <miklos@szeredi.hu>
720
Miklos Szeredic43f9412005-08-15 15:10:48 +0000721 * Released 2.4.0-pre1
722
7232005-08-14 Miklos Szeredi <miklos@szeredi.hu>
724
Miklos Szeredia1482422005-08-14 23:00:27 +0000725 * lib: cleaned up (or messed up, depending on your POV) the low
726 level library API. Hopefully this is close to the final form.
727
Miklos Szeredicc1b97c2005-08-05 10:35:26 +00007282005-08-05 Miklos Szeredi <miklos@szeredi.hu>
729
730 * fusermount: don't allow empty mountpoint argument, which defeats
731 automatic umounting in fuse_main(). Bugreport by Václav Jůza
732
Miklos Szeredif6e0ec62005-08-03 09:11:06 +00007332005-08-03 Miklos Szeredi <miklos@szeredi.hu>
734
735 * fix warnings in fuse.h and fuse_lowlevel.h if -Wshadow compiler
736 option is used (Paul Alfille).
737
Miklos Szeredi6c0209a2005-08-02 13:31:28 +00007382005-08-02 Miklos Szeredi <miklos@szeredi.hu>
739
740 * highlevel-lib: added mount options "attr_timeout" and
741 "entry_timeout". These options control the length of time file
742 attributes and entries (names) are cached. Both default to 1.0
743 second.
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000744
745 * kernel: correctly handle zero timeout for attributes and entries
746
Miklos Szeredi56a61f02005-08-01 10:42:25 +00007472005-08-01 Miklos Szeredi <miklos@szeredi.hu>
748
749 * Added missing symbols to versionscript (Joshua J. Berry)
750
Miklos Szeredie77cc072005-08-01 11:58:51 +0000751 * kernel: implement two flags, open can set: 'direct_io' and
752 'keep_cache'. These correspond exactly to mount options
753 'direct_io' and 'kernel_cache', but allow a per-open setting.
754
755 * Move 'direct_io' and 'kernel_cache' mount option handling to
756 userspace. For both mount options, if the option is given, then
757 the respective open flag is set, otherwise the open flag is left
758 unmodified (so the filesystem can set it).
Miklos Szeredi7b28eae2005-08-01 12:48:30 +0000759
Miklos Szeredi31066bb2005-08-01 14:49:31 +0000760 * lib (highlevel): make open method optional
Miklos Szeredif6e0ec62005-08-03 09:11:06 +0000761
Miklos Szeredi2aaf24a2005-07-28 11:59:41 +00007622005-07-28 Miklos Szeredi <miklos@szeredi.hu>
763
764 * kernel: invalidate attributes for read/readdir/readlink
765 operations
766
767 * kernel: detect newer UML kernels
768
Miklos Szeredibfb99462005-07-26 11:07:55 +00007692005-07-26 Miklos Szeredi <miklos@szeredi.hu>
770
771 * Make the installation path of fuse.ko and mount.fuse
772 configurable through INSTALL_MOD_PATH and MOUNT_FUSE_PATH
773 environment variables. Requirement and help from Csaba Henk.
774
Miklos Szeredi8d4d1b82005-07-22 11:58:47 +00007752005-07-22 Miklos Szeredi <miklos@szeredi.hu>
776
777 * Fix bug, that causes filesystem requests to hang when unique
778 request counter becomes negative. This happens after
779 2,147,483,648 operations, so most people won't care. Thanks to
780 Franco Broi for the report and testing.
781
Miklos Szeredi9b813af2005-07-21 07:59:37 +00007822005-07-21 Miklos Szeredi <miklos@szeredi.hu>
783
784 * Don't change mtime/ctime/atime to local time on read/write.
785 Bug reported by Ben Grimm
786
787 * Install fuse_common.h and fuse_lowlevel.h. Report by Christian
788 Magnusson
789
790 * fusermount: use getopt_long() for option parsing. It allows the
791 use of '--' to stop argument scanning, so fusermount can now
792 operate on directories whose names begin with a '-'. Patch by
793 Adam Connell
794
Miklos Szeredibd10a7b2005-07-15 09:59:59 +00007952005-07-15 Miklos Szeredi <miklos@szeredi.hu>
796
797 * fusermount: add '-v', '--version' and '--help' options
798
799 * add inode based API
800
Miklos Szeredi2482fdb2005-07-12 13:23:53 +00008012005-07-12 Miklos Szeredi <miklos@szeredi.hu>
802
803 * lib: don't block signals in worker threads. Problem noticed by
804 Usarin Heininga
805
Miklos Szeredic902a852005-07-07 12:35:37 +00008062005-07-07 Miklos Szeredi <miklos@szeredi.hu>
807
808 * lib: don't allow both 'allow_other' and 'allow_root' options to
809 be given
810
Miklos Szeredi437d8112005-07-06 09:14:20 +00008112005-07-06 Miklos Szeredi <miklos@szeredi.hu>
812
813 * fusermount: check if mountpoint is empty (only '.' and '..' for
814 directories, and size = 0 for regular files). If "nonempty"
815 option is given, omit this check. This is useful, so users don't
816 accidentally hide data (e.g. from backup programs). Thanks to
817 Frank van Maarseveen for pointing this out.
818
819 * kernel: check if mandatory mount options ('fd', 'rootmode',
820 'user_id', 'group_id') are all given
821
Miklos Szeredi340d21f2005-07-06 10:07:52 +0000822 * lib: simplify 'readdir_ino' handling
823
Miklos Szeredie331c4b2005-07-06 13:34:02 +0000824 * lib: add mount options 'umask=M', 'uid=N', 'gid=N'
825
Miklos Szeredibb9f5172005-07-03 18:03:11 +00008262005-07-03 Miklos Szeredi <miklos@szeredi.hu>
827
828 * kernel: clean up 'direct_io' code
829
Miklos Szeredie1bcece2005-06-28 10:37:06 +00008302005-06-28 Miklos Szeredi <miklos@szeredi.hu>
831
832 * Add 'mount.fuse' written by Petr Klima
833
Miklos Szeredi866826d2005-06-28 12:22:57 +0000834 * '/dev/fuse' is created by 'make install' if does not yet exist
835
Miklos Szeredi129ef8f2005-06-20 13:48:42 +00008362005-06-20 Miklos Szeredi <miklos@szeredi.hu>
837
838 * Fix UCLIBC compile error. Patch by Christian Magnusson
839
Miklos Szerediec12fad2005-06-08 10:26:34 +00008402005-06-08 Miklos Szeredi <miklos@szeredi.hu>
841
842 * Enable the auto-loading of the module via access to the
843 corresponding device file. Patch by Takashi Iwai.
844
Miklos Szeredidaa690e2005-06-08 10:41:36 +0000845 * Allow mounting a regular file (over a regular file) for
846 unprivleged users.
847
Miklos Szeredi7495abf2005-06-08 11:01:17 +0000848 * Do not create temporary device file. Require "/dev/fuse" to
849 exist, and be readable/writable by the mounting user.
850
Miklos Szeredi46960ce2005-06-02 09:05:00 +00008512005-06-02 Miklos Szeredi <miklos@szeredi.hu>
852
Miklos Szeredi56478552005-06-02 10:29:00 +0000853 * Released 2.3.0
854
8552005-06-02 Miklos Szeredi <miklos@szeredi.hu>
856
Miklos Szeredi46960ce2005-06-02 09:05:00 +0000857 * Fix serious information leak: if the filesystem returns a short
858 byte count to a read request, and there are non-zero number of
859 pages which are not filled at all, these pages will not be zeroed.
860 Hence the user can read out previous memory contents. Found by
861 Sven Tantau.
862
Miklos Szeredi33be22d2005-05-27 09:12:43 +00008632005-05-27 Miklos Szeredi <miklos@szeredi.hu>
864
865 * Add "readdir_ino" mount option, which tries to fill in the d_ino
866 field in struct dirent. This mount option is ignored if "use_ino"
867 is used. It helps some programs (e.g. 'pwd' used over NFS from a
868 non-Linux OS). Patch by David Shaw.
869
Miklos Szeredif94e0102005-05-12 14:56:34 +00008702005-05-12 Miklos Szeredi <miklos@szeredi.hu>
871
Miklos Szeredieb009c42005-05-12 15:01:17 +0000872 * Released 2.3-rc1
873
8742005-05-12 Miklos Szeredi <miklos@szeredi.hu>
875
Miklos Szeredif94e0102005-05-12 14:56:34 +0000876 * File save in krusader and other editors doesn't work with sshfs,
877 because open() is interrupted by a periodic signal, and open()
878 restarts forever, without any progress. This could just be fixed
879 in open(), but the problem is more generic: if signals are
880 received more often than the filesystem can get the request to
881 userspace, it will never finish. This is probably only a
882 theoretical problem, nevertheless I'm removing the possibility to
883 interrupt requests with anything other than SIGKILL, even before
884 being sent to userspace. Bugreport by Eduard Czimbalmos.
885
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +00008862005-05-09 Miklos Szeredi <miklos@szeredi.hu>
887
Miklos Szeredic2a33ee2005-05-09 13:29:17 +0000888 * libfuse: add "tree_lock" rwlock, that is locked for write in
889 rename, unlink and rmdir, and locked for read in all other
890 operations. This should fix the rename/release race reported by
891 Valient Gough and others. The solution is very coarse, a finer
892 grained locking scheme could be implemented, but it would be much
893 more complex. Let's see whether this is good enough.
894
8952005-05-09 Miklos Szeredi <miklos@szeredi.hu>
896
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000897 * Released 2.3-pre7
898
Miklos Szeredi38009022005-05-08 19:47:22 +00008992005-05-08 Miklos Szeredi <miklos@szeredi.hu>
900
901 * Better fix for out of order FORGET messages. Now the
902 LOOKUP/FORGET messages are balanced exactly (one FORGET can
903 balance many lookups), so the order no longer matters. This
Miklos Szeredi0b9a06e2005-05-09 09:05:49 +0000904 changes the kernel ABI slightly, but the library remains backward
Miklos Szeredi38009022005-05-08 19:47:22 +0000905 compatible.
906
Miklos Szeredid0cf1fb2005-05-06 10:10:38 +00009072005-05-06 Miklos Szeredi <miklos@szeredi.hu>
908
909 * Fix abort for out of order FORGET messages. Again. Spotted by
910 Franco Broi again. Sorry :)
911
Miklos Szeredi9372ffd2005-04-29 08:03:24 +00009122005-04-29 Miklos Szeredi <miklos@szeredi.hu>
913
Miklos Szeredicb6413a2005-04-29 08:16:20 +0000914 * Released 2.3-pre6
915
9162005-04-29 Miklos Szeredi <miklos@szeredi.hu>
917
Miklos Szeredi9372ffd2005-04-29 08:03:24 +0000918 * Make fusermount work with fuse kernel modules not yet supporting
919 the "group_id" option (added for the purpose of stricter
920 permission checking).
921
Miklos Szeredi9c1b68d2005-04-28 09:55:09 +00009222005-04-28 Miklos Szeredi <miklos@szeredi.hu>
923
924 * Check for hard-linked directories in lookup. This could cause
925 problems in the VFS, which assumes that such objects never exist.
926
927 * Make checking of permission for other users more strict. Now
928 the same privilege is required for the mount owner as for ptrace
929 on the process performing the filesystem operation.
Miklos Szeredi21019c92005-05-09 11:22:41 +0000930
Miklos Szeredi3efcb562005-04-23 13:34:29 +00009312005-04-23 Miklos Szeredi <miklos@szeredi.hu>
932
933 * Released 2.3-pre5
934
Miklos Szeredid001bf92005-04-22 07:54:11 +00009352005-04-22 Miklos Szeredi <miklos@szeredi.hu>
936
937 * Add -msoft-float to kernel module compile flags for 2.4.X. This
938 is needed on certain architectures. Report from Chris Kirby
939
940 * Fix buggy behavior of open(..., O_CREAT|O_EXCL) if interrupted.
941 Reported by David Shaw
942
Miklos Szeredi0111f9d2005-04-22 12:04:55 +0000943 * Remove "allow_root" option from kernel module, and implement
944 it's functionality in the library
945
946 * Fix Oops caused by premature release of fuse_conn. Clean up
947 related code, to be more readable
948
Miklos Szeredif9137452005-04-23 10:59:44 +0000949 * Sendfile should not use page cache if "direct_io" mount option
950 is given
951
Miklos Szeredib7640d22005-04-08 15:15:28 +00009522005-04-08 Miklos Szeredi <miklos@szeredi.hu>
953
954 * Fix Oops in case of nfs export. Spotted by David Shaw
955
Miklos Szeredi89814a12005-04-08 16:39:09 +0000956 * Fix another Oops in case of write over nfs with direct_io turned
957 on. Again spotted by David Shaw
958
Miklos Szerediab974562005-04-07 15:40:21 +00009592005-04-07 Miklos Szeredi <miklos@szeredi.hu>
960
Miklos Szeredi432d6182005-04-07 15:56:13 +0000961 * Released 2.3-pre4
962
9632005-04-07 Miklos Szeredi <miklos@szeredi.hu>
964
Miklos Szerediab974562005-04-07 15:40:21 +0000965 * lib: finalized new readdir() interface, which now supersedes the
966 getdir() method.
967
Miklos Szeredi30e093a2005-04-03 17:44:54 +00009682005-04-03 Miklos Szeredi <miklos@szeredi.hu>
969
970 * Released 2.3-pre3
971
9722005-04-03 Miklos Szeredi <miklos@szeredi.hu>
973
974 * Implement backward compatibility with version 5 kernel ABI
975
Miklos Szeredi18fce982005-04-01 21:07:35 +00009762005-04-01 Miklos Szeredi <miklos@szeredi.hu>
977
978 * Released 2.3-pre2
979
9802005-04-01 Miklos Szeredi <miklos@szeredi.hu>
981
982 * kernel: fix dirent offset handling
983
984 * lib: add readdir and releasedir methods
985
986 * lib: use fh field of fuse_file_info in opendir, readdir,
987 releasedir and fsyncdir methods
988
989 * lib: check kernel API version and bail out of it's old. This
990 will be properly fixed in the next release
991
9922005-03-31 Miklos Szeredi <miklos@szeredi.hu>
993
994 * Released 2.3-pre1
995
Miklos Szeredieab72ef2005-03-31 19:59:12 +00009962005-03-31 Miklos Szeredi <miklos@szeredi.hu>
997
998 * kernel API: add padding to structures, so 64bit and 32bit
999 compiler will return the same size
1000
1001 * kernel API: add offset field to fuse_dirent. This will allow
1002 more sophisticated readdir interface for userspace
1003
1004 * kernel API: change major number to 6
1005
1006 * kernel: fix warnings on 64bit archs
1007
1008 * kernel: in case of API version mismatch, return ECONNREFUSED
1009
Miklos Szeredi407e6a72005-03-25 12:19:43 +000010102005-03-24 Miklos Szeredi <miklos@szeredi.hu>
1011
1012 * kernel: trivial cleanups
1013
Miklos Szeredi4283ee72005-03-21 12:09:04 +000010142005-03-21 Miklos Szeredi <miklos@szeredi.hu>
1015
1016 * Add fsyncdir() operation
1017
Miklos Szeredid17da462005-03-21 11:47:04 +000010182005-03-19 Miklos Szeredi <miklos@szeredi.hu>
1019
1020 * kernel: add locking to background list (fixes previous fix)
1021
10222005-03-18 Miklos Szeredi <miklos@szeredi.hu>
1023
1024 * kernel: fix bug which could cause leave busy inodes after
1025 unmount, and Oops.
1026
10272005-03-08 Miklos Szeredi <miklos@szeredi.hu>
1028
1029 * examples: add -lpthread to link flags to work around valgrind
1030 quirk
1031
1032 * lib: don't exit threads, so cancelation doesn't cause segfault
1033
Miklos Szeredi31fa41c2005-03-04 17:28:51 +000010342005-03-04 Miklos Szeredi <miklos@szeredi.hu>
1035
1036 * kernel: fix nasty bug which could cause an Oops under certain
1037 situations. Found by Magnus Johansson
1038
Miklos Szeredif43f0632005-02-28 11:46:56 +000010392005-02-28 Miklos Szeredi <miklos@szeredi.hu>
1040
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001041 * libfuse: added opendir() method. This can be used in case
Miklos Szeredif43f0632005-02-28 11:46:56 +00001042 permission checking in getdir() is too late. Thanks to Usarin
1043 Heininga for pointing out this deficiency
1044
Miklos Szeredi159bd7e2005-02-28 17:32:16 +00001045 * libfuse: added init() and destroy() methods to fuse_operations
1046
Miklos Szeredif43f0632005-02-28 11:46:56 +00001047 * kernel: llseek() method for files and directories made explicit
1048
1049 * kernel: fixed inode leak in NFS export in case of nodeid
1050 wrapping
1051
Miklos Szeredied3c97c2005-02-15 17:04:50 +000010522005-02-15 Miklos Szeredi <miklos@szeredi.hu>
1053
1054 * libfuse: clean up some unitialized memory found with valgrind
1055
Miklos Szeredi47c52982005-02-23 09:27:38 +00001056 * Add -lpthread to Libs in fuse.pc. Valgrind seems to need an
1057 explicitly linked libpthread for applications
1058
Miklos Szeredia7169412005-02-10 07:35:05 +000010592005-02-10 Miklos Szeredi <miklos@szeredi.hu>
1060
1061 * fusermount: set umask, otherwise /etc/mtab will have
1062 unpredictable permission. Spotted by Jindrich Kolorenc
1063
1064 * fusermount: set owner and group of /etc/mtab to original values
1065 on unmount
Miklos Szeredi830ef702005-02-10 19:39:34 +00001066
1067 * libfuse: add 'use_ino' option to help. Patch by Valient Gough
Miklos Szeredi21019c92005-05-09 11:22:41 +00001068
Miklos Szeredib92d9782005-02-07 16:10:49 +000010692005-02-07 Miklos Szeredi <miklos@szeredi.hu>
1070
1071 * Cleaned up directory reading (temporary file is not used)
1072
Miklos Szerediff30a6c2005-02-02 10:53:59 +000010732005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1074
Miklos Szeredi7ed2e5d2005-02-02 13:31:14 +00001075 * Released 2.2
1076
10772005-02-02 Miklos Szeredi <miklos@szeredi.hu>
1078
Miklos Szerediff30a6c2005-02-02 10:53:59 +00001079 * Fix possible race when operation is interrupted
1080
Miklos Szeredi7a983952005-01-28 09:58:19 +000010812005-01-28 Miklos Szeredi <miklos@szeredi.hu>
1082
Miklos Szeredie5183742005-02-02 11:14:04 +00001083 * Fix compilation on 2.6.7
Miklos Szeredi7a983952005-01-28 09:58:19 +00001084
Miklos Szeredied6b5dd2005-01-26 17:07:59 +000010852005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1086
Miklos Szeredid48d5f72005-01-26 20:43:41 +00001087 * Released 2.2-pre6
1088
10892005-01-26 Miklos Szeredi <miklos@szeredi.hu>
1090
Miklos Szeredied6b5dd2005-01-26 17:07:59 +00001091 * Fix bug in link() operation which caused the wrong path to be
1092 passed as the first argument. Found by Anton Altaparmakov
1093
Miklos Szeredi01fd89c2005-01-21 11:18:35 +000010942005-01-21 Miklos Szeredi <miklos@szeredi.hu>
1095
1096 * LIB: fix double reply in readdir operation
1097
Miklos Szeredi773d4ae2005-01-21 16:09:08 +00001098 * fusermount: fix uid checking bug. Patch by Adam Connell
1099
Miklos Szeredi1e1cddf2005-02-02 10:15:36 +00001100 * KERNEL: fix compile on various RedHat patched 2.4 kernels.
Miklos Szeredi57762852005-01-21 16:46:58 +00001101 Patch by Keshava Gowda
1102
Miklos Szeredi64074142005-01-20 08:48:11 +000011032005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1104
Miklos Szeredi092b50b2005-01-20 18:05:07 +00001105 * KERNEL: provide correct llseek semantics for fuse device (fixes
1106 a bug on Progeny 2.4.20 kernel). Reported by Valient Gough
1107
11082005-01-20 Miklos Szeredi <miklos@szeredi.hu>
1109
Miklos Szeredi64074142005-01-20 08:48:11 +00001110 * Released 2.2-pre5 (matches kernel 2.6.11-rc1-mm2)
1111
Miklos Szeredi1adb2272005-01-18 21:19:58 +000011122005-01-18 Miklos Szeredi <miklos@szeredi.hu>
1113
1114 * KERNEL ABI: remove GETDIR operation, and add OPENDIR, READDIR
1115 and RELEASEDIR. This ends the ugly hack of passing a file
1116 descriptor to the kernel, and actually makes the code simpler.
1117
Miklos Szeredi7db35c02005-01-17 09:46:28 +000011182005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1119
Miklos Szeredic2e960e2005-01-17 13:05:21 +00001120 * Released 2.2-pre4
1121
11222005-01-17 Miklos Szeredi <miklos@szeredi.hu>
1123
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001124 * fusermount: remove capability setting, which was the cause of
1125 problems for some users. It seems that FS related capabilities
Miklos Szeredie5183742005-02-02 11:14:04 +00001126 are removed by setfsuid(), so this isn't even needed.
Miklos Szeredi7db35c02005-01-17 09:46:28 +00001127
Miklos Szeredidbe0f652005-01-15 14:32:56 +000011282005-01-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001129
Miklos Szeredidbe0f652005-01-15 14:32:56 +00001130 * fix compilation on 2.4 kernels (reported by Valient Gough)
1131
1132 * fix failure to unmount bug (found by David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001133
Miklos Szeredi5ef2a9b2005-01-15 09:42:01 +00001134 * fusermount: improve parsing of /etc/fuse.conf
1135
11362005-01-13 Miklos Szeredi <miklos@szeredi.hu>
1137
Miklos Szeredi9ed69ba2005-01-13 12:11:49 +00001138 * Remove 'mount_max' and 'user_allow_other' module options. These
1139 are now checked by fusermount, and can be set in /etc/fuse.conf
1140
1141 * KERNEL: change check for fsid == 0 to capable(CAP_DAC_OVERRIDE)
1142
Miklos Szeredi81394522005-01-11 14:24:18 +000011432005-01-11 Miklos Szeredi <miklos@szeredi.hu>
1144
1145 * KERNEL: fix possible inode allocation problem, where
1146 sizeof(struct inode) is not aligned (found by Mike Waychison)
1147
1148 * KERNEL: use new follow_link/put_link methods
1149
1150 * KERNEL: cosmetic fixes
1151
Miklos Szeredic6ee9fd2005-01-10 09:53:04 +000011522005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1153
1154 * Released 2.2-pre3
1155
11562005-01-10 Miklos Szeredi <miklos@szeredi.hu>
1157
1158 * Add missing code that was accidently left out
1159
Miklos Szeredi8c7da232005-01-09 12:27:41 +000011602005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1161
Miklos Szeredi8d775f72005-01-09 20:22:53 +00001162 * Released 2.2-pre2
1163
11642005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1165
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +00001166 * Change "uid" mount option to "user_id" to avoid confusion with a
1167 mount option "uid" commonly used by many filesystems
1168
11692005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1170
Miklos Szeredi8c7da232005-01-09 12:27:41 +00001171 * Released 2.2-pre1
1172
11732005-01-09 Miklos Szeredi <miklos@szeredi.hu>
1174
1175 * If FUSE is configured in the kernel, don't build it by default
1176
Miklos Szeredi2a927272005-01-07 11:14:15 +000011772005-01-07 Miklos Szeredi <miklos@szeredi.hu>
1178
1179 * Compile fix by Christian Magnusson
1180
Miklos Szeredib6220192005-01-05 16:19:10 +000011812005-01-05 Miklos Szeredi <miklos@szeredi.hu>
1182
1183 * Fix compilation for 2.6.{0-5} kernels
1184
Miklos Szeredi0f62d722005-01-04 12:45:54 +000011852005-01-04 Miklos Szeredi <miklos@szeredi.hu>
1186
1187 * KERNEL: if request is interrupted, still keep reference to used
1188 inode(s) and file, so that FORGET and RELEASE are not sent until
1189 userspace finishes the request.
1190
Miklos Szeredi3f0005f2005-01-04 19:24:31 +00001191 * remove /{sys,proc}/fs/fuse/version, and instead add an INIT
1192 request with the same information, which is more flexible,
1193 simpler, works on embedded systems.
1194
Miklos Szeredi0f62d722005-01-04 12:45:54 +000011952004-12-16 Miklos Szeredi <miklos@szeredi.hu>
1196
1197 * KERNEL ABI: update interface to make it independent of type
1198 sizes. This will help on 64 bit architectures which can run
1199 legacy 32 bit applications.
1200
1201 * KERNEL ABI: add "len" field to request headers. This will allow
1202 sending/receiving requests in multiple chunks.
1203
1204 * KERNEL: handle file type change more intelligently
1205
1206 * LIB: "-o debug" option should disable backgrounding (fix by
1207 Fabien Reygrobellet)
1208
Miklos Szeredi0fcfa032004-12-13 15:22:28 +000012092004-12-13 Miklos Szeredi <miklos@szeredi.hu>
1210
1211 * KERNEL: invalidate dentry/attributes if interrupted request
1212 could leave filesystem in an unknown state.
1213
Miklos Szeredie56818b2004-12-12 11:45:24 +000012142004-12-12 Miklos Szeredi <miklos@szeredi.hu>
1215
1216 * KERNEL: lots of cleanups related to avoiding possible deadlocks.
1217 These will cause some regressions, but stability is considered
1218 more important. If any of these features turns out to be
1219 important, it can be readded with the deadlock problems addressed.
Miklos Szeredie5183742005-02-02 11:14:04 +00001220
Miklos Szeredie56818b2004-12-12 11:45:24 +00001221 * Make all requests interruptible (only with SIGKILL currently).
1222 This can be used to break any deadlock produced by the userspace
1223 filesystem accessing it's own exported files. The RELEASE request
1224 is special, because if it's interrupted before sending it to
1225 userspace it is still sent, but the reply is not awaited.
1226
1227 * If request is interrupted before being sent to userspace, and if
1228 it hasn't yet got any side effects, it is always restarted,
1229 regardless of the SA_RESTART flag. This makes these interruptions
1230 transparent to the process.
1231
1232 * Remove shared-writable mmap support, which was prone to an
1233 out-of-memory deadlock situation
1234
1235 * Remove INVALIDATE userspace initiated request
1236
1237 * Make readpages() synchronous. Asynchronous requests are
1238 deadlock prone, since they cannot be interrupted.
1239
1240 * Add readv/writev support to fuse device operations
1241
1242 * Remove some printks, which userspace FS can use for a DoS
1243 against syslog
1244
1245 * Remove 'large_read' mount option from 2.6 in kernel, check it in
1246 fusermount instead
1247
1248 * LIB: improve compatibility with a fuse.h header installed in
1249 ${prefix}/include which in turn includes the real header.
1250
1251 * LIB: improve compatibility by defining fuse_main() (which is now
1252 not used), so old configure scripts find it.
1253
Miklos Szeredi0adcc6f2004-12-10 11:55:25 +000012542004-12-10 Miklos Szeredi <miklos@szeredi.hu>
1255
1256 * When mounting on a subdirectory of / don't duplicate slashes at
1257 the beggining of path (spotted by David Shaw)
1258
Miklos Szeredi80a0c3c2004-12-09 17:30:59 +000012592004-12-09 Miklos Szeredi <miklos@szeredi.hu>
1260
1261 * Fix bug causing garbage in mount options (spotted by David Shaw)
1262
Miklos Szeredid59bb9d2004-12-07 10:04:24 +000012632004-12-07 Miklos Szeredi <miklos@szeredi.hu>
1264
1265 * Add 'writepage' flag to 'fuse_file_info'.
1266
1267 * More comments in fuse.h
1268
Miklos Szeredif458b8c2004-12-07 16:46:42 +00001269 * Get rid of double underscores
1270
Miklos Szeredi799993c2004-12-04 21:20:05 +000012712004-12-04 Miklos Szeredi <miklos@szeredi.hu>
1272
1273 * Add -D_FILE_OFFSET_BITS=64 to cflags provided by pkg-config
1274
1275 * helper.c: add -ho option, which only displays the options not
1276 the usage header. This can be used by filesystems which have
1277 their own options.
1278
Miklos Szeredi0b6a0ad2004-12-04 00:40:50 +000012792004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1280
1281 * Add source compatibility to 2.1 and 1.1 APIs. To select betwen
1282 versions simply define FUSE_USE_VERSION to 22, 21 or 11 before
1283 including the fuse header
1284
1285 * Add binary compatibility to 2.1 version of library with symbol
1286 versioning
1287
Miklos Szeredi3c7d41b2005-01-09 20:05:27 +000012882004-12-03 Miklos Szeredi <miklos@szeredi.hu>
1289
1290 * Released 2.1
1291
Miklos Szeredi039322d2004-12-01 18:39:12 +000012922004-12-01 Miklos Szeredi <miklos@szeredi.hu>
1293
1294 * kernel: clean up writing functions
1295
1296 * kernel: no allocation on write in direct_io mode
1297
Miklos Szeredib9b94cd2004-12-01 18:56:39 +00001298 * move linux/fuse.h to fuse_kernel.h
1299
Miklos Szeredi83a07442004-11-30 18:25:20 +000013002004-11-30 Miklos Szeredi <miklos@szeredi.hu>
1301
1302 * kernel: clean up reading functions
1303
Miklos Szeredi2defe5e2004-11-29 16:53:44 +000013042004-11-29 Miklos Szeredi <miklos@szeredi.hu>
1305
1306 * kernel: make readpage() uninterruptible
1307
Miklos Szeredi96dfad72004-11-30 00:00:02 +00001308 * kernel: check readonly filesystem flag in fuse_permission
1309
1310 * lib: don't die if version file not found and new style device
1311 exists
1312
1313 * lib: add '-r' option, which is short for '-o ro'
1314
1315 * fusermount: simplify device opening
1316
Miklos Szeredi2defe5e2004-11-29 16:53:44 +00001317 * kernel: when direct_io is turend on, copy data directly to
1318 destination without itermediate buffer. More efficient and safer,
1319 since no allocation is done.
1320
1321 * fusermount: fix warning if fuse module is not loaded
Miklos Szeredi162bcbb2004-11-29 23:43:44 +00001322
1323 * kernel: use /dev/fuse on 2.4 too
Miklos Szeredie5183742005-02-02 11:14:04 +00001324
Miklos Szeredifb28c5e2004-11-26 12:15:06 +000013252004-11-26 Miklos Szeredi <miklos@szeredi.hu>
1326
1327 * libfuse API change: open, read, write, flush, fsync and release
1328 are passed a 'struct fuse_file_info' pointer containing the open
1329 flags (open and release), and the file handle. Verion changed to
1330 3.0.
1331
Miklos Szeredia25d4c22004-11-23 22:32:16 +000013322004-11-23 Miklos Szeredi <miklos@szeredi.hu>
1333
1334 * More cleanups in the kernel
1335
1336 * The 10,229 charater device number has been assigned for FUSE
1337
1338 * Version file checking fix (reported by Christian Magnusson)
1339
1340 * fusermount: opening the fuse device now doesn't need /sys.
1341
1342 * Optimize reading by controlling the maximum readahead based on
1343 the 'max_read' mount option
1344
1345 * fixes for UCLIBC (Christian Magnusson)
1346
Miklos Szeredi13ed4822004-11-20 11:12:21 +000013472004-11-19 Miklos Szeredi <miklos@szeredi.hu>
1348
1349 * Cleaned up kernel in preparation for merge into mainline:
1350
1351 * Use /sys/fs/fuse/version instead of /proc/fs/fuse/version
1352
1353 * Use real device (/dev/fuse) instead of /proc/fs/fuse/dev
1354
1355 * __user annotations for sparse
1356
1357 * allocate individual pages instead of kmalloc in fuse_readdir,
1358 fuse_read and fuse_write.
1359
1360 * Fix NFS export in case "use_ino" mount option is given
1361
Miklos Szeredif3845c42004-11-20 11:18:34 +00001362 * Make libfuse and fusermount compatible with future versions
1363
1364 * fusermount: properly add mount options to /etc/mtab
1365
13662004-11-15 Miklos Szeredi <miklos@szeredi.hu>
1367
1368 * fusermount: do not resolve last component of mountpoint on if it
1369 is '.' or '..'. This new path resolvation is now done on mount as
1370 well as unmount. This enables relative paths to work on unmount.
1371
1372 * fusermount: parse common mount options like "ro", "rw", etc...
1373
1374 * Allow module params to be changed through sysfs
1375
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +000013762004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1377
1378 * Released 2.1-pre1
1379
13802004-11-14 Miklos Szeredi <miklos@szeredi.hu>
1381
1382 * Fix bug in fuse_readpages() causing Oops in certain situations.
1383 Bug found by Vincenzo Ciancia.
1384
1385 * Fix compilation with kernels versions > 2.6.9.
1386
Miklos Szeredi3a6ea062004-11-11 10:33:58 +000013872004-11-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001388
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001389 * Check kernel interface version in fusermount to prevent
1390 strangeness in case of mismatch.
Miklos Szeredi51ec1032004-11-10 11:52:26 +00001391
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001392 * No need to allocate fuse_conn until actual mount happens
1393
1394 * Fix potential race between umount and fuse_invalidate
1395
1396 * Check superblock of proc file in addition to inode number
1397
Miklos Szeredi08ddb8e2004-11-14 09:19:51 +00001398 * Fix race between request_send_noreply() and fuse_dev_release()
Miklos Szeredi3d60e762004-11-11 14:44:04 +00001399
Miklos Szeredi51ec1032004-11-10 11:52:26 +000014002004-11-10 Miklos Szeredi <miklos@szeredi.hu>
1401
1402 * Separate configure for the kernel directory
1403
Miklos Szeredi3a6ea062004-11-11 10:33:58 +00001404 * Don't allow write to return more than 'count'
1405
1406 * Extend kernel interface for future use
1407
Miklos Szeredi51ec1032004-11-10 11:52:26 +000014082004-11-09 Miklos Szeredi <miklos@szeredi.hu>
1409
1410 * Fix 'makeconf.sh' to use autoreconf if available
1411
Miklos Szeredi8fb48fe2004-11-08 14:48:52 +000014122004-11-08 Miklos Szeredi <miklos@szeredi.hu>
1413
Miklos Szeredid507c732004-11-08 17:32:25 +00001414 * Add ino argument to 'fuse_dirfil_t'. NOTE: This breaks source
1415 compatibility with earlier versions. To compile earier versions
1416 just add '-DFUSE_DIRFIL_COMPAT' compile flag or fix the source.
1417 Do not use the "use_ino" mount flag with filesystems compiled with
1418 FUSE_DIRFIL_COMPAT.
Miklos Szeredidb1c3652004-11-08 21:11:53 +00001419
1420 * Add pkg-config support. To compile a FUSE based filesystem you
1421 can do "gcc -Wall `pkg-config --cflags --libs fuse` myfs.c -o myfs"
1422 or similar. Note, that the PKG_CONFIG_PATH environment variable
1423 usually needs to be set to "/usr/local/lib/pkgconfig".
1424
1425 * fuse.h is now installed in ${prefix}/include/fuse/
Miklos Szeredie5183742005-02-02 11:14:04 +00001426
Miklos Szeredia13d9002004-11-02 17:32:03 +000014272004-11-02 Miklos Szeredi <miklos@szeredi.hu>
1428
1429 * Added "use_ino" mount option. This enables the filesystems to
1430 set the st_ino field on files
1431
Miklos Szeredib1ab8b52004-11-01 10:57:41 +000014322004-11-01 Miklos Szeredi <miklos@szeredi.hu>
1433
1434 * Fix compile problems with ancient (<=2.4.18) kernels (reported
1435 by Jeremy Smith)
1436
Miklos Szeredi874e3c12004-11-01 23:15:20 +00001437 * Add "allow_root" mount option. Patch by Yaroslav Rastrigin
1438
1439 * Clear the 'exited' flag when mail loop is finished
1440
Miklos Szeredie989f0d2004-10-28 20:24:58 +000014412004-10-28 Miklos Szeredi <miklos@szeredi.hu>
1442
1443 * Make xattr functions work under 2.6 (bug found by Vincenzo
1444 Ciancia)
1445
Miklos Szeredi95a2bfc2004-10-26 21:32:13 +000014462004-10-26 Miklos Szeredi <miklos@szeredi.hu>
1447
1448 * Reset request in fuse_flush() (bugreport by David Shaw)
1449
Miklos Szeredi5dc8a802004-10-21 09:35:10 +000014502004-10-21 Miklos Szeredi <miklos@szeredi.hu>
1451
Miklos Szeredi0e70aa72004-10-21 16:24:29 +00001452 * fuse_main() now does not exit on error, rather it returns an
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001453 error code
1454
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001455 * Exported __fuse_setup() and __fuse_teardown() functions, which
Miklos Szeredi5dc8a802004-10-21 09:35:10 +00001456 make it easier to implement a custom event loop.
1457
Miklos Szeredifb97a1b2004-10-21 09:59:13 +00001458 * Use daemon() call to background the filesystem after mounting.
1459 This function closes the standard input, output and error and
1460 changes the current working directory to "/".
1461
Miklos Szeredi127d49b2004-10-14 13:33:39 +000014622004-10-14 Miklos Szeredi <miklos@szeredi.hu>
1463
1464 * Released 1.9
1465
Miklos Szeredid45baf42004-10-10 07:56:12 +000014662004-10-09 Miklos Szeredi <miklos@szeredi.hu>
1467
1468 * Don't allow fuse_flush() to be interrupted (bug found by David
1469 Shaw)
1470
Miklos Szeredi1f18db52004-09-27 06:54:49 +000014712004-09-27 Miklos Szeredi <miklos@szeredi.hu>
1472
1473 * Add PID to fuse_context. Patch by Steven James
1474
Miklos Szeredi1eea0322004-09-27 18:50:11 +00001475 * Change file handle type to 'unsigned long' in kernel interface
1476
Miklos Szeredid169f312004-09-22 08:48:26 +000014772004-09-22 Miklos Szeredi <miklos@szeredi.hu>
1478
1479 * A slight API change: fuse_get_context() doesn't need the "fuse"
1480 pointer, but the returned context contains it instead. The
1481 fuse_get() function is not needed anymore, so it's removed.
Miklos Szeredi21d587e2004-09-22 16:47:40 +00001482
1483 * Fix mounting and umounting FUSE filesystem under another FUSE
1484 filesystem by non-root (bug spotted by Valient Gough)
Miklos Szeredie5183742005-02-02 11:14:04 +00001485
Miklos Szeredic2309912004-09-21 13:40:38 +000014862004-09-21 Miklos Szeredi <miklos@szeredi.hu>
1487
1488 * Fix deadlock in case of memory allocation failure. Patch by
1489 Christian Magnusson
Miklos Szeredie5183742005-02-02 11:14:04 +00001490
Miklos Szeredib2cf9562004-09-16 08:42:40 +000014912004-09-16 Miklos Szeredi <miklos@szeredi.hu>
1492
1493 * Check memory allocation failures in libfuse
Miklos Szeredie5183742005-02-02 11:14:04 +00001494
Miklos Szeredi65afea12004-09-14 07:13:45 +000014952004-09-14 Miklos Szeredi <miklos@szeredi.hu>
1496
1497 * Check temporary file creation failure in do_getdir(). Bug
1498 spotted by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001499
Miklos Szeredi1bf53ee2004-09-13 11:47:59 +000015002004-09-13 Miklos Szeredi <miklos@szeredi.hu>
1501
1502 * Allow "large_read" option for 2.6 kernels but warn of deprecation
Miklos Szeredi09045c32004-09-13 12:00:49 +00001503
1504 * Make requests non-interruptible so race with FORGET is avoided.
1505 This is only a temporary solution
Miklos Szeredi442d9652004-09-13 14:56:57 +00001506
1507 * Support compiling FUSE kernel module on 2.4.x UML kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001508
Miklos Szeredi8b2d3332004-09-09 08:44:01 +000015092004-09-09 Miklos Szeredi <miklos@szeredi.hu>
1510
1511 * Fix bug in case two FORGETs for the same node are executed in
1512 the wrong order. Bug spotted and endured for months by Franco
1513 Broi, and logfile for solution provided by Terje Oseberg
1514
Miklos Szeredi12085102004-09-02 18:13:57 +000015152004-09-01 Miklos Szeredi <miklos@szeredi.hu>
1516
1517 * Add -D_REENTRANT to the compile flags
1518
1519 * Add documentation of fuse internals by Terje Oseberg
Miklos Szeredie5183742005-02-02 11:14:04 +00001520
Miklos Szeredi22ea3dc2004-08-16 13:29:11 +000015212004-08-16 Miklos Szeredi <miklos@szeredi.hu>
1522
1523 * Change release method to be non-interruptible. Fixes bug
1524 causing missing release() call when program which has opened files
1525 is killed (reported by Franco Broi and David Shaw)
Miklos Szeredie5183742005-02-02 11:14:04 +00001526
Miklos Szeredi891b8742004-07-29 09:27:49 +000015272004-07-29 Miklos Szeredi <miklos@szeredi.hu>
1528
1529 * Add fuse_invalidate() to library API
1530
Miklos Szeredi94ed76a2004-07-26 19:38:45 +000015312004-07-26 Miklos Szeredi <miklos@szeredi.hu>
1532
1533 * Check permissions in setattr if 'default_permissions' flag is
1534 set. Bug spotted by Damjan Lango
1535
Miklos Szeredid66d3942004-07-24 13:47:44 +000015362004-07-24 Miklos Szeredi <miklos@szeredi.hu>
1537
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001538 * 'large_read' mount option removed for 2.6 kernels, since the
1539 default (dynamic read size) is better
1540
1541 * Extend kernel API with file handles. A file handle is returned
1542 by open, and passed to read, write, flush, fsync and release.
1543 This is currently only used for debug output in the library.
Miklos Szeredie5183742005-02-02 11:14:04 +00001544
Miklos Szeredi209f5d02004-07-24 19:56:16 +00001545 * Security changes:
1546
1547 * Change the current directory to the mountpoint before checking
1548 the permissions and mount filesystem on "."
1549
1550 * By default don't modprobe the fuse module for non-root. The old
1551 behavior can be restored with the '--enable-auto-modprobe' flag of
1552 ./configure
1553
1554 * By default don't allow shared writable mappings for non-root.
1555 The old behavior can be restored with the 'user_mmap=1' module
1556 parameter
Miklos Szeredid66d3942004-07-24 13:47:44 +00001557
Miklos Szeredibd7661b2004-07-23 17:16:29 +000015582004-07-23 Miklos Szeredi <miklos@szeredi.hu>
1559
1560 * Clean up mount option passing to fusermount and to fuse_new()
1561 BEWARE: this changes the userspace API slightly, and the command
1562 line usage of programs using fuse_main()
Miklos Szeredie5183742005-02-02 11:14:04 +00001563
Miklos Szeredi58865372004-07-20 14:22:26 +000015642004-07-20 Miklos Szeredi <miklos@szeredi.hu>
1565
1566 * Optimize reading under 2.6 kernels by issuing multiple page
1567 asynchronous read requests
Miklos Szeredie5183742005-02-02 11:14:04 +00001568
Miklos Szeredi84ba0f42004-07-18 11:32:59 +000015692004-07-18 Miklos Szeredi <miklos@szeredi.hu>
1570
1571 * Only use redirty_page_for_writepage() for kernels >= 2.6.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001572
Miklos Szeredi069c9502004-07-16 16:17:02 +000015732004-07-16 Miklos Szeredi <miklos@szeredi.hu>
1574
1575 * Separate directory entry and inode attribute validity timer
1576
1577 * New write semaphore to stop page writeback during truncate
1578
1579 * Fsync now waits for all writes to complete before sending the
1580 request
1581
1582 * Optimization: if a page is completely written by
1583 fuse_commit_write(), clear the dirty flag and set the uptodate
1584 flag for that page
1585
Miklos Szeredie7d5d7d2004-07-16 18:27:50 +00001586 * Some memory cleanup at exit
1587
Miklos Szeredi2529ca22004-07-13 15:36:52 +000015882004-07-13 Miklos Szeredi <miklos@szeredi.hu>
1589
1590 * Add FUSE_HARD_REMOVE flag, and '-i' option to fuse main, which
Miklos Szerediad83d072004-07-13 20:23:03 +00001591 disable the "hide if open" behavior of unlink/rename.
1592
1593 * If temporary buffer allocation fails in raw read, fall back to a
1594 smaller buffer
Miklos Szeredie5183742005-02-02 11:14:04 +00001595
Miklos Szeredi73798f92004-07-12 15:55:11 +000015962004-07-12 Miklos Szeredi <miklos@szeredi.hu>
1597
1598 * Fix bug in do_open() in libfuse: open count was incremented
1599 after the reply is sent so it could race with unlink/forget and
1600 cause an abort.
Miklos Szeredie5183742005-02-02 11:14:04 +00001601
Miklos Szeredi015fe702004-07-12 11:52:24 +000016022004-07-08 Miklos Szeredi <miklos@szeredi.hu>
1603
1604 * When performing create or remove operation, refresh the parent's
1605 attributes on next revalidate, as i_nlink (and maybe size/time)
1606 could be inacurate.
1607
1608 * Use redirty_page_for_writepage() in fuse_writepage() for skipped
1609 pages (2.6 only)
1610
1611 * Set set_page_dirty address space operation (2.6 only)
1612
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016132004-07-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi25385bb2004-07-06 22:27:36 +00001614
1615 * Minor fix in read: print debug info even if read size is zero
1616
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016172004-07-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi58615e02004-07-04 21:21:08 +00001618
1619 * Fix race between truncate and writepage (fsx-linux now runs
1620 without error)
1621
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016222004-07-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001623
1624 * Fix kernel hang on mkfifo under 2.4 kernels (spotted and patch
1625 by Mattias Wadman)
1626
1627 * Added option for direct read/write (-r)
1628
1629 * Fix revalidate time setting for newly created inodes
1630
Miklos Szerediacb4d362004-07-02 16:20:45 +00001631 * Remove uid==0 check for '-x' option in fusermount (kernel checks
1632 this)
1633
1634 * fuse_main() only installs handlers for signals (out of INT, HUP,
1635 TERM, PIPE), for which no handler has yet been installed
1636
1637 * Add module option 'user_allow_other' which if set to non-zero
1638 will allow non root user to specify the 'allow_other' mount option
1639 ('-x' option of fusermount)
1640
Miklos Szeredi014d7d22004-07-02 21:22:37 +00001641 * Fix deadlock between page writeback completion and truncate
1642 (bug found by Valient Gough with the fsx-linux utility)
1643
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016442004-07-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediad051c32004-07-02 09:22:50 +00001645
1646 * Change passing fuse include dir to 2.6 kernel make system more
Miklos Szerediacb4d362004-07-02 16:20:45 +00001647 robust (fixes compile problems seen on SuSE 9.1 with updated 2.6
1648 kernel)
Miklos Szerediad051c32004-07-02 09:22:50 +00001649
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016502004-06-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi556d03d2004-06-30 11:13:41 +00001651
1652 * Acquire inode->i_sem before open and release methods to prevent
1653 concurrent rename or unlink operations.
1654
Miklos Szeredi65cf7c72004-06-30 11:34:56 +00001655 * Make __fuse_read_cmd() read only one command. This allows
1656 multiplexing the fuse file descriptor with other event sources
1657 using select() or poll() (patch by Jeff Harris)
1658
1659 * Export 'exited' flag with __fuse_exited() (patch by Jeff Harris)
1660
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016612004-06-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi71e9f862004-06-28 16:52:16 +00001662
1663 * Fix file offset wrap around at 4G when doing large reads
1664
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016652004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001666
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001667 * Fix memory leak in open (Valient Gough)
1668
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016692004-06-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a31cca2004-06-26 21:11:25 +00001670
Miklos Szeredi1ea9c962004-06-24 21:00:00 +00001671 * Add "close after delete" support to libfuse (patch by Valient
1672 Gough)
1673
1674 * Cancel all worker threads before exit in multithreaded mode
1675
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016762004-06-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie79dc7e2004-06-23 05:57:30 +00001677
1678 * Fix locking bugs
Miklos Szeredib3210582004-06-23 13:54:33 +00001679
1680 * Don't send reply to RELEASE
Miklos Szeredicb264512004-06-23 18:52:50 +00001681
1682 * Work with newer libtool (1.5a)
1683
1684 * Check for st_atim member of struct stat
Miklos Szeredie5183742005-02-02 11:14:04 +00001685
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016862004-06-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid3dd2d52004-06-22 18:46:02 +00001687
1688 * No request allocation needed on inode and file release
Miklos Szeredie5183742005-02-02 11:14:04 +00001689
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016902004-06-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2778f6c2004-06-21 09:45:30 +00001691
1692 * Fix possible inode leak in userspace in case of unfinished
1693 lookup/mknod/mkdir/symlink/link operation.
Miklos Szeredie5183742005-02-02 11:14:04 +00001694
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016952004-06-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredied62d862004-06-20 08:57:39 +00001696
1697 * Fix some races and cleanups in fuse_read_super()
Miklos Szeredie5183742005-02-02 11:14:04 +00001698
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000016992004-06-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7eafcce2004-06-19 22:42:38 +00001700
1701 * Requests are allocated at open time
Miklos Szeredie5183742005-02-02 11:14:04 +00001702
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017032004-06-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi203afbf2004-06-03 13:21:08 +00001704
1705 * Build shared library as well as static (using libtool)
1706
1707 * Change FUSE_MINOR_VERSION from 1 to 0. I know it's illegal but
1708 there has not been a release with the previous minor number, and I
1709 hope nobody is using it for anything.
Miklos Szerediff875352004-06-03 13:52:40 +00001710
1711 * Change fuse_main(), so that default behavior is to go into
1712 background if mount is successful. '-f' and '-d' options disable
1713 backgrounding. This fixes the "Why does my FUSE daemon hang?"
1714 newbie complaint.
Miklos Szeredi63b8c1c2004-06-03 14:45:04 +00001715
1716 * Cache ENOSYS (function not implemented) errors on *xattr, flush
1717 and fsync
Miklos Szeredi152f29e2004-06-03 17:52:32 +00001718
1719 * Don't call getdir method from open() only from first readdir().
1720 Open is sometimes just used to store the current directory
1721 (e.g. find)
Miklos Szeredie5183742005-02-02 11:14:04 +00001722
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017232004-05-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie2e4ac22004-05-18 08:45:28 +00001724
1725 * Added flush() call
Miklos Szeredie5183742005-02-02 11:14:04 +00001726
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017272004-05-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi689f5632004-05-04 08:49:16 +00001728
1729 * Extended attributes support for 2.4 (patch by Cody Pisto)
Miklos Szeredie5183742005-02-02 11:14:04 +00001730
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017312004-04-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid30a0f22004-04-20 08:25:43 +00001732
1733 * Fixed parser with modversions (Mattias Wadman)
Miklos Szeredie5183742005-02-02 11:14:04 +00001734
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017352004-04-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8ec48ec2004-04-19 10:24:41 +00001736
1737 * Added mount option parser to 2.4 build
Miklos Szeredie5183742005-02-02 11:14:04 +00001738
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017392004-04-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi87f30a92004-04-13 10:49:54 +00001740
1741 * Replaced binary mount data with text options
1742
1743 * Show FUSE specific mount options in /proc/mounts
1744
1745 * Check in fuse.h whether _FILE_OFFSET_BITS is set to 64
1746
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017472004-04-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic26c14d2004-04-09 17:48:32 +00001748
1749 * Check some limits so userspace won't get too big requests
1750
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017512004-04-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2ac5e2a2004-04-05 11:24:24 +00001752
1753 * Kill compile warning
1754
1755 * Upgraded user-mount patch for 2.6.5
1756
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017572004-04-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi851948c2004-04-02 14:58:22 +00001758
1759 * Add detection of user-mode-linux to configure
1760
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017612004-03-31 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi03cebae2004-03-31 10:19:18 +00001762
1763 * fixed zero size case for getxattr and listxattr
1764
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017652004-03-30 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi98667e22004-03-30 07:24:29 +00001766
1767 * new fusermount flag '-z': lazy unmount, default is not lazy
1768
Miklos Szeredi3ed84232004-03-30 15:17:26 +00001769 * Extended attributes operations added (getxattr, setxattr,
1770 listxattr, removexattr)
1771
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017722004-03-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi77f39942004-03-25 11:17:52 +00001773
1774 * If filesystem doesn't define a statfs operation, then an
1775 all-zero default statfs is returned instead of ENOSYS
1776
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017772004-03-24 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4df9cf22004-03-24 09:19:27 +00001778
1779 * Add FS_BINARY_MOUNTDATA filesystem flag for kernels > 2.6.4
1780
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017812004-03-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001782
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001783 * Fix for uClinux (Christian Magnusson)
1784
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017852004-03-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi8af63ae2004-03-09 10:54:17 +00001786
Miklos Szeredi18c1e4d2004-03-02 16:18:30 +00001787 * fuse_main() adds "-n progname" to the fusermount command line
Miklos Szeredie5183742005-02-02 11:14:04 +00001788
Miklos Szeredi254d5ed2004-03-02 11:11:24 +00001789 * More kernel interface changes:
1790
1791 * Lookup/getattr return cache timeout values
1792
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000017932004-02-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie970f302004-02-25 08:39:42 +00001794
1795 * Clean up option parsing in fuse_main()
1796
Miklos Szeredi33c319c2004-02-25 09:19:29 +00001797 * Added fuse_get() function which returns the fuse object created
1798 by fuse_main()
1799
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018002004-02-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib5958612004-02-20 14:10:49 +00001801
Miklos Szeredic40748a2004-02-20 16:38:45 +00001802 * removed old way of mounting (fusermount mountpoint program)
1803
Miklos Szeredib5958612004-02-20 14:10:49 +00001804 * more kernel interface changes:
1805
1806 * added nanosecond precision to file times
1807
Miklos Szeredic40748a2004-02-20 16:38:45 +00001808 * removed interface version from mount data
1809
1810 * added /proc/fs/fuse/version which contains MAJOR.MINOR
1811
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018122004-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi18e75e42004-02-19 14:23:27 +00001813
1814 * statfs library API changed to match other methods. Since this
1815 is not backward compatible FUSE_MAJOR_VERSION is changed to 2
1816
Miklos Szeredi76f65782004-02-19 16:55:40 +00001817 * kernel interface changes follow:
1818
1819 * statfs changed to 64 bits, added 'bavail' field
1820
1821 * add generation number to lookup result
1822
1823 * optimized mknod/mkdir/symlink/link (no separate lookup is
1824 needed)
1825
1826 * rdev size increased to 32 bits for mknod
1827
1828 * kernel interface version changed to 3.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001829
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018302004-02-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa39e902004-02-18 13:29:36 +00001831
1832 * user-mount upgraded for 2.6.3 kernel
Miklos Szeredie5183742005-02-02 11:14:04 +00001833
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018342004-02-17 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi69cc79a2004-02-17 08:57:29 +00001835
1836 * Added user-mount.2.6.2-rc3.patch
1837
1838 * Add FS_SAFE flag to fuse filesystem
1839
1840 * fusermount should allow (un)mounting for non-root even if not
1841 suid-root
Miklos Szeredie5183742005-02-02 11:14:04 +00001842
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018432004-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4c7f7622004-02-12 13:41:30 +00001844
1845 * Remove MS_PERMISSION mount flag (that means something else now)
Miklos Szeredie5183742005-02-02 11:14:04 +00001846
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018472004-02-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi9a2b08d2004-02-10 09:36:07 +00001848
1849 * Added check for i_size_read/write functions to configure.in
1850 (patch by Valient Gough)
1851
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018522004-02-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi377b2ea2004-02-06 09:48:51 +00001853
1854 * Fixed writing >= 2G files
Miklos Szeredif58cc612004-02-06 13:52:00 +00001855
1856 * Check file size on open (with generic_file_open())
Miklos Szeredid1199f82004-02-06 15:29:22 +00001857
1858 * Readpage calls flush_dcache_page() after storing data
1859
1860 * Use i_size_read/write for accessing inode->i_size
Miklos Szeredi89b86af2004-02-06 17:02:08 +00001861
1862 * Make loopback mount of a fuse file work
Miklos Szeredie5183742005-02-02 11:14:04 +00001863
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018642004-02-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi88124792004-02-04 11:06:17 +00001865
1866 * Released 1.1
Miklos Szeredie5183742005-02-02 11:14:04 +00001867
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018682004-01-29 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi72f6a932004-01-29 11:29:18 +00001869
1870 * Properly check if the inode exists in fuse_invalidate
Miklos Szeredie5183742005-02-02 11:14:04 +00001871
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018722004-01-27 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediedf26632004-01-27 14:54:47 +00001873
1874 * Added -q option for fusermount
1875
1876 * fuse_unmount() now uses -q option of fusermount, so no error is
1877 printed if the cause of the program exit is that the filesystem
1878 has already been unmounted
1879
Miklos Szeredif4f8b892004-01-27 17:04:59 +00001880 * Fix i_nlink correctness after rmdir/unlink
1881
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018822004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001883
Miklos Szeredib1158392004-01-26 14:43:12 +00001884 * Released 1.1-pre2
1885
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018862004-01-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredib1158392004-01-26 14:43:12 +00001887
Miklos Szeredi307242f2004-01-26 11:28:44 +00001888 * Fix typo (thanks Marcos Dione)
Miklos Szeredib1158392004-01-26 14:43:12 +00001889
1890 * Compile fixes for 2.4 kernels
Miklos Szeredie5183742005-02-02 11:14:04 +00001891
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018922004-01-23 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001893
1894 * Fix CONFIG_MODVERSIONS compile on 2.6
Miklos Szeredie5183742005-02-02 11:14:04 +00001895
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000018962004-01-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi307242f2004-01-26 11:28:44 +00001897
1898 * Write all pending data before a RELEASE operation
1899
1900 * Suppress 'Bad file descriptor' warning on exit
1901
1902 * Replaced fusermount option '-d xxx' with '-n xxx' so it doesn't
Miklos Szeredib1158392004-01-26 14:43:12 +00001903 get confused with '-d' of fuse_main() (sorry about this change)
Miklos Szeredi307242f2004-01-26 11:28:44 +00001904
Miklos Szeredib1158392004-01-26 14:43:12 +00001905 * New fusermount option '-l' which enables big reads. Big reads
1906 are now disabled by default.
Miklos Szeredi307242f2004-01-26 11:28:44 +00001907
1908 * fuse_main() can accept fusermount arguments after a '--'
1909
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019102004-01-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie815c032004-01-19 18:20:49 +00001911
1912 * Support for exporting filesystem over NFS (see README.NFS)
1913
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019142004-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7c35cf92004-01-14 16:56:49 +00001915
1916 * Support non-blocking writepage on 2.6. This makes FUSE behave
1917 much more nicely in low-memory situations
1918
1919 * Fix 32-bit dev handling in getattr and mknod for 2.6 kernels.
1920 (Note: the mknod method does not yet use 32bit device number)
Miklos Szeredie5183742005-02-02 11:14:04 +00001921
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019222004-01-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie8663f32004-01-13 15:33:12 +00001923
1924 * Code cleanups
1925
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019262004-01-07 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b7abe32004-01-07 16:49:12 +00001927
1928 * Released 1.1-pre1
1929
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019302004-01-06 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif85ab242004-01-07 12:16:45 +00001931
1932 * Integrated 2.6 kernel support patch by Michael Grigoriev
1933
1934 * Improvements and cleanups for 2.6 kernels
1935
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019362004-01-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001937
Miklos Szeredie5183742005-02-02 11:14:04 +00001938 * Added -d option to fusermount
Miklos Szeredi7ffb8cf2004-01-05 15:07:12 +00001939
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019402003-12-15 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi2f3d9402003-12-15 12:11:33 +00001941
1942 * Added major+minor version to library API, and minor version to
1943 kernel API
1944
David McNab7a19caf2003-12-13 02:05:46 +000019452003-12-13 David McNab <david@rebirthing.co.nz>
1946
1947 * Implemented fsync support in examples/example.py
1948
1949 * Implemented 'fsync' and 'statfs' methods in python
1950 interface
1951
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019522003-12-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001953
Miklos Szeredie5183742005-02-02 11:14:04 +00001954 * Make it compile on 2.4.19.
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001955
Miklos Szeredi5e43f2c2003-12-12 14:06:41 +00001956 * Add fsync operation (write file failed on xemacs & vi)
Miklos Szeredie4cf7332003-12-12 11:53:31 +00001957
David McNab8bf62632003-12-11 22:49:22 +000019582003-12-12 David McNab <david@rebirthing.co.nz>
1959
1960 * Added distutils support to the python module, as per standard
1961 python development practice
1962
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019632003-12-11 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001964
1965 * Add file locking for mount/unmount (based on patch by Valient
1966 Gough)
1967
19682003-12-11 David McNab <david@rebirthing.co.nz>
1969
1970 * Python filesystem - was broken with python2.3, now fixed:
1971 - changed PyTuple_* calls to PySequence_*, because os.lstat
1972 is no longer returning a pure tuple
1973 - changed PyInt_Check() calls to also call PyLong_Check,
1974 to cover for cases (eg os.lstat) where longs are returned
1975 - Added support for file 'release' handling, which IMO is
1976 essential since this signals to a FS that writes to a file
1977 are complete (and therefore the file can now be disposed of
1978 meaningfully at the python filesystem's discretion)
1979 - Added '__init__' handler to base Fuse class, which allows
1980 your Python class to know the mountpoint and mount args,
1981 as attributes myfs.mountpoint, myfs.optlist, myfs.optdict
Miklos Szeredie5183742005-02-02 11:14:04 +00001982
Miklos Szeredi874d95d2003-12-11 14:27:57 +00001983 * General:
1984 - added 'mount.fuse' script (in util/ dir), which is meant to be
1985 symlinked from /sbin, and which allows FUSE filesystems to
1986 be mounted with the 'mount' command, and listed in fstab;
1987 also, mount arguments get passed to your filesystem
1988
1989
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019902003-11-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif27ec7d2003-11-04 13:46:32 +00001991
1992 * Fix kernel version detection (again). Bugreport by Peter Levart
1993
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019942003-11-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi36ca5562003-11-03 19:32:14 +00001995
1996 * Applied read combining patch by Michael Grigoriev (tested by
1997 Valient Gough and Vincent Wagelaar)
1998
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000019992003-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif08ace02003-10-22 11:11:57 +00002000
2001 * Mtab handling fix in fusermount by "Valient Gough" (SF patch
2002 #766443)
Miklos Szeredie5183742005-02-02 11:14:04 +00002003
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020042003-10-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0e535082003-10-13 10:08:06 +00002005
2006 * Error code fixes in kernel module
Miklos Szeredie5183742005-02-02 11:14:04 +00002007
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020082003-10-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi27af48b2003-10-04 17:31:38 +00002009
2010 * kernel version detection fix
2011
2012 * fusermount now uses "lazy" umount option
2013
2014 * fusermount can use modprobe with module-init-tools
2015
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020162003-09-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredida4e4862003-09-08 11:14:11 +00002017
2018 * Integrated caching patch by Michael Grigoriev
2019
Miklos Szeredida4e4862003-09-08 11:14:11 +00002020 * Added "Filesystems" file with descriptions of projects using
2021 FUSE
2022
Miklos Szeredi02ceb112003-09-08 13:52:25 +00002023 * Added patch by Michael Grigoriev to allow compliation of FUSE
2024 kernel module for 2.6 kernels
2025
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020262003-06-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi84838472003-06-02 06:12:27 +00002027
2028 * And another spec-file fix by Achim Settelmeier
2029
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020302003-05-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi21c282b2003-05-26 07:12:57 +00002031
2032 * Spec-file fix by Achim Settelmeier
2033
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020342003-03-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002035
Miklos Szerediac361172004-11-02 19:14:14 +00002036 * Fix umount oops (found by Samuli Kärkkäinen)
Miklos Szeredi79b461a2003-03-10 09:35:34 +00002037
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020382003-03-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi941ae4c2003-03-05 08:29:58 +00002039
2040 * Merge of fuse_redhat.spec and fuse.spec by Achim Settelmeier
2041
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020422003-03-04 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredia9b2f262003-03-04 09:37:20 +00002043
2044 * Updated fuse.spec file (Achim Settelmeier)
2045
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020462003-02-19 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic0226bb2003-02-19 16:05:06 +00002047
2048 * Version 1.0 released
2049
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020502003-02-12 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredifa84e0d2003-02-13 09:53:33 +00002051
2052 * SuSE compilation fix by Juan-Mariano de Goyeneche
2053
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020542002-12-10 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredic8ba2372002-12-10 12:26:00 +00002055
2056 * The release() VFS call is now exported to the FUSE interface
2057
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020582002-12-05 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi0f48a262002-12-05 14:23:01 +00002059
2060 * 64 bit file offset fixes in the fuse kernel module
2061
2062 * Added function 'fuse_exit()' which can be used to exit the main
2063 loop
2064
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020652002-12-03 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5f054812002-12-03 18:45:21 +00002066
2067 * Added _FILE_OFFSET_BITS=64 define to fuse.h. Note, that this is
2068 an incompatible interface change.
2069
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020702002-10-28 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi6bf8b682002-10-28 08:49:39 +00002071
2072 * Portablility fix (bug reported by C. Chris Erway)
2073
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020742002-10-25 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredid6e9f882002-10-25 11:40:14 +00002075
2076 * Use Mark Glines' fd passing method for default operation instead
2077 of old reexec
2078
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020792002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi60c23522002-10-24 09:19:43 +00002080
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002081 * fix "Stale NFS file handle" bug caused by changes in 2.4.19
2082
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000020832002-10-22 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi5e5d61f2002-10-24 11:50:33 +00002084
Miklos Szeredi60c23522002-10-24 09:19:43 +00002085 * fix incompatiblity with Red Hat kernels, with help from Nathan
2086 Thompson-Amato.
2087
Mark Glines65ba2192002-04-18 14:41:48 +000020882002-04-18 Mark Glines <mark@glines.org>
2089
2090 * added an alternative to fuse_mount(), called
2091 fuse_mount_ioslave(), which does not need to reexec the
2092 FUSE program.
2093 * added a small helper util needed by fuse_mount_ioslave().
2094
Mark Glines220635a2002-03-17 07:01:14 +000020952002-03-16 Mark Glines <mark@glines.org>
2096
2097 * use struct fuse_statfs everywhere possible to avoid problems
2098 with the headerfiles changing struct statfs member sizes
2099
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021002002-03-01 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi081f3c22002-03-01 07:47:35 +00002101
2102 * Another RPM spec file for RedHat >= 7 by Ian Pilcher
2103
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021042002-01-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredif782fc42002-01-14 08:48:46 +00002105
2106 * RPM support by Achim Settelmeier
2107
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021082002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002109
Miklos Szerediddc862a2002-01-09 13:46:10 +00002110 * Version 0.95 released
Miklos Szeredie5183742005-02-02 11:14:04 +00002111
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021122002-01-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szerediddc862a2002-01-09 13:46:10 +00002113
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002114 * Revaidate all path components not just the last, this means a
2115 very small performance penalty for being more up-to-date.
2116
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021172002-01-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi4b2bef42002-01-09 12:23:27 +00002118
2119 * Update and fix python interface
2120
Mark Glinesd84b39a2002-01-07 16:32:02 +000021212002-01-07 Mark Glines <mark@glines.org>
Miklos Szeredie5183742005-02-02 11:14:04 +00002122
Mark Glinesd84b39a2002-01-07 16:32:02 +00002123 * Added statfs() support to kernel, lib, examples, and perl!
2124
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021252001-12-26 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi46a46dc2002-01-08 09:55:14 +00002126
2127 * Better cross compilation support
2128
2129 * Ported to Compaq IPAQ
2130
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021312001-12-20 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002132
Miklos Szeredife25def2001-12-20 15:38:05 +00002133 * Added function fuse_get_context() to library API (inspired by
Miklos Szeredie5183742005-02-02 11:14:04 +00002134 patch from Matt Ryan)
2135
Miklos Szeredife25def2001-12-20 15:38:05 +00002136 * Added flags to fusermount and to kernel interface to control
2137 permission checking
Miklos Szeredi8cffdb92001-11-09 14:49:18 +00002138
Miklos Szeredife25def2001-12-20 15:38:05 +00002139 * Integrated fuse_set_operations() into fuse_new()
2140
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021412001-12-08 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002142
2143 * Applied header protection + extern "C" patch by Roland
2144 Bauerschmidt
2145
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021462001-12-02 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002147
Miklos Szeredie5183742005-02-02 11:14:04 +00002148 * Added perl bindings by Mark Glines
Miklos Szeredife25def2001-12-20 15:38:05 +00002149
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021502001-11-21 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002151
2152 * Cleaned up way of mounting simple filesystems.
2153
2154 * fuse_main() helper function added
2155
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021562001-11-18 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredie5183742005-02-02 11:14:04 +00002157
Miklos Szeredife25def2001-12-20 15:38:05 +00002158 * Optimized read/write operations, so that minimal copying of data
2159 is done
2160
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021612001-11-14 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredife25def2001-12-20 15:38:05 +00002162
2163 * Python bindings by Jeff Epler added
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002164
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021652001-11-13 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002166
2167 * Fixed vfsmount reference leak in fuse_follow_link
2168
2169 * FS blocksize is set to PAGE_CACHE_SIZE, blksize attribute from
2170 userspace is ignored
2171
Miklos Szeredi2e6b6f22004-07-07 19:19:53 +000021722001-11-09 Miklos Szeredi <miklos@szeredi.hu>
Miklos Szeredi838c14f2001-11-14 08:16:20 +00002173
Miklos Szeredife25def2001-12-20 15:38:05 +00002174 * Started ChangeLog