-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
2786 lines (1670 loc) · 81.3 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2008-02-19 Miklos Szeredi <[email protected]>
* Released 2.7.3
2008-02-13 Miklos Szeredi <[email protected]>
* Add missing bdi_init() and bdi_destroy() calls for 2.6.24
kernel. Lack of bdi_init() could cause write to hang. Report
forwarded by Szakacsits Szabolcs from the NTFS-3G forum.
2008-02-03 Csaba Henk <[email protected]>
* lib/mount_bsd.c:
- string formatting fixes
- exit if mounting has failed
(in FreeBSD a mount failure is not critical per se, as the daemon
still could be mounted externally, but waiting for such an event
is more confusing than fruitful)
- ditch the kvm(8) stuff and simply use forced unmount which just
won't block
- prettify option specifications
- add "-onosync_unmount" kernel option
2008-01-07 Csaba Henk <[email protected]>
* lib/mount_bsd.c:
- refine device closing in a race-free way
- add support for "-osubtype" on FreeBSD
* makeconf.sh: make it work under FreeBSD
2008-01-03 Csaba Henk <[email protected]>
* lib/mount_bsd.c: close device before unmount
(cf. lib/mount.c rev. 1.43) and fix some warnings
2007-12-23 Miklos Szeredi <[email protected]>
* Fix './configure --disable-static'. Patch from Ismail Dönmez
2007-12-17 Miklos Szeredi <[email protected]>
* Released 2.7.2
2007-12-12 Miklos Szeredi <[email protected]>
* Fix kernel module compile for 2.6.24
* Invalidate attributes of parent directory after create(), since
the modification time changes. Invalidate attributes on rename,
since some filesystems may update st_ctime. Reported by Szabolcs
Szakacsits
* Fix NFS exporting to handle 64bit node IDs
* Disable old symbol versions if __UCLIBC__ is defined. If a
symbol in a library has multiple versions, the runtime linker in
uClibc seems to randomly choose between them.
* Remove erroneous 'fuse_opt_insert_arg@FUSE_2_5' from
fuse_version_script. fuse_opt_free_args() was added in fuse-2.6.
* Close fuse device file descriptor before calling umount(),
preventing a deadlock when umount is synchronous. Reported by
Szabolcs Szakacsits
2007-11-12 Miklos Szeredi <[email protected]>
* 'fusermount -u' did not umount the filesystem if /etc/mtab was a
symlink. This bug was introduced in 2.7.1 by "Don't call
/bin/[u]mount if /etc/mtab is a symlink". Found by robertsong.
2007-10-16 Miklos Szeredi <[email protected]>
* Released 2.7.1
2007-10-16 Miklos Szeredi <[email protected]>
* Clarify licence version to be "LGPLv2" for the library
* kernel fixes:
* After mount set nlink attribute for the root inode to 1
* Fix wake up of task waiting for a reserved request
* Fix allowing setattr, listxattr and statfs for other users
2007-09-18 Miklos Szeredi <[email protected]>
* Add missing context initialization in fuse_fs_chmod(). Bug
found by "iohead"
* Fix kernel module compilation for 2.6.23. Based on patch by
Marian Marinov
2007-09-04 Philippe Elie <[email protected]>
* lib/fuse_lowlevel.c: fix a fuse_req leak in do_forget()
2007-07-31 Miklos Szeredi <[email protected]>
* Work around hotplug issue, that it calls filesystem with file
descriptors 0, 1 and 2 not open. Tracked down by Leif Johnson
2007-07-25 Miklos Szeredi <[email protected]>
* Don't call /bin/[u]mount if /etc/mtab is a symlink. Reported by
Tomas M
* Also don't touch /etc/mtab if it is within the mounted
filesystem. Suggested by Jeffrey Law
2007-07-12 Miklos Szeredi <[email protected]>
* Reset args->argc in fuse_opt_free_args(). Patch by Lucas
C. Villa Real
2007-07-02 Miklos Szeredi <[email protected]>
* Released 2.7.0
2007-07-02 Miklos Szeredi <[email protected]>
* Accept a NULL "op" for fuse_main(), etc. This is useful if
filesystem is only invoking fuse to print a help message, or
version. Fixes RedHat bugzilla #217343
2007-06-22 Miklos Szeredi <[email protected]>
* lib: fix locking when loading a filesystem module
2007-06-21 Miklos Szeredi <[email protected]>
* Add fs subtype support to mount.fuse
2007-06-20 Miklos Szeredi <[email protected]>
* Add fs subtype support to libfuse and fusermount
2007-06-19 Miklos Szeredi <[email protected]>
* kernel: sync with mainline (2.6.22)
2007-06-18 Miklos Szeredi <[email protected]>
* Send debug output to stderr instead of stdout. Patch by Jan
Engelhardt
2007-06-03 Miklos Szeredi <[email protected]>
* libulockmgr: Work around a kernel bug in recv(), causing it to
sometimes return zero even if data was available on the socket.
2007-05-29 Miklos Szeredi <[email protected]>
* lib: optimization: store parent pointer in node instead of
parent id
2007-05-25 Miklos Szeredi <[email protected]>
* lib: don't create new thread for each FORGET request. FORGET
messages sometimes caused so many threads to be created, that
process virtual memory space ran out. Reported by Chris AtLee
2007-05-24 Miklos Szeredi <[email protected]>
* lib: fix memory leak on thread creation failure in multithreaded
event loop. Found by Chris AtLee
2007-05-23 Miklos Szeredi <[email protected]>
* lowlevel lib: add fuse_reply_iov function, which is similar to
fuse_reply_buf, but accepts a vector of buffers. Patch by Roger
Willcocks
2007-05-21 Miklos Szeredi <[email protected]>
* Fix Oops or error if a regular file is created with mknod(2) on
a fuse filesystem. Kernels 2.6.18 onward are affected. Thanks to
J. Cameijo Cerdeira for the report
2007-05-11 Csaba Henk <[email protected]>
* libfuse: fix return value of fuse_loop()/fuse_loop_mt().
Error reported by Csaba Henk, fix by Miklos Szeredi
* libfuse: fix unlock in flush
* libfuse: do unlocking on RELEASE+FLUSH
2007-05-03 Miklos Szeredi <[email protected]>
* Released 2.7.0-rc1
2007-05-02 Miklos Szeredi <[email protected]>
* kernel: sync with mainline:
* Use invalidate_mapping_pages() if available
* Fix BUG when invalid file type is supplied in mount. Patch by
Timo Savola
2007-04-27 Miklos Szeredi <[email protected]>
* libfuse: call umount(8) directly instead of fusermount if
possible
* Clean up init script, make it LSB compliant
2007-04-26 Miklos Szeredi <[email protected]>
* In multithreaded loop, use a semaphore instead of SIGHUP to wake
up the main thread on umount. This is more elegant, and works
even if signals are blocked.
2007-04-25 Miklos Szeredi <[email protected]>
* Improve mounting support in libfuse:
- check non-empty mountpoint
- only fall back to fusermount when necessary
2007-04-23 Miklos Szeredi <[email protected]>
* Don't chdir to "/" in foreground mode, it causes more trouble
than it's worth
2007-04-18 Miklos Szeredi <[email protected]>
* Replace utils/mount.fuse "sh" script with a "C" program
2007-04-15 Miklos Szeredi <[email protected]>
* Add -lulockmgr to compilation comment in fusexmp_fh.c
2007-04-05 Miklos Szeredi <[email protected]>
* Check for iconv. Patch by Csaba Henk
* Add direct umounting
* Use "fusectl" as the device for the fusectl filesystem. Debian
Bug#417945. Reported by Laurent Bonnaud
2007-04-01 Csaba Henk <[email protected]>
* Fix some FreeBSD related macros.
2007-03-30 Miklos Szeredi <[email protected]>
* Add support for direct mounting by libfuse. Fall back on
calling fusermount if it doesn't work
2007-03-14 Miklos Szeredi <[email protected]>
* Released 2.7.0-pre1
2007-03-05 Miklos Szeredi <[email protected]>
* Correctly handle O_APPEND in direct IO mode. Reported by Greg
Bruno
* mount.fuse should use /bin/bash. Debian Bug#413403. Reported
by Thomas Weinbrenner
2007-02-26 Miklos Szeredi <[email protected]>
* Fix detection of installed fuse in init script. Reported and
fix suggested by Davide Canova
2007-02-05 Miklos Szeredi <[email protected]>
* Fix 2.6.9 RHEL kernels, which have compatibility mutex.h, but
don't define mutex_destroy(), bummer. Patch from Phil Schwan
2007-02-04 Miklos Szeredi <[email protected]>
* Compile fuseblk for kernels which don't have an option to turn
off the block layer (CONFIG_BLOCK). Reported by Szakacsits
Szabolcs
2007-02-03 Miklos Szeredi <[email protected]>
* Add filesystem stacking support to high level API. Filesystem
modules can be built into libfuse or loaded from shared object
(.so) files
* Add 'subdir' and 'iconv' built in modules
* lib/fuse.c: Fix locking for the reply code in create and open
2007-02-02 Miklos Szeredi <[email protected]>
* kernel: make it compile on "strange" kernels which have emulated
mutexes via <linux/mutex.h> but no i_mutex. Reported by Tomasz
Mateja
2007-01-28 Miklos Szeredi <[email protected]>
* kernel: fix BUG in control filesystem if it is umounted and
mounted again, while some fuse filesystems are present.
Bugreport from Florent Mertens
* kernel: sync with mainline, support 2.6.20
2007-01-22 Miklos Szeredi <[email protected]>
* lib/Makefile.am: actually link libfuse against libfuse_libs
2007-01-19 Miklos Szeredi <[email protected]>
* Build fix for 2.6.16 vanila and 2.6.15 FC5 kernels. Patch from
Ian Abbott
2007-01-18 Miklos Szeredi <[email protected]>
* Fix abort in fuse_new() compatibility API for opts == NULL case.
Novell bugzilla #233870. Patch from Takashi Iwai.
2007-01-13 Miklos Szeredi <[email protected]>
* Fix option parsing in mount.fuse. Patch from Jens M. Noedler
2007-01-02 Miklos Szeredi <[email protected]>
* Fix unaligned access in file desctriptor passing in libfuse,
fusermount and ulockmgr. Debian bug ID: 404904. Reported and
tested by Sebastian Fontius
2006-12-16 Miklos Szeredi <[email protected]>
* kernel: don't keep unreferenced inodes in the icache.
2006-12-15 Miklos Szeredi <[email protected]>
* fusermount: Fix detection of fuseblk. Reported by Szakacsits
Szabolcs
* lib: Fix use after free in fuse_flush(). Reported by Ron
Lindman
2006-12-10 Miklos Szeredi <[email protected]>
* mount.fuse: add "setuid=USER" option which does a "su - USER"
for the filesystem
* fusermount: use "/bin/mount -f" to add entry to /etc/mtab, and
"/bin/umount" to remove entry from /etc/mtab. This gets rid of
the ugly code dealing with mtab, as well as a possible race
between fusermount and mount trying to modify /etc/mtab at the
same time
* Fix "buffer size too small: 4" warning for users of the
fuse_loop_mt_proc() function.
2006-12-04 Miklos Szeredi <[email protected]>
* Fix warnings with gcc-4.1 on 64bit archs. Report from
Harshavardhana
* Add extra warning options, and fix resulting warnings
* Really fix fuse_teardown problem
2006-12-02 Miklos Szeredi <[email protected]>
* Add -lrt to fuse.pc (if needed) to fix static linking against
libfuse. Reported by Szakacsits Szabolcs
2006-12-01 Miklos Szeredi <[email protected]>
* Released 2.6.1
2006-11-30 Miklos Szeredi <[email protected]>
* Fix API version 21 and 22 compatibility for fuse_teardown.
Reported by Bgs
2006-11-29 Miklos Szeredi <[email protected]>
* fusermount: Print a more helpful message in case the kernel
doesn't support the 'fuseblk' filesystem type. This has been
biting ntfs-3g users. Reported by Yura Pakhuchiy
* kernel: fix build problem for "make -C ...". Reported by
Stephen Bryant
2006-11-19 Miklos Szeredi <[email protected]>
* Fix bug in certain error paths of lookup routines. The request
object was reused for sending FORGET, which is illegal. This bug
could cause an Oops in linux-2.6.18 or in fuse-2.6.0, and might
silently corrupt memory in earlier versions. Report and test
program by Russ Cox
2006-11-11 Miklos Szeredi <[email protected]>
* Print an error if an incompatible kernel interface version is
detected in INIT. This will only show if filesystem is started
with -d or -f
* Fix order of fuse_destroy()/fuse_unmount() in error cleanup of
fuse_setup_common(). Reported by Szakacsits Szabolcs
2006-11-06 Miklos Szeredi <[email protected]>
* Fix recursive locking in fuse_create(). Thanks to Takuya
Ishibashi for the bug report
2006-10-28 Miklos Szeredi <[email protected]>
* Fix automake problem. Patch from Nix
2006-10-26 Miklos Szeredi <[email protected]>
* Fix mount.fuse to use /bin/sh instead of /bin/bash, which is not
always available on embedded systems. Patch from Paul Smith
* Fix util/Makefile.am, so that failure to run update-rc.d or
device creation doesn't cause make to fail. Reported by Paul
Smith
2006-10-21 Miklos Szeredi <[email protected]>
* Released 2.6.0
2006-10-18 Miklos Szeredi <[email protected]>
* fusermount: don't try to create a lock file if /etc/mtab is a
symlink. Report and patch from Alexei Sheplyakov (debian bug
#393693)
2006-10-17 Miklos Szeredi <[email protected]>
* Minor changes, sync with mainline tree
2006-10-16 Miklos Szeredi <[email protected]>
* Released 2.6.0-rc3
2006-10-15 Miklos Szeredi <[email protected]>
* kernel: cleanups
2006-10-13 Miklos Szeredi <[email protected]>
* kernel: Fix compilation on patched 2.6.18 (fc6) and 2.6.19.
Report from David Shaw
* lib: Fix lost error on renaming a file. Report from David Shaw
* lib: Fix lost error on hiding open files (renaming to
.fuse_hiddenXXXX)
* kernel: Fix a rare hang on SMP/32bit on heavy filesystem
activity. The cause of the bug was that some calls to
i_size_write() were not protected by a lock, and hence
i_size_seqcount could become corrupted. This caused subsequent
calls to i_size_read() to spin forever. This is a long standing
bug was probably introduced in version 2.2, and thought to be
related to NFS exporting (it's not). It was reported by various
people, but Dana Henriksen has finally helped me to track it down,
so big thanks to him
* kernel: Protect against truncation of a swapfile
2006-10-10 Miklos Szeredi <[email protected]>
* kernel: Check for signature of super_operations->umount_begin().
Ubuntu kernel 2.6.17 seems to use the new signature found in
2.6.18. Thanks to Florent Mertens for the report
2006-10-08 Miklos Szeredi <[email protected]>
* Make sure inode numers wrap around at 2^32. This is needed on
dual 64bit/32bit architectures, because 32bit applications using
the non-largefile interface would otherwise break (EOVERFLOW error
would be returned by the stat() system call family)
* ulockmgr: handle the case, when a locking operation fails
because no more file desctriptors are available in
ulockmgr_server. Also work around a Linux kernel bug (known to
exist for all Linux kernel versions <= 2.6.18) which may cause
sent file descriptors to be lost in the above case
* ulockmgr: optimize file descriptor use
* restore needed cpp flags to util/Makefile.am
* Install udev rules as 99-fuse.rules instead of 60-fuse.rules
* Minor clean up of udev rules
* Add a synchronous DESTROY message to kernel interface. This is
invoked from umount, when the final instance of the filesystem is
released. It is only sent for filesystems mounted with the
'blkdev' option for security reasons.
* If the DESTROY message is received, call the filesystem's
->destroy() method. In this case it's not called from session
destruction as it would be otherwise.
2006-10-01 Miklos Szeredi <[email protected]>
* Released 2.6.0-rc2
2006-10-01 Miklos Szeredi <[email protected]>
* Add support for FLUSH+RELEASE operation for FreeBSD. Original
patch by Csaba Henk
* Add init script to insert fuse module and mount the control
filesystem. The script is installed as /etc/init.d/fuse and on
debian based systems (where update-rc.d is available) symlinks
from /etc/rc*.d/ are also installed.
* Include '#define FUSE_USE_VERSION=XX' into examples so they
become more self contained.
2006-09-30 Miklos Szeredi <[email protected]>
* API changes:
* Move lock_owner from a separate argument into fuse_file_info
* Add a flag to fuse_file_info indicating (1) a highlevel lock
operation (unlock all) was initiated by a flush, (2) a lowlevel
release operation should perform a flush as well.
* fusermount: revert modprobe change (2006-08-18) since it
doesn't work reliably with udev
* Add support for block device backed filesystems. This mode is
selected with the 'blkdev' option, which is privileged.
* Add support for the bmap (FIBMAP ioctl) operation on block
device backed filesystems. This allows swapon and lilo to work on
such filesystems.
* kernel changes:
* Drop support for kernels earlier than 2.6.9. Kernel module from
previous (2.5.x) release can be used with library from this
release
* In fuse_dentry_revalidate() use dget_parent() instead of
dereferencing d_parent, since there's no protection against parent
changing and going away
* Protect nlookup from concurrent updates
* In lookup if a directory alias exists but is unused,
then get rid of it, otherwise return -EBUSY.
* In mkdir if a directory alias exists, return success, but leave
dentry negative. In reality this could happen if a remote rename
immediately followed the mkdir.
* Don't BUG in fuse_iget() if multiple retries are needed to get a
good inode. This could happen if several lookups are racing for
the same inode.
2006-09-29 Miklos Szeredi <[email protected]>
* Fix compilation on 2.6.9. Report from Troy Ayers
2006-09-27 Miklos Szeredi <[email protected]>
* Fix Oops in fuse_readpages(). Reported by David Shaw
2006-09-24 Csaba Henk <[email protected]>
* Add support for nanosec times on FreeBSD
* Fix FreeBSD compatibility issues
2006-09-23 Miklos Szeredi <[email protected]>
* Fix one more compatibility bug. Thanks to Ricardo Correia
* Fix utimens compilation with uClibc. Patch from Jamie Guinan
2006-09-22 Miklos Szeredi <[email protected]>
* Fixed several compatibility bugs in low level interface.
Reported by Ricardo Correia
* Add workaround for ARM caching bug
2006-09-16 Miklos Szeredi <[email protected]>
* Rename new utimes() method to more logical utimens()
2006-09-14 Miklos Szeredi <[email protected]>
* Fuse tried to unlink already unlinked hidden files. Bug
reported by Milan Svoboda
2006-09-10 Miklos Szeredi <[email protected]>
* Released 2.6.0-rc1
2006-09-10 Miklos Szeredi <[email protected]>
* kernel: Fix unlock on close for kernels < 2.6.18
* Add ulockmgr library & server. This can be used for handling
file locking requests either directly from libfuse or over a
network, etc. This first version is not optimized and the number
of file descriptors it uses may get out of hand
2006-09-07 Miklos Szeredi <[email protected]>
* lib: Add interrupt support to high level library, which may be
enabled with the 'intr' mount option.
* When an operation is interrupted the thread handling that
operation will receive SIGUSR1 (or other signal specified with the
'intr_signal=N' option). The library installs a no-op signal
handler for this signal, unless there's already a handler
installed.
* The filesystem may query interrupt status (regardless of 'intr')
with the fuse_interrupted() function.
* mount.fuse: initialize $HOME if not set. Report from Sven Goldt
2006-09-03 Miklos Szeredi <[email protected]>
* lib: Multithreaded loop now allows unlimited number of threads.
This is needed for locking operations which may block
indefinitely. Also the kernel now doesn't limit the number of
outstanding requests so the library shouldn't do so either.
2006-09-01 Miklos Szeredi <[email protected]>
* Fix recursive lock bug in interrupt handling
* Add utimes() method to highlevel interface, which supports
setting times with nanosecond resolution
2006-08-18 Miklos Szeredi <[email protected]>
* kernel: fix page leak if fuse_readpages() failed in it's
initialization. Bug found and original patch from Alexander
Zarochentsev
* For linux kernels >=2.6.18 (2.6.19 if using the fuse module from
the kernel tree) the statfs method will receive the path within
the filesystem on which the stat(v)fs syscall was called
* fusermount: try to modprobe fuse module if invoked by root and
unable to open device. This is needed with udev, since the device
node will be created only when the module is inserted, hence
module autoloading won't work. Reported by Szakacsits Szabolcs
2006-07-30 Miklos Szeredi <[email protected]>
* fusermount: if selinux is active, restore the original file's
security context in unmount_rename(). Redhat bugzilla id 188561.
Patch from Yves Perrenoud
* Add POSIX file locking operation to high level library
* Initialize context for unlink of hidden files on umount. Bug
reported by Tim Stoakes
2006-07-14 Miklos Szeredi <[email protected]>
* Multiple release() calls can race with each other, resulting in
the hidden file being deleted before the last release finishes.
Bug found and patch tested by Mark Huijgen
2006-07-05 Miklos Szeredi <[email protected]>
* fusermount: if /dev/fuse doesn't exist, suggest modprobing fuse;
this makes sense on systems using udev. Reported by Szakacsits
Szabolcs
2006-06-29 Miklos Szeredi <[email protected]>
* Released 2.6.0-pre3
2006-06-29 Miklos Szeredi <[email protected]>
* Support in kernel module for file locking and interruption. The
same functionality is available in official kernels >= 2.6.18
2006-06-28 Miklos Szeredi <[email protected]>
* Add POSIX file locking support
* Add request interruption
2006-06-06 Miklos Szeredi <[email protected]>
* Add missing pthread_rwlock_destroy(). Patch from Remy Blank
2006-06-05 Remy Blank <[email protected]>
* lib: canonicalize mount point in fuse_helper_opt_proc() so that
unmounting succeeds even if mount point was relative.
2006-06-04 Csaba Henk <[email protected]>
* lib: fix emergency umount in helper.c when malloc fails.
(The way it was done would end up in a segfault.)
2006-06-01 Csaba Henk <[email protected]>
* lib: adjust threading related compiler flags.
Switch to "-pthread" from "-lpthread" as that's the preferred
one on several platforms. Consulted with Terrence Cole and
Miklos Szeredi
2006-05-08 Miklos Szeredi <[email protected]>
* lib: search fusermount in installation directory (bindir) as
well as in PATH.
2006-05-03 Miklos Szeredi <[email protected]>
* lib: fix compilation if CLOCK_MONOTONIC is not defined.
Reported by Christian Magnusson
2006-04-23 Csaba Henk <[email protected]>
* lib: make FreeBSD mount routine recognize if kernel features
backgrounded init and if it does, run the mount util in foreground
(similarly to Linux)
2006-04-21 Miklos Szeredi <[email protected]>
* kernel: fix fput deadlock fix, the lockless solution could lead
to "VFS: busy inodes after umount..."
* kernel: fix race between checking and setting file->private_data
for the device. Found by Al Viro
2006-04-11 Miklos Szeredi <[email protected]>
* kernel: remove request pool, instead allocate requests on
demand. Account the number of background requests, and if they go
over a limit, block the allocation of new requests.
* kernel: fix deadlock if backgrounded request holds the last
reference to the super block
* kernel: don't use fuse_reset_request() during direct I/O
2006-04-06 Csaba Henk <[email protected]>
* lib: Let FreeBSD mount option parsing routine recognize "no"
prefixes for FUSE specific options as well
2006-04-01 Miklos Szeredi <[email protected]>
* lib: Add missing rwlock initialization. Patch by Ryan Bradetich
2006-03-17 Miklos Szeredi <[email protected]>
* API changes:
* fuse_main(), fuse_setup() and fuse_new() have an additionl
user_data parameter
* fuse_mount() returns a 'struct fuse_chan' pointer instead of a
file descriptor
* fuse_unmount() receives a 'struct fuse_chan' pointer. It
destroys the given channel
* fuse_teardown() no longer has a file descriptor parameter
* new exported functions: fuse_session_remove_chan(),
fuse_get_session(), fuse_daemonize()
* fuse_chan_recv() may now return a new channel which will be used
to send the reply
2006-03-16 Miklos Szeredi <[email protected]>
* Released 2.6.0-pre2
2006-03-16 Miklos Szeredi <[email protected]>
* Don't unmount if already unmounted. This fixes a problem seen
in the following situation: Lazy unmount a busy filesystem; Mount
a new one in top; When the first finally unmounts, the second also
unmounts. Reported by Franco Broi
2006-03-15 Miklos Szeredi <[email protected]>
* lowlevel lib: use indirect function calls instead of a
switch/case construct. Besides increased efficiency it helps
maintainability & readability too. Patch from Florin Malita
2006-03-13 Miklos Szeredi <[email protected]>
* kernel: replace global spinlock with a per-connection spinlock
2006-03-10 Miklos Szeredi <[email protected]>
* Fix source compatibility breakage for fuse_unmount(). Report
from Yura Pakhuchiy
2006-03-02 Miklos Szeredi <[email protected]>
* Fix O_ASYNC handling in fuse_dev_release(). From Jeff Dike
2006-03-01 Miklos Szeredi <[email protected]>
* Add O_ASYNC and O_NONBLOCK support to FUSE device. Patch by
Jeff Dike
* Renamed fuse_chan_receive() to fuse_chan_recv() and changed
interface to return -errno in case of error.
2006-03-01 Csaba Henk <[email protected]>
* libfuse: pass device file descriptor to fuse_unmount(), rewrite
FreeBSD implementation so that it uses libc (sysctl backed) instead
of an embdedded script (kmem backed). Adjust the control flow of
hello_ll so that device doesn't get closed before unmount attempt.
2006-02-25 Miklos Szeredi <[email protected]>
* Lowlevel lib: return all-zero statvfs data if filesystem doesn't
implement method. This is needed on FreeBSD, and nicer on Linux
too. Highlevel lib already did this. Reported by Csaba Henk
* Fix negative entry handling. There was a bug, that negative
lookups with timeouts (nodeid == 0) returned -EIO.
2006-02-23 Miklos Szeredi <[email protected]>
* Fix race between RELEASE and UNLINK, which might leave
.fuse_hidden* files around
2006-02-21 Miklos Szeredi <[email protected]>
* fusexmp_fh: implement flush() method and call close() on the
open file descriptor. This is needed if used on an NFS
filesystem, which buffers data until file is closed. Franco Broi
spotted the situation when 'cp -p' failed to set the modification
time because of this.
2006-02-20 Miklos Szeredi <[email protected]>
* Released 2.6.0-pre1
2006-02-19 Miklos Szeredi <[email protected]>
* libfuse: fix use-after-free bug in interruptred reply_entry().
Patch from John Muir
* libfuse: fix wrong symbol versioning for fuse_mount. Debian bug
ID: 352631. Found by Stéphane Rosi
2006-02-17 Miklos Szeredi <[email protected]>
* Lowlevel lib: Unify fuse_dirent_size() and fuse_add_dirent()
into a single function fuse_add_direntry(). This cleans up the
interface and makes it possible to do stacking.
2006-02-16 Miklos Szeredi <[email protected]>
* Fix rare race betweeen abort and release caused by failed iget()
in fuse_create_open().
* Add 'ac_attr_timeout' option e.g. for filesystems which do their
own attribute caching.
2006-02-15 Miklos Szeredi <[email protected]>
* Work around FreeBSD runtime linker "feature" which binds an old
version of a symbol to internal references if the symbol has more
than one version. This resulted in infinite recursion in
fuse_lowlevel_new_compat25().
2006-02-10 Csaba Henk <[email protected]>
* Refine clock_gettime() querying so that linker options
shall be set as it's appropriate for the target platform.
2006-02-09 Miklos Szeredi <[email protected]>
* Fix udev rule syntax. Reported by Nix
2006-02-08 Miklos Szeredi <[email protected]>
* In some cases udev rule seems to be ineffective when installed
as 40-fuse.rules but work as 60-fuse.rules. Reported by John Hunt
2006-02-03 Miklos Szeredi <[email protected]>
* Fix compilation when build directory is different from source
directory. Reported by Frédéric L. W. Meunier
2006-02-02 Miklos Szeredi <[email protected]>
* Fix even bigger bug introduced in fix for request_end() on
2006-01-14. Reported by Gal Rosen
2006-01-30 Miklos Szeredi <[email protected]>
* highlevel-lib: add 'auto_cache' option. This caches file data
based on modification time and size
2006-01-20 Miklos Szeredi <[email protected]>
* Sanitize storage type and help message in mount_bsd.c. Patch
from Csaba Henk
* fuse_opt: add new helper constants FUSE_OPT_KEY_KEEP and
FUSE_OPT_KEY_DISCARD
* Add options 'max_readahead', 'sync_read' and 'async_read'
* Kernel ABI version 7.6:
* Negotiate the 'max_readahead' value and 'async_read' flags with
userspace in the INIT method
* Add connection info to ->init() methods to both lowlevel and
highlevel API
* Fall back to synchronous read() behavior if either library or
userspace filesystem is using the old interface version. This is
needed so non-updated filesystems won't be confused by the
different read() behavior
2006-01-19 Miklos Szeredi <[email protected]>
* lib: if "fsname=" option was given, pass it to fusermount
* fuse_opt: add new fuse_opt_insert_arg() function, which is
needed by filesystems to implement some argument manipulations
correctly
* fuse_opt: fix memory leak in handling "--" option
2006-01-18 Miklos Szeredi <[email protected]>
* kernel: fix detection of case when fuse is not configured into
the kernel either as module or built-in
* fuse_opt.h: fix incompatibility with C++ compilers by renaming
'template' structure member to 'templ'. Reported by Takashi Iwai
* fuse.h: fix compatibility bugs. Patch by Yura Pakhuchiy
* kernel: support version 2.6.16 (i_sem -> i_mutex)
2006-01-16 Miklos Szeredi <[email protected]>
* Added (again) asynchronous readpages support
* Each connection now shows up under /sys/fs/fuse/connections
* Connection attributes exported to sysfs: 'waiting' number of
waiting requests; 'abort' abort the connection
* Connection may be aborted through either the sysfs interface or
with 'umount -f mountpoint'
2006-01-14 Miklos Szeredi <[email protected]>
* Released 2.5.0
2006-01-14 Miklos Szeredi <[email protected]>
* kernel: fix a couple of bugs
* Order of request_end() and fuse_copy_finish() was wrong.
Posthumous note: Franco Broi managed to exploit this, though it
seemed quite impossible
* request_end() used request pointer after decrementing refcount
* Clearing ->connected or ->mounted connection flags could race
with setting other bitfields not protected with a lock
2006-01-10 Miklos Szeredi <[email protected]>
* kernel: add necessary compile flags for 2.4.X/x86_64.
Report from Sean Ziegeler
2006-01-09 Miklos Szeredi <[email protected]>
* Released 2.5.0-pre2
2006-01-09 Miklos Szeredi <[email protected]>
* Applied patch from Csaba Henk, to update mount_bsd to new
fuse_mount() semantics
* Ignore auto,noauto,... options in mount.fuse. Reported by Frank
Steiner and Don Taber