-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChangeLog
424 lines (359 loc) · 18 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
nilfs-2.0.23 Sun Apr 1, 2012 JST
* fix kernel oops at nilfs_page_debug()
* fix potential integer overflow in nilfs_ioctl_clean_segments()
* fix NULL pointer dereference in nilfs_load_super_block()
* clamp ns_r_segments_percentage to [1, 99]
* use page_has_buffers instead of PagePrivate()
* avoid overflowing segment numbers in nilfs_ioctl_clean_segments()
nilfs-2.0.22 Sun Jun 19, 2011 JST
* fix problem in setting checkpoint interval
* fix missing block address termination in btree node shrinking
* fix incorrect block address termination in node concatenation
* avoid rec_len overflow with 64KB block size
* insert checkpoint number in segment summary header to ensure
offline rollback operation.
* use checkpoint number instead of timestamp to select super block
* sync super blocks in turns instead of updating both super blocks
at a time.
* do not update mount time on rw->ro remount
* support automatic rollback from the previous checkpoint.
* do not update log cursor for small change so that super blocks
are not excessively written to disk.
* clarify byte offset in super block format
* add feature set fields to super block and reject incompatible
filesystem
* append blocksize info to warnings during loading super blocks
* zero fill unused portion of super root block
* correct super root size calculation
* move out mark_inode_dirty calls from bmap routines to mitigate
overhead for truncate and delete operations.
* add free entries count only if clear bit operation succeeded
* decrement inodes count only if raw inode was successfully
deleted
* coding style fixes and cleanups
nilfs-2.0.21 Mon Jan 10, 2011 JST
* fix compilation error on centos 5
* change default of 'errors' mount option to 'remount-ro' mode
* add sanity check in nilfs_btree_add_dirty_buffer
* fix list corruption after ifile creation failure
* fix buffer head leak in nilfs_btnode_submit_block
* fix leak of shadow dat inode in error path of load_nilfs
nilfs-2.0.20 Sun Jun 27, 2010 JST
* avoid readahead on metadata file for create mode
* do not return io error for bio allocation failure
* always lookup disk block address before reading metadata block
* return EINVAL when finding bad btree node
* add missing initialization of s_mode
* fix open_bdev_exclusive stab code
* enlarge s_volume_name member in nilfs_super_block
* fix typos, update comments, coding style fixes, and trivial fixes
nilfs-2.0.19 Sat Mar 13, 2010 JST
* update mailing list address
* fix potential hang in nilfs_error on errors=remount-ro
* add missing reader's lock in nilfs_ioctl_sync
* fix potential leak of dirty data on umount
* show missing mount options in /proc/mounts.
* change mount option to disable write barriers; "nobarrier" is
used instead of "barrier=off".
* add "norecovery" mount option
* use mnt_want_write in ioctls where write access is needed
* apply readahead for recovery on mount
* sync superblock by nilfs thread instead of periodic write_super
callback
* fix C99 violation about storage-class specifier
* trivial coding style fix
nilfs-2.0.18 Sun Nov 22, 2009 JST
* fix kernel oops in error case of nilfs_ioctl_move_blocks
* fix lock order reversal in chcp operation
* fix dirty page accounting leak causing hang at write
* add zero-fill for new btree node buffers
* fix irregular checkpoint creation due to data flush
* Cleanups; remove unused functions and inconsistent comment
nilfs-2.0.17 Sun Oct 04, 2009 JST
* fix missing zero-fill initialization of btree node cache
* fix missing initialization of i_dir_start_lookup member
* An unassigned variable is assigned to a never used structure
member.
* add more check routines in mount process
* use semaphore to protect pointer to a writable FS-instance
* fix format string compile warning (ino_t)
* fix ignored error code in __nilfs_read_inode()
nilfs-2.0.16 Sat Sep 12, 2009 JST
* fix preempt count underflow in nilfs_btnode_prepare_change_key
* fix oops due to inconsistent state in page with discreate b-tree
nodes
* fix missing a read lock for segment writer in
nilfs_attach_checkpoint()
* fix missing unlock in error path of nilfs_mdt_write_page
* support is_partially_uptodate aops
* support contiguous lookup of blocks
* include RHEL/CentOS configuration in kern feature
* add sync_page method to page caches of meta data
* use device's backing_dev_info for btree node caches
* return EBUSY against delete request on snapshot
* allow future expansion of metadata read out via get info ioctl
* cleanup bmap/btree code
* eliminate removal list of segments and header file for segment
list operations
* correct exclusion control in nilfs_remount() function
* correct misuse of sget() function
* get rid of bd_mount_sem use from nilfs
nilfs-2.0.15 Sat Jul 11, 2009 JST
* enable sync_page method; this adds a missing sync_page method
which unplugs bio requests during lock retries on pages. This
will improve read performance of nilfs.
* fix bh leak in nilfs_cpfile_delete_checkpoints function
* fix disorder in checkpoint count on error during deleting
checkpoints
* fix hang problem of log writer which occurs after write failures
* remove unlikely directive causing mis-conversion of error code
* fix lockdep warning between regular file and inode file
* fix incorrect KERN_CRIT messages in case of write failures
* correct display of sequence counter printed when request has
completed
* separate debug message related to transaction from ones for
segment
nilfs-2.0.14 Sat May 23, 2009 JST
* fix memory leak in nilfs_ioctl_clean_segments; this will fix the
memory leak problem slipped into nilfs-2.0.13. The memory leak
arises every time the garbage collection of nilfs runs. Thanks
to Kentaro Suzuki for finding this problem.
* set bio unplug flag for the last bio in segment
nilfs-2.0.13 Sun May 17, 2009 JST
* check size of array structured data exchanged via ioctls; this
adds missing sanity checks to ioctls and prevents memory access
overrun in kernel code due to incorrect argument data of the
ioctls.
* ensure to clear dirty state when deleting metadata file block;
this will fix the following failure during GC:
nilfs_cpfile_delete_checkpoints: cannot delete block
NILFS: GC failed during preparation: cannot delete checkpoints:
err=-2
* fix lock order reversal in nilfs_clean_segments ioctl
* fix possible circular locking for get information ioctls
* fix circular locking dependency of writer mutex
* fix possible recovery failure due to block creation without
writer; this will fix a boundary condition bug on mount time
recovery.
* replace BUG call in nilfs_dat_translate with WARN_ON
* fix possible mismatch of sufile counters on recovery
* fix wrong accounting in nilfs_sufile_set_error
* fix improper return values of nilfs_get_cpinfo ioctl
* rename nilfs_fs.h to nilfs2_fs.h to catch up in-tree code.
nilfs-2.0.12 Mon Mar 30, 2009 JST
* support kernel 2.6.29 for the record.
* fix malfunction of nilfs_get_suinfo ioctl in which active flags
were marked on wrong segments. This will fix the recent GC
problem causing filesystem corruption which was reported by
David Arendt and Andreas Hartmetz. Thanks for feedback!
* fix duplicate brelse calls in nilfs_sufile_set_error().
* fix false detection of lockdep checks for recursive locking
around meta data files and bmap semaphores.
nilfs-2.0.11 Fri Mar 13, 2009 JST
* fix a compilation error on kernel 2.6.29-rc7.
* introduce nanosecond timestamp; this resolves the problem around
the tar program that it sometimes fails to expand symlinks.
nilfs-2.0.10 Sat Mar 7, 2009 JST
* introduce secondary super block for improving reliability
* mark minor flag for checkpoints created by internal operation.
This allows userland application to identify whether each
checkpoint is created by file system change or internal operations
such as garbage collection or checkpoint mode change.
* simplify handling of active state of segments; this reduces loc
of segment constructor.
* clean up sketch file. Now .sketch is treated as a regular file.
nilfs-2.0.9 Wed Mar 4, 2009 JST
* fix endian issue in checksumming on super block. Big endian
machines are affected by this change. For big endian machines,
you can keep compatibility against future releases of existing
partitions by once mounting them with this version.
nilfs-2.0.8 Thu Feb 19, 2009 JST
* change ioctl API to fix architecture dependent problems. In the
prior versions, for example, 32bit nilfs-utils malfunctioned on
the x64-64 kernels. This change requires new utilities, i.e.
nilfs-utils-2.0.8, and the prior utilities don't operate on
this. The disk format has not changed. The detail changes are
as follows:
- use fixed sized types for ioctl structures
- remove timedwait ioctl command
- remove compat ioctl code
- extend nilfs_sustat ioctl structure to eliminate volatile_active
flag; this allows to simplify segment writer implementation.
* use unlocked_ioctl instead of old ioctl to avoid using big kernel
lock.
* convert BUG_ON and BUG calls triggerable from ioctl into innocuous
error handlings or WARN_ON calls.
nilfs-2.0.7 Wed Feb 11, 2009 JST
* fix comilation errors on kernel 2.6.29-rc1.
* fix buggy behavior seen in enumerating checkpoints.
* fix wrong counting of checkpoints and dirty segments reported by
Reinoud Zandijk.
* fix miss sync issue for do_sync_mapping_range which can be called
from the sync_file_range() system call.
* remove several bmap wrapper macros.
* clean up indirect function calling convention used in
bmap/btree/direct to follow the normal kernel coding style.
nilfs-2.0.6 Mon Jan 12, 2009 JST
* fix compilation errors on kernel 2.6.28.
* fix gc failure on volumes keeping numerous snapshots.
* remove compat code to support old kernels prior to 2.6.18.
* fix problem of memory allocation in ioctl (revised patch to use
order 0 allocation).
* return error instead of causing a BUG_ON() failure when btree runs
into an invalid node block.
* add tag files of gtags to .gitignore.
* avoid double error handlings of nilfs_transaction_end() by dividing
it to nilfs_transaction_commit() and nilfs_transaction_abort().
* do cleanups, add some comments and debug code.
nilfs-2.0.5 Thu Oct 23, 2008 JST
* support kernel 2.6.27.
* fix problems of memory allocation in ioctl.
* fix reset problem of DAT block count.
* fix possible infinite loop in nilfs_dispose_gcinode_list.
* ensure writeback of super block; sync_dirty_buffers() clears the
dirty flag of specified buffer even if it returns -EOPNOTSUPP
(failed barrier request) or -EIO (I/O error). The previous
implementation takes this wrong, and causes a possibility to miss
writeback failure of the super block. This version corrects the
issue.
* make buffer read concurrent for gc cache. The previous gc cache
code waits for buffers for each data or node block while reading
blocks to be moved. This makes it in parallel by separating their
submissions and waitings, and this would mitigate I/O overhead during
GC.
* enhance disk format compatibility of the cpfile, sufile, and dat
file. Althouth entry sizes of these meta data files are given in
the super block, these values were not used in the meta data files.
* use standard page cache for btree node caches. Former versions used
a peculiar page cache for btree nodes. This finally removed it, and
greatly simplified the entire source code.
* unify dat allocator and inode allocator. Finally these two similar
allocators are integrated into one persistent object allocator.
* add nilfs2.txt, which is a document supplied with the nilfs2 kernel
patch set.
* Cleanups; remove unused functions and macros. remove unnecessary
gc inode spinlocks, redundant code. apply kernel common functions.
remove new checkpatch warnings.
nilfs-2.0.4 Wed Aug 6, 2008 JST
* fix hangup problem while deleteing huge files:
Alexander Schier had reported that OOM killer was invoked while
deleting very large files. This turned out to be the problem of
a btree truncate routine, which creates a number of dirty blocks for
huge files without permitting to write them out.
A similar problem was also found in file truncation.
This fixes these problems by allowing NILFS2 to write out dirty
blocks during terminating or truncating bmap of huge files.
Thank you Alex for reporting this issue.
* supported kernel 2.6.27-rc1 experimentally.
* remove redundant code and resolve new checkpatch warnings.
nilfs-2.0.3 Mon Jul 14, 2008 JST
* add 2.6.25 and 2.6.26 to the supported kernel versions.
* fix a compile-time error for the kernel 2.6.26 in case of
CONFIG_NILFS_DEBUG=y.
* fix build errors on ia64 machines.
* fix hang problem after read/write remount.
* improve writeback implementation to avoid page locks and allow read
accesses against page cache during writebacks.
* eliminate the prepare dirty flag on B-tree node pages to reform
readability of the B-tree cache code.
* revise README.
* Cleanups; remove unused code or redundancy in the code,
resolve several type of checkpatch warnings, and so forth.
nilfs-2.0.2 Wed Mar 26, 2008 JST
* fix mount failure of nilfs-2.0.1 for 2.0.0 filesystem.
Thanks to Adrian Ulrich for his quick report.
* fix another mis conversion of sector_div() in alloc.[ch].
* replace PAGE_DEBUG() + BUG() pairs with PAGE_BUG() that prints
some more information on the specified page also for no debug
version.
nilfs-2.0.1 Mon Mar 24, 2008 JST
* add nfs support.
* fix arithmetic range overflow of alloc.h.
* fix gcc-4.2 warnings on 64-bit machines.
* make many changes to avoid scripts/checkpatch.pl errors and warnings
due to violations of the Linux kernel coding style. Most of them
are lexical adjustments, but include some influential changes such
as removal of typedefs.
* prevent premature writeback of super block.
* incorporate changes on nilfs_fs.h to prepare for future extensions.
* adjust mount-time revision check of disk format not to break
forward compatibility among NILFS versions with a same major
revision.
* extend the period of copyright notice to include 2008.
* use kthread_run() instead of kernel_thread().
* remove unused declarations and needless functions.
* integrate symlink.c into namei.c.
* remove expanded rcs keywords.
* remove comments to overwrite emacs mode.
* remove C99 style comments.
* add .gitignore.
nilfs-2.0.0 Mon Feb 18, 2008 JST
* Removed fastcall specifiers to fix a compile-time error on kernel
2.6.25-rc2.
* Reflected the changes of ioctl() interface on the previous release
to ioctl32(). This fixes errors of nilfs-utils arising on 32-bit
Linux environments with a 64-bit kernel.
nilfs-2.0.0-testing-9 Wed Feb 13, 2008 JST
* Supported kernel 2.6.25-rc1 experimentally.
* Fixed compiler errors that occur where CONFIG_LBD is not defined.
* Fixed an elementary bug that causes a NULL-pointer dereference
exception when a snapshot mount was tried with an invalid option.
* Fixed a hang problem arising under a near disk full condition.
This change simplifies error handlings of such condition and the
sematics of reserved disk space; now it works as a margin just for
the cleaner. Additionally, a lower limit was adopted for the number
of reserved segments to improve the stability on small partitions.
* Fixed a few bugs of write routines that cause hang problems.
Thanks to Gergely Gábor for his helpful reports and cooperation.
nilfs-2.0.0-testing-8 Thu Dec 27, 2007 JST
* Fixed a timing problem of a shrinker that causes a critical list
corrption of B-tree node pages.
* Fixed a dead lock problem of the segment constructor that may occur
when issuing direct I/O reads.
* Fixed memory allocation failures on ioctl.c due to fragmentation.
* Fixed a few minor bugs around the B-tree node buffers.
* Revised the segment buffer for simplicity and for maintainability.
* Separated some declarations for the list of full segments from the
segment constructor (seglist.h). This nasty file would be removed
in a future release.
nilfs-2.0.0-testing-7 Thu Nov 29, 2007 JST
* Supported kernel 2.6.24-rc3 experimentally.
* Fixed failures in case where the block size is smaller than
the page size.
* Fixed a compatiblity issue that causes ioctl errors where the
kernel and userland programs have different integer length.
* Fixed a leak bug of btree node buffers at nilfs_btree_mark().
* Fixed possible failures due to missing exclusion controls of
nilfs_bmap_propagate() and nilfs_bmap_assign().
* Fixed a possible race problem in nilfs_prepare_write().
* Revised source code around btree node buffers, pages, and shadow
DAT in order to get rid of timing bugs and leak bugs.
nilfs-2.0.0-testing-6 Mon Oct 22, 2007 JST
* Fixed a bug that may cause corruption of meta data files or
regular files. This fix would resolve serveral serious problems
and improves the stability especially for small memory machines.
* Fixed a minor bug that led to a failure when deleting checkpoint
directly through ioctl.
nilfs-2.0.0-testing-5 Mon Oct 15, 2007 JST
* Fixed a deadlock problem and block address translation errors
caused by a missing initialization of the btree node cache on
shadow DAT.
nilfs-2.0.0-testing-4 Thu Oct 11, 2007 JST
* Supported kernel 2.6.23
* Fixed a security hole arround nilfs_find_entry()
* Inserted some printks to analyze problems arround shadow dat pages
for garbage collection.
nilfs-2.0.0-testing-3 Tue Jul 24, 2007 JST
* Supported kernel 2.6.22
* New ioctl ``nilfs_sync()'' is introduced
* Fix BUGON issue at nilfs_btnode_prepare_change_key()
* Fix BUGON issue at __nilfs_btnode_get_page()
* Fix bug around nilfs_delete_inode()
* Fix deadlock under memory shortage condition
* Supported kernel 2.6.23-rc1 experimentally
nilfs-2.0.0-testing-2 Tue Jun 20, 2007 JST
* Applied readahead to meta-data files to improve performance.
nilfs-2.0.0-testing Wed Jun 13, 2007 JST
* The first release.
* Implemented the Garbage Collector.
* Rewrote almost all of the source code.