~ubuntu-branches/ubuntu/vivid/aufs/vivid

« back to all changes in this revision

Viewing changes to History

  • Committer: Bazaar Package Importer
  • Author(s): Julian Andres Klode
  • Date: 2007-12-15 23:32:51 UTC
  • mto: This revision was merged to the branch mainline in revision 6.
  • Revision ID: james.westby@ubuntu.com-20071215233251-1emj2gj6sz0osjlr
Tags: upstream-0+20071211
ImportĀ upstreamĀ versionĀ 0+20071211

Show diffs side-by-side

added added

removed removed

Lines of Context:
2
2
History of aufs
3
3
Junjiro Okajima
4
4
 
5
 
# $Id: History,v 1.26 2007/06/04 02:19:32 sfjro Exp $
 
5
# $Id: History,v 1.59 2007/12/10 01:20:58 sfjro Exp $
6
6
 
7
7
Note:
8
8
- the described date are all in JST.
13
13
 
14
14
----------------------------------------------------------------------
15
15
 
 
16
20071210
 
17
- bugfix: AUFS_LHASH_PATCH depends on AUFS_FAKE_DM = n, reported by
 
18
  Russell Harmon and Heinrich Rebehn.
 
19
- bugfix: a xino-truncation thread must not wait for other threads.
 
20
- add a note about setting 'n.'
 
21
- move all the declaration from super.h to branch.h.
 
22
- rename struct xino to xino_entry.
 
23
- rename au_opt_xino_trunc to au_opt_xino_itrunc.
 
24
- preparing new xino files (unfinished).
 
25
 
 
26
20071203
 
27
- bugfix: a race in revalidating a dentry, reported by Jason Lunz.
 
28
- bugfix: specifying noxino at mount time, reported by Jason Lunz.
 
29
- bugfix: stop using /tmp/aufsvars.mk (complete fix for last ci).
 
30
- bugfix: stop using /tmp/uloopvars.mk.
 
31
- introduce truncating xino files (experimental), reported by Jason
 
32
  Lunz. it will be removed if nobody is interested.
 
33
  + define TMPFS_MAGIC.
 
34
  + define blkcnt_t type for linux-2.6.16.
 
35
  + new options trunc_xino, notrunc_xino, trunc_xino=<branch path>,
 
36
    and itrunc_xino=<branch index>.
 
37
  + new functions xino_trunc() and au_test_trunc_xino().
 
38
  + new functions xino_do_trunc(), xino_try_trunc() and xino_trunc().
 
39
  + new macros AUFS_XINO_TRUNC_INIT and AUFS_XINO_TRUNC_STEP.
 
40
- introduce new patches, ubuntu-2.6.22-14.46.patch and
 
41
  ubuntu-edgy.patch.
 
42
  + extract a patch for ubuntu-edgy.
 
43
 
 
44
20071126
 
45
- begin supporting linux-2.6.24.
 
46
  + introduce CONFIG_AUFS_SEC_PERM_PATCH and a new patch for kernel,
 
47
    sec_perm-2.6.24.patch.
 
48
  + call vfsub_notify_change() twice when the branch is NFS and
 
49
    s[ug]id bit is set to the inode.
 
50
  + the type of an argument for export functions are changed to struct
 
51
    fid.
 
52
  + find_exported_dentry operation is removed.
 
53
  + support noexec mount option for a branch.
 
54
  + ignore mode when clearing s[ug]id bit.
 
55
- introduce a new policy for create, pmfs (parent and then mfs) mode.
 
56
- a new sample for ULOOP driver, ulobdev, which supports generic block
 
57
  device.
 
58
- bugix: try removing /tmp/aufsvars.mk after becoming useless,
 
59
  reported by Russell Harmon (but it cannot be supported fully).
 
60
- add a note about 'make -f local.mk kconfig'
 
61
 
 
62
20071119
 
63
- introduce a new semantics for link(2) and rename(2), and three
 
64
  policies to select one among multiple writable branches (completed).
 
65
  + implement a new create policy 'mfsrr.'
 
66
- bugfix: remove __exit attribute from sysaufs_fin().
 
67
- replace 'hidden_' prefix by 'h_.'
 
68
- refine to support every version of realtime patch.
 
69
 
 
70
20071112
 
71
- introduce a new semantics for link(2) and rename(2), and three
 
72
  policies to select one among multiple writable branches (testing).
 
73
  + support atomic_create in round robin mode.
 
74
  + a new function au_wbr() for link(2) and rename(2).
 
75
  + a new policy mfs and mfsrr.
 
76
  + call ->init and ->fin at setting the option.
 
77
  + refine over all.
 
78
  + implement copyup policies.
 
79
- remove an unused parameter of au_dtime_revert().
 
80
- consolidate nameidata for lower branches (uncompleted).
 
81
  + a new function au_dup_nd().
 
82
 
 
83
20071105
 
84
- bugfix: memory leak in an error path of handling FMODE_EXEC.
 
85
  + initialize a spinlock in hdentry by new funcions
 
86
    au_h_dentry_init() and au_h_dentry_init_all().
 
87
  + free the unused filp.
 
88
  + always copy FMODE_EXEC flag.
 
89
  + refine au_find_h_intent().
 
90
  + refine using a spinlock in hdentry.
 
91
  + open the lower file explicitly when the stored nameidata.intent is
 
92
    empty.
 
93
- bugfix: support inode which has lower inodes unmatching with dentry.
 
94
- introduce a new semantics for link(2) and rename(2), and two
 
95
  policies to select one among multiple writable branches (testing).
 
96
  + a new semantics for link(2) and rename(2) is enabled by default,
 
97
    while it is still testing and the documentation is commented out.
 
98
  + refine copy up/down by adding some parameters.
 
99
  + revise an error message.
 
100
  + new functions au_update_dbrange() and au_update_dbend().
 
101
  + add some members for policies.
 
102
  + new function au_cpdown_dirs().
 
103
  + new functions vfsub_sio_mkdir() and vfsub_sio_rmdir().
 
104
  + implement round-robin policy.
 
105
- support 'tri-state' of lower d_revalidate().
 
106
- enable CONFIG_AUFS_RR_SQUASHFS by default, suggested by Julian
 
107
  Andres Klode.
 
108
- replace 'hiide_' prefix by 'h_'.
 
109
 
 
110
20071030
 
111
- bugfix: introduce a new patch deny_write_access.patch and configuration
 
112
  CONFIG_AUFS_DENY_WRITE_ACCESS_PATCH, reported and tested by Ulrich
 
113
  Holeschak.
 
114
  + leave atomic open and let the lower filesystem handle it even if
 
115
    FMODE_EXEC was specified, and make it deny write access later.
 
116
  + keep the dirty trick to handle FMODE_EXEC in aufs.
 
117
  + refine the trick to handle FMODE_EXEC by checking inode and its
 
118
    mode, but still it is dirty.
 
119
  + call {deny,allow}_write_access() when aufs is linked statically or
 
120
    CONFIG_AUFS_DENY_WRITE_ACCESS_PATCH is enabled.
 
121
- add a note about exporting aufs via NFS.
 
122
 
 
123
20071029
 
124
- bugfix(SMP): memory barrier to flush f_mode in case of FMODE_EXEC.
 
125
- the modification on 20071026 was my mistake. it was not a bug. refined
 
126
  it.
 
127
- a new file Tips, some tips for using aufs.
 
128
- introduce two policies to select one among multiple writable
 
129
  branches (unfinished).
 
130
  + new options create_policy and copyup_policy, and handlers for them.
 
131
  + new file wbr_policy.c
 
132
  + re-write some functions to select a writable branch, and move them
 
133
    from branch.c to wbr_policy.c.
 
134
  + new function au_cp_dirs() which is a framework to support copy-up
 
135
    and copy-down.
 
136
  + refine au_cpup_dirs() by au_cp_dirs().
 
137
  + remove find_rw_br().
 
138
  + consolidate several args of au_wr_dir() into single structure with
 
139
    bit fields.
 
140
  + new macros AuWbrCreate() and AuWbrCopyup().
 
141
- refine flags corresponding to mount options
 
142
  + a new structure au_opts_flags.
 
143
  + a new function au_opts_flags_def().
 
144
  + refine br_perm_str(), udba_str() and coo_str() by
 
145
    a new function au_parser_pattern(), and rename them to
 
146
    au_optstr_br_perm(), au_optstr_udba() and au_optstr_coo()
 
147
    respectively.
 
148
  + remove udba_set() and coo_set().
 
149
  + replace au_flag_test() by a new macro AuFlag().
 
150
  + replace au_flag_clr() by a new macro AuFlagSet().
 
151
  + replace au_flag_set() by a new macro AuFlagSet().
 
152
  + refine au_flag_test_udba_inotify().
 
153
  + rename need_dlgt() to au_need_dlgt().
 
154
- minor optimization for new_br_id().
 
155
- re-define FMODE_EXEC for backward compatibility.
 
156
- rename 'hidden_' prefix to 'h_'.
 
157
- use macros in linux/compiler.h. (unfinished)
 
158
- Tomas M made a donation. Thank you very much.
 
159
 
 
160
20071026
 
161
- bugfix: mis-typing dentry and src_dentry. totally wrong.
 
162
 
 
163
20071022
 
164
- security enhancement or possible bug fix: support FMODE_EXEC and
 
165
  {deny,allow}_write_access() for an executable and put_write_access()
 
166
  for an open file for writing on a branch. for linux-2.6.17 and later.
 
167
- bugfix: replace a direct access to dentry->d_parent by
 
168
  dget_parent().
 
169
- create patch sub directory and move all patches under it, suggested
 
170
  by Julian Andres Klode.
 
171
- support GFP_TEMPORARY which will be introduced into mainline kernel
 
172
  in the future.
 
173
- refine ignoring the internal inotify, completed.
 
174
  + stop using the isdir parameter of au_dtime_revert.
 
175
  + remove unnecessary variable.
 
176
  + stop locking the hidden grand parent dir.
 
177
  + remove a lock for the hidden grand parent dir.
 
178
  + new inode info lock class parent4.
 
179
- replace dget_parent() by a direct access to dentry->d_parent where
 
180
  the inode mutex is locked, in order to get better performance.
 
181
- support debug printing an empty file object.
 
182
- define trivial ilog2 macro to support old kernels.
 
183
 
 
184
20071015
 
185
- bugfix: at decoding a nfs handle, in the slowest way which will be
 
186
  invoked after other two method's failure, aufs generates the path
 
187
  for the decode target inode. and there was a bug in generating the
 
188
  path. when the inode is decoded by the two preceding methods, you
 
189
  will not meet this problem. this bug was reported by Luis Carlos
 
190
  Erpen de Bona.
 
191
- bugfix: typo in AUFS_PUT_FILP_PATCH, reported by Sandino Flores Moreno.
 
192
- testing writable nfs branch,
 
193
  + new function au_h_create() replacing au_fake_nd_create() +
 
194
    vfsub_create()
 
195
- rename some symbols,
 
196
  + au_is_nfs()         --> au_test_nfs()
 
197
  + au_is_def_rr()      --> au_test_def_rr()
 
198
  + do_is_overlap()     --> do_test_overlap()
 
199
  + 'hidden_'           --> 'h_'
 
200
  + au_is_subdir()      --> au_test_subdir()
 
201
  + is_overlap_loopback --> test_overlap_loopback()
 
202
  + is_overlap()        --> test_overlap()
 
203
  + au_is_aufs()        --> au_test_aufs()
 
204
  + sbr_is_whable()     --> sbr_whable()
 
205
  + au_is_debug()       --> au_test_debug()
 
206
  + is_au_wkq()         --> au_test_wkq()
 
207
  + is_anon()           --> AuTestAnon()
 
208
  + au_is_loopback()    --> au_test_loopback()
 
209
  + au_is_fuse()        --> au_test_fuse()
 
210
  + au_is_unique_ino()  --> au_test_unique_ino()
 
211
  + au_is_nfsd()        --> au_test_nfsd()
 
212
- add module prefix to some symbols.
 
213
- replacing si_flags by several bit fields (draft).
 
214
 
 
215
20071008
 
216
- bugfix: remove the debug messages for nfsv4, reported by Bertrand D.
 
217
- bugfix: remove BUG_ON macro for debug in verifying mount options.
 
218
- introduce AUFS_SUPER_MAGIC with temporary value.
 
219
- refine ignoring the internal inotify.
 
220
  + remove a parameter of cpup_iattr(), cpup_regular(),
 
221
    au_copy_file(), cpup_entry(), cpup_single(), sio_cpup_single(),
 
222
    cpup_simple(), sio_cpup_simple().
 
223
  + remove au_flags_cpup(), struct cpup_args, cpup_init(), cpup_real_dir().
 
224
  + introduce struct au_cpup_flags.
 
225
- add a module prefix to some symbols.
 
226
- minor (cosmetic level) changes.
 
227
- rename some symbols,
 
228
  + au_init_vdir()      --> au_vdir_init()
 
229
  + au_fin_finfo()      --> au_finfo_fin()
 
230
  + hidden_open()       --> au_h_open()
 
231
  + au_is_mmapped()     --> au_test_mmapped()
 
232
  + au_is_plinked()     --> au_test_plinked()
 
233
  + test_empty()        --> au_test_empty()
 
234
  + au_init_vdir()      --> au_vdir_init()
 
235
  + free_vdir()         --> au_vdir_free()
 
236
  + is_longer_wh()      --> nhash_test_longer_wh()
 
237
  + test_known_wh()     --> nhash_test_known_wh()
 
238
  + append_wh()         --> nash_append_wh()
 
239
  + init_hinotify()     --> au_hin_init()
 
240
  + alloc_hinotify()    --> au_hin_alloc()
 
241
  + free_hinotify()     --> au_hin_free()
 
242
- rename the prefix 'hidden_' to 'h_' for some symbols.
 
243
- call au_hin_free() directly.
 
244
 
 
245
20071001
 
246
- bugfix: name collision on ia64, reported and patched by Julian
 
247
  Andres Klode, Daniel Baumann, Otavio Salvador and dann frazier (I
 
248
  replaced si_flags by au_si_flags instead of aufs_si_flags).
 
249
- bugfix: when aufs is linked statically, /tmp/aufsvars.mk is
 
250
  unnecessary, reported by Tapani Raikkonen.
 
251
- support nfsv4 branch with improving nfsv3 branch (still testing)
 
252
  + handle nfsv4 in the same way as nfsv3 by lhash.patch.
 
253
  + CONFIG_AUFS_FAKE_DM must be disabled when using NFS (both nfsv3
 
254
    and v4) as an aufs branch in linux-2.6.19 and later.
 
255
  + CONFIG_AUFS_PUT_FILP and CONFIG_AUFS_LHASH_PATCH must be enabled
 
256
    when using NFS (both nfsv3 and v4) as an aufs branch in
 
257
    linux-2.6.19 and later.
 
258
  + gave up calling generic vfs_path_lookup() because aufs has to
 
259
    unlock the dir mutex temporary which must be inacceptable. and
 
260
    reverting the locking order of br_wh_rwsem in last ci.
 
261
  + support atomic open in nfsv4 in looking-up a whiteout.
 
262
  + support atomic open in nfsv4 at revalidating dentry by keeping a
 
263
    whiteout.
 
264
  + use nameidata for the internal file creation with disabling
 
265
    CONFIG_AUFS_FAKE_DM, new function fake_nd_create().
 
266
  + new macro intent() for wrapping the list in aufs_hdentry.
 
267
  + a new simple wrapper named hintent_put().
 
268
- move the definition of au_subsys_t from sysaufs.h from aufs.h.
 
269
- refine ignoring the internal inotify.
 
270
  + merge hin_ignore cache into hinotify.
 
271
  + revert a parameter of some vfsub functions.
 
272
  + revert the lock for the grand parent dir.
 
273
  + remove unnecessary events in aufs_read() and aufs_splice_read().
 
274
  + lock inotify_mutex at modifying the mask.
 
275
  + new function vfsub_ign_hinode().
 
276
  + add a parameter to dtime_restore().
 
277
  + a new macro init_hinotify() as a simple wrapper.
 
278
  + rename vfsub_init() to vfsub_args_init().
 
279
  + new small function itohi().
 
280
  + a global variable au_hin_nignore.
 
281
  + remove hin_ignore.h introduce in last ci.
 
282
- reduce IMustLock() debug macro with centralizing into vfsub
 
283
  functions.
 
284
- rename au_lkup_args to aufs_ndx.
 
285
- rename is_wh() to au_test_wh().
 
286
- rename is_diropq() to au_test_diropq().
 
287
- support fuse inode attributes in splice(2).
 
288
 
 
289
20070924
 
290
- bugfix: whiteout list may be obsoleted while aufs was sleeping,
 
291
  reported by Torsten Luettgert.
 
292
- begin supporting linux-2.6.23, still testing on rc6.
 
293
  + support splice(2).
 
294
  + introduce aufs_fault().
 
295
  + new patches and configurations,
 
296
    * splice-2.6.23.patch + AUFS_SPLICE_PATCH
 
297
    * put_flip.patch + AUFS_PUT_FILP_PATCH
 
298
    * sysfs_get_dentry.patch + AUFS_SYSFS_GET_DENTRY_PATCH
 
299
  + generate an auxiliary makefile /tmp/aufsvars.mk
 
300
  + remove a parameter from kmem_cache_create().
 
301
- begin supporting nfsv4, still testing.
 
302
  + support atomic_lookup and atomic_open.
 
303
  + refine the definition of AuNoNfsBranch, and move from branch.h to
 
304
    aufs.h.
 
305
  + lock br_wh_rwsem before h_dir, since aufs has to release the mutex
 
306
    for h_dir before vfs_path_lookup() and then lock it again.
 
307
  + add an argument to hidden_open() as search-key.
 
308
  + prepend prefix 'au_' to lkup_hash(), lkup_one(), do_lookup() and
 
309
    sio_lkup_one().
 
310
  + introduce au_fake_intent(), au_hin_after_reval() and au_lkup_intent().
 
311
  + add some members to struct lkup_args and set prefix 'au_'.
 
312
- describe about patches.
 
313
- introduce a counter for the internal inotify events to be ignored,
 
314
  unfinished and most of them will be removed soon.
 
315
  + new header file hin_ignore.h.
 
316
  + stop locking the hidden parent dir.
 
317
 
 
318
20070917
 
319
- bugfix: according to C99 6.10.3, the behaviour is undefined for
 
320
  preprocessor directive within a macro argument, reported by Al Boldi
 
321
  on linux-fsdevel ML.
 
322
- bugfix: replace the preceding single quotation by backquote,
 
323
  reported by Tomas M.
 
324
- introducing a new patch for openvz, openvz_028stab039.1.patch.
 
325
- preparing to support linux-2.6.23 (unfinished)
 
326
  + new configuration CONFIG_AUFS_SPLICE_PATCH and
 
327
    CONFIG_AUFS_SYSFS_GET_DENTRY_PATCH.
 
328
  + generate an auxiliary makefile /tmp/aufsvars.mk
 
329
  + begin supporting nfsv4, calling new VFS function vfs_path_lookup().
 
330
  + new functions for default nfs export operations.
 
331
  + support splice(2), and sendfile operation is dropped.
 
332
  + support inode operation truncate_range() and fallocate().
 
333
  + the function signature of kmem_cache_create() is changed.
 
334
  + warn about CONFIG_AUFS_SYSFS_GET_DENTRY_PATCH and
 
335
    CONFIG_AUFS_SPLICE_PATCH at compile time.
 
336
  + the parameter of bin_attribute.{read,write}() is changed.
 
337
- new configuration CONFIG_AUFS_RR_SQUASHFS.
 
338
  + rename au_is_rr() to au_is_def_rr() and make it simple.
 
339
  + udf is not set RR by default, suggested by Tomas M.
 
340
- remove a configuration CONFIG_AUFS_ISSUBDIR_PATCH which has less
 
341
  meaning.
 
342
- refine the AUFS_BRANCH_MAX warning message at compile time.
 
343
 
 
344
20070910
 
345
- a new sample, linux-vserver.txt.
 
346
 
 
347
20070903
 
348
- bugfix: handling whiteout in dlgt mode.
 
349
- bugfix: support umask in dlgt mode.
 
350
- uncomment AUFS_DLGT and dlgt option.
 
351
 
 
352
20070827
 
353
no news is good news.
 
354
 
 
355
20070820
 
356
- fixing typos, reported by Justin Pryzby.
 
357
- refine au_update_fuse_h_inode(), reported by Tomas M.
 
358
  + stop creating temporary anonymous dentry.
 
359
  + more verbose debug print.
 
360
 
 
361
20070813
 
362
- bugfix: force unlinking when CONFIG_AUFS_DLGT is enabled.
 
363
- bugfix: neg to pos by udba case. it is degrade bug which was born on
 
364
  2 July.
 
365
- bugfix: an error code of reval_inode().
 
366
- refine au_update_fuse_h_inode(),
 
367
  + wrapping by vfsub routines.
 
368
  + vfsub wrapper for __lookup_hash() and lookup_one_len().
 
369
  + remove dlgt in h_d_revalidate().
 
370
  + call it from fsync_dir() and aufs_fsync_dir().
 
371
  + call it from aufs_flush(), aufs_mmap(), aufs_sendfile() and
 
372
    aufs_fsync_nondir().
 
373
  + support getattr operation.
 
374
  + call it from hidden_readlink()
 
375
  + stop calling it from au_copy_file().
 
376
  + extract a part of if as a new macro au_is_fuse(), and move it from
 
377
    vfsub.c to super.h.
 
378
  + call it from call_notify_change()
 
379
  + do not support dlgt option.
 
380
  + always ignore the error code.
 
381
  + call it for the target dentry and its parent from
 
382
    do_vfsub_create(), do_vfsub_symlink(), do_vfsub_mknod(),
 
383
    do_vfsub_link(), do_vfsub_rename(), do_vfsub_mkdir(),
 
384
    do_vfsub_rmdir(), do_vfsub_unlink(), do_vfsub_read_u(),
 
385
    do_vfsub_write_u() and do_vfsub_readdir().
 
386
  + call it from do_xino_fwrite().
 
387
  + do not call it from xib_pindex(), xino_new_ino(), xino_read(),
 
388
    xino_create2(), do_xib_restore() and xino_set_xib().
 
389
 
 
390
20070806
 
391
- new sample, ULOOP driver and a daemon for http.
 
392
- describe about EXDEV error of rename(2) dir, reported by Jorgen
 
393
  P. Tjerno.
 
394
- stop unnecessary getattr for fuse.
 
395
 
 
396
20070730
 
397
- gave up supporting multiple xino files per a branch, which means the
 
398
  limitation of the largest value of inode number remains.
 
399
- introduce CONFIG_AUFS_WORKAROUND_FUSE.
 
400
- support fuse inode at copyup.
 
401
- add a note about user's Makefile, posted by Russell Harmon.
 
402
- add Acknowledgements.
 
403
- more verbose at deleting a branch.
 
404
- warn before processing a large file when CONFIG_AUFS_DEBUG is
 
405
  enabled.
 
406
- refine calling au_update_fuse_h_inode().
 
407
- begin of splice_read(), introducing au_is_loopback().
 
408
- stop using ARRAY_SIZE() macro since sparse warns.
 
409
 
 
410
20070723
 
411
- bugfix: sysrq.h requires errno.h when MagicSysRq is disabled,
 
412
  reported by Christian Hoffmann.
 
413
- beginning of a temporary workaround for fuse, make lookup-ed inode
 
414
  attribute reliable.
 
415
- use fs-magic number instead of fs-type string.
 
416
- support larger inode number
 
417
- there is a limitation of the largest value of inode number which
 
418
  will be addressd in the future.
 
419
 
 
420
20070716
 
421
- bugfix: cpup whiteout which was called #2 in last ci.
 
422
- begin supporting linux-2.6.22
 
423
  + introduce lhash patch for 2.6.22.
 
424
  + no more ksize.patch.
 
425
- introduce new branch permission 'rr.'
 
426
  + rename au_is_ro() to au_is_rr().
 
427
- introduce new (re)mount option, 'verbose' family, currently for
 
428
  deleting a branch only.
 
429
- support MagicSysRq key for debugging.
 
430
- testing CONFIG_AUFS_ROBR.
 
431
- testing new mount option for 'refreshing opened file'
 
432
  + a generation to branch.
 
433
  + typedef for every generation data.
 
434
  + stop packing branch id and si generation.
 
435
  + return of 'coo' option.
 
436
- discard pre-allocated block for xino bitmap.
 
437
- add a note about unmounting ore remounting root aufs at shutdown
 
438
  time.
 
439
- minor optimization for handling udba=inotify.
 
440
- rename hi_lock_XXX() to vfsub_i_lock_nested().
 
441
- rename hi_unlock() to vfsub_i_unlock().
 
442
- print inotify info for inode.
 
443
- move lock subclasses from hinode.h to vfsub.h.
 
444
 
 
445
20070709
 
446
- bugfix: force rewind at re-initializing vdir, reported by Michael
 
447
  Towers, Jorgen P. Tjerno and Sandino Flores Moreno.
 
448
- bugfix: copyup unlinked file.
 
449
  + bug #1, the file may or may not be opened, aufs needs to hold the
 
450
    copied-up temporary dentry, reported by Andreas Baetz.
 
451
  + bug #2, the file may be opened in multiple times.
 
452
  + stop dropping in cpup_regular().
 
453
  + revert AuDebugOn() from temporary WARN_ON().
 
454
  + move cpup_wh_file() in file.c to cpup.c as generic cpup_wh().
 
455
  + print wh_dentry in iinfo.
 
456
  + set wh_dentry in iifno.
 
457
  + call cpup_wh() when the file was removed.
 
458
- bugfix: overflow in multiply, reported by Jorgen P. Tjerno and Alexey
 
459
  Bazhin.
 
460
- bugfix: possible overflow in multiply.
 
461
- si_read/write_lock() supports AuLock_FLUSH which flushes the
 
462
  remaining hinotify handler.
 
463
- maintain the number of 'nowait' tasks.
 
464
- testing where si_read_trylock() should be called.
 
465
- testing CONFIG_AUFS_ROBR
 
466
- ksize.patch will be unnecessary after linux-2.6.22, kzrealloc() calls
 
467
  krealloc().
 
468
- extract a part of inode.h as a new file hinode.h.
 
469
- support lockdep at removing nfs branch.
 
470
- use hi_lock/unlock() for a hidden inodes, instead of i_lock/unlock().
 
471
- rename AUFS_[ID]_[RW]LOCK to AuLock_[ID][RW].
 
472
- rename i_lock/unlock() to vfsub_i_lock/unlock().
 
473
- rename filldir_ino_t to au_filldir_ino_t.
 
474
- rename AUFS_{DEBLK,NHASH}_SIZE to AuSize_{DEBLK,NHASH}.
 
475
- refine the message string.
 
476
- move au_hinotifyq to wkq.h as au_nowait_tasks, new inline functions
 
477
  au_nwt_{init,inc,dec,flush}().
 
478
- move read/writef_t to super.h.
 
479
- rename find_sb_locked() to find_sb_lock().
 
480
- extract a part of this file as vserver.patch.
 
481
- consolidate arguments of do_diropq() as flags.
 
482
- consolidate arguments of au_wkq_run() as flags.
 
483
- testing FaunOS.
 
484
 
 
485
20070702
 
486
- bugfix: use SMP-safe atomic_{inc,dec}_return().
 
487
- bugfix: memory barrier after atomic_set().
 
488
- bugfix: make lower dir opaque even if it is empty, to keep xino consistency.
 
489
- introduce external inode number bitmap.
 
490
  + remove backward compatibility atomic_long.
 
491
  + rename xino_init() to xino_br().
 
492
  + move br_xino_{read,write} to si_x{read,write}.
 
493
  + check the unlinked but remaining pseudo-link.
 
494
  + leave xino for the remove file/dir, instead clear them in iinfo.
 
495
  + maintain inode attributes and xino for the rename-target and the
 
496
    lower rename-source.
 
497
  + maintain xino for the removed file.
 
498
  + new options 'trunc_xib' and 'notrunc_xib'
 
499
  + truncate the xino bitmap at deleting a branch by default.
 
500
  + show the bitmap file size in sysfs.
 
501
  + free the bitmap buffer at unmounting.
 
502
- refine hinotify.
 
503
  + wait for the completion of 'notified' tasks at revalidating.
 
504
  + wait for the completion of 'notified' tasks at lookup.
 
505
  + re-construct internal functions.
 
506
  + support clearing xino
 
507
  + maintain digen recursively when a dir was renamed
 
508
  + introduce wait-able 'nowait' task.
 
509
  + stop unnecessary write to xino.
 
510
  + support for whiteouts.
 
511
  + stop unnecessary digen in IN_MOVE_SELF.
 
512
  + leave digen for the renamed dir.
 
513
  + modify the 'broken ino' msg to reflect the problem correctly.
 
514
- describe about the inode number of the directly renamed dir and its
 
515
  warning, which was called incorrectly as 'broken ino' msg.
 
516
- describe about the compilation on a distribution (or customized)
 
517
  kernel.
 
518
- I forgot to mention about /etc/default/auplink
 
519
- rename 'changable' to 'changeable.'
 
520
- warn about aufs specific EXDEV error.
 
521
- define rw_{read,write}_trylock().
 
522
- rename 'au_xxx_opts()' to 'au_opts_xxx().'
 
523
- warn inotify without xino.
 
524
- move need_dlgt() from vfsub.h to to super.h.
 
525
- temporary support for imod option.
 
526
- introduce rt-compat.patch.
 
527
 
 
528
20070625
 
529
- bugfix: skip non-aufs files at changing the branch permission,
 
530
  reported by Igor Karasynskyi.
 
531
- bugfix: test isolated inodes too at deleting branch, reported by
 
532
  Tomas M.
 
533
- bugfix: call iput() for the isolated inode on the deleted branch,
 
534
  reported by Tomas M.
 
535
- bugfix: detect newly appeared whiteout which exists on a inserted
 
536
  branch.
 
537
- bugfix: refresh all dentries and inodes when adding/modifying a
 
538
  whiteout-able branch, and deleting a branch.
 
539
- temporary workaround for the inode number 1 on cramfs.
 
540
- note for discontinuous inode numbers.
 
541
- refine option handling and some function arguments.
 
542
- stop firing inotify when rename_whtmp().
 
543
- restore iigen after fired inotify when rename dir.
 
544
- set 0 to bindex explicitly when prepending a branch.
 
545
- testing cpup, xino, MagicSysRq key.
 
546
 
 
547
20070618
 
548
- bugfix: declare 'signed char', a portability problem reported by
 
549
  Bertrand D.
 
550
- bugfix: strict branch index check at the first adding, reported by
 
551
  Bertrand D.
 
552
- bugfix: unlink a whiteout under a dir who has a sticky bit, reported
 
553
  by Igor Karasynskyi.
 
554
- warn about overlapped branches when the top-dir is moved.
 
555
- remove unnecessary dget_parent(), restoring a part of last ci.
 
556
- testing 'imod' mount option.
 
557
- add a note about an empty file in cramfs.
 
558
- add a note about swapfile.
 
559
 
 
560
20070611
 
561
- testing dir-lock in open(2).
 
562
- describe about the aufs message and errno in the manual, suggested
 
563
  by Just Marc.
 
564
 
16
565
20070604
17
566
- the unionctl script is moved from util/ to sample/, and will not be
18
567
  supported any more.
28
577
- rename DEBUG_ON macro to AuDebugOn.
29
578
- add a note about the mode of a directory on the lower branch,
30
579
  suggested by Wolfgang Barth
31
 
- execute mount(8) in a simple way, it depsends on its version.
 
580
- execute mount(8) in a simple way, it depends on its version.
32
581
 
33
582
20070521
34
583
- refine the nowait task queuing.
35
 
- flush all the scheduled/nowait tasks at umouning and remounting.
 
584
- flush all the scheduled/nowait tasks at umounting and remounting.
36
585
- support the enqueue error in workqueue.
37
586
 
38
587
20070519
455
1004
- warn only once per 255 times about "too many pseudo links".
456
1005
 
457
1006
20061106
458
 
- support linux-2.6.15, limited. dropped features are,,,
 
1007
- support linux-2.6.15, limited. dropped features are:
459
1008
        + plink and noplink mount option
460
1009
        + udba=inotify mount option
461
1010
        + NFS branch