14
14
----------------------------------------------------------------------
17
- rename si_mnt to si_mntcache, and a new accessor au_mntcache_get()
19
+ remove au_update_mnt().
20
+ unset si_mntcache in aufs_umount_begin().
21
+ replace struct super_block in struck au_wkinfo by struct vfsmount.
22
- new internal configuration CONFIG_AUFS_LOCAL which enables/disables
24
- (fs/aufs) reverse the order of mntput/dput(), dput() first.
25
- minor optimization: add an argument for sysaufs_brs_del/add().
26
- call kfree() outside of spin-lock region.
27
- rename si_tmp_sb by si_sb.
28
- revert an unnecessary error handling made in 20080421.
29
- replace local nameidata by a simple flag.
30
- call path_get() instead of a sequnce of dget() + mntget().
31
- extract a part of h_d_revalidate() as a new function
33
- try noinline_for_stack for some functions.
36
- (fs/aufs, fs/aufs25) bugfix: ignore an event for a being removed inode.
37
- introduce a kobject to manage the lifetime of sbinfo, based upon a
38
patch from Jeff Mahoney.
39
+ remove CONFIG_AUFS_SYSAUFS from fs/aufs25.
40
+ compile sysaufs.c unconditionally.
41
+ new file sysfs.c depending on CONFIG_SYSFS
42
+ new sysaufs_br_init() depends on CONFIG_SYSFS and initilizes members
44
+ new members for sysfs.
45
+ new function sysaufs_si_init()
46
+ new flag AuSi_FAILED_INIT to tell au_si_free() a failure.
47
+ new member si_kobj independent from CONFIG_SYSFS.
48
+ new configuration CONFIG_AUFS_STAT for fs/aufs25.
49
+ new structures au_sbi_attr, au_sbi_ops and au_sbi_ktype.
50
+ remove functions sysaufs_br_free/init/get/put().
51
+ remove functions sysaufs_sbi_free/init/get/put/add/del().
52
+ remove structures sysaufs_sbinfo/br.
53
+ move the xino-initialization part from au_br_add() to au_br_init().
54
+ move free_sbinfo() from super.c to sbinfo.c as au_si_free().
55
+ move alloc_sbinfo() from super.c to sbinfo.c as au_si_alloc().
56
+ move most part from sysaufs.c to a new file sysfs.c.
57
+ call sysaufs_brs_add() from aufs_get_sb().
58
+ au_xino_br() takes branch as its argument
59
- stop exporting all vars, export some necessary vars only.
60
- assign immediate values for superblock magic numbers, and check them
64
+ au_h_dptr_i() au_h_dptr()
65
- optimize by eliminating some auto-vars.
66
- extract a part of au_cpup_wh() as a new function au_do_cpup_wh().
67
- use nlink functions which are defined in fs.h.
68
- disable AuFillVdir_SHWH when CONFIG_AUFS_SHWH is disabled.
69
- extract a part from read_vdir() as a new funtion au_do_read_vdir().
70
- extract a part from au_xino_write() as a new function
72
- check NFS for default path.
75
- begin supporting linux-2.6.25 by ./fs/aufs25. now ./fs/aufs supports
76
linux-2.6.16 - 2.6.24.
77
+ pass the real value of vfsmount* for dentry_open().
78
+ remove iget_locked() and ->read_inode(), and replace them by a new
79
function au_iget_locked().
80
+ drop IN_DELETE_SELF and IN_MOVE_SELF from hinotify events.
81
+ the type of 'ino' parameter is always u64.
82
+ support struct path in nameidata.
83
+ replace path_release() by path_put().
84
+ replace vfsub_i_lock/unlock_*() by mutex_lock/unlock_*().
85
+ replace subsystem by kobject.
86
+ use struct kobj_attribute for show/store operations.
87
+ remove LINUX_VERSION_CODE conditions.
88
+ remove D_CHILD macro.
89
+ remove au_cpup_attr_blksize().
90
+ remove DEFAULT_POLLMASK.
91
+ remove a lock test in ->fsync().
92
+ remove au_parser_pattern_t typedef.
93
+ remove AuOpt_DefExtra2 macro.
94
+ remove au_subsys_to_kset().
95
- add a note about nfs-exporting aufs in linux-2.6.23 and later.
96
- add a note about the case which rename(2) returns EXDEV.
97
- refine sysaufs_br_alloc() and rename sysaufs_br_init().
98
- refine au_opt_test() and introduce a new body function
99
au_opt_do_test() which checks DLGT and DIRPERM1.
100
- test Mask_COO/UDBA in au_opt_set().
101
- extract a part of au_br_add() as a new function au_br_init().
102
- extract two parts of cpup_entry() as new functions
103
au_do_cpup_regular() and au_do_cpup_symlink().
104
- extract a part of decode_by_path() as a new function
106
- move au_add/sub_nlink() from dir.c to dir.h and make inlined.
107
- move au_name_hash() from dir.h to vdir.c.
108
- move them from vfsub.h to vfsub.c and make inlined.
109
+ vfsub_args_init(), vfsub_filp_open(), vfsub_path_lookup(),
110
vfsub_lookup_one_len(), vfsub__lookup_hash()
111
- new macros SysaufsSb_PREFIX/NAMELEN, and name member.
113
+ au_h_iptr_i() au_h_iptr()
114
+ au_h_fptr_i() au_h_fptr()
115
+ au_fill_de() au_vdir_fill_de()
116
+ nhash_test_known_wh() au_nhash_test_known_wh()
117
+ nhash_append_wh() au_nhash_append_wh()
118
+ nhash_new() au_nhash_new()
119
+ nhash_del() au_nhash_del()
120
+ nhash_init() au_nhash_init()
121
+ nhash_move() au_nhash_move()
122
+ nhash_fin() au_nhash_fin()
123
+ nhash_test_longer_wh() au_nhash_test_longer_wh()
124
+ AuTestAnon() au_test_anon()
128
- bugfix: in dlgt mode, statfs(2)/df(1) didn't work, reported by
132
- remove dlgt.h and robr.h.
133
- bugfix: pass DIR flag only to di_write_lock2_child().
134
- revert 'struct au_opts' with bit-fields to 'unsigned int' with
136
+ extract a part of aufs_show_options() and make a new function
137
au_show_wbr_create().
138
+ new enum AuWbrCreate/Copyup_Def.
139
+ new function au_mntflags().
140
+ new functions au_opt_test_dlgt/dirperm1().
141
+ new macros AuOptMask_COO/UDBA and au_opt_set_coo/udba().
142
+ new macros AuOpt_DefExtra1/2 and AuOpt_Def.
143
+ new macros au_opt_test/set/clr().
144
+ new member si_wbr_create/copyup and rename au_si_flags to
146
+ re-define and disable bits for HINOTIFY, SHWH and DLGT.
147
+ remove au_opts_flags_def().
148
+ renama Verbose() to AuVerbose() and pass a boolean as its first
150
+ replace AuFlag() by au_opt_test().
151
+ replace AuFlagSet() by au_opt_set/clr() or immediate assginment.
152
+ replace au_need_dlgt/dirperm1() by au_opt_test_dlgt/dirperm1()
153
+ replace Print() by AuBool().
154
+ replace PrintStr() by AuStr().
155
+ stop resetting xino-flag when an error occured.
156
+ stop storing the given flags except udba.
157
- move a debug part from super.c to debug.c as au_debug_sbinfo_init().
158
- move debug routines from module.c to debug.c as au_debug_init().
159
- move au_robr_safe_file() and au_robr_reset_file() from robr.h to
161
- move au_security_inode_permission() from dlgt.h to inode.h.
162
- move au_test_robr_wh() and au_test_robr_shwh() from robr.h to whout.h.
163
- move au_test_trunc_xino() and au_test_unique_ino() from super.h to
165
- move au_lkup_one_dlgt() from dlgt.h to dentry.h.
166
- move br_rdonly() from branch.c to branch.h as an inline function
167
named au_br_rdonly().
168
- move cache_alloc/free functions from module.h to hinotify.c.
169
- move initializing sysaufs_brs from module.c to sysaufs.h.
170
- move si_sa inside CONFIG_AUFS_SYSAUFS block.
171
- move them from dinfo.c to dentry.h and make inlined.
172
+ au_dbstart(), au_dbend(), au_dbwh(), au_dbdiropq(), au_h_dptr(),
173
au_set_dbstart(), au_set_dbend(), au_set_dbwh(), au_hdput(),
175
- move them from finfo.c to file.h and make inlined.
176
+ au_fbstart(), au_fbend(), au_fvdir_cache(), au_h_fptr(),
177
au_set_fbstart(), au_set_fbend(), au_set_fvdir_cache(),
179
- move them from iifno.c to inode.h and make inlined.
180
+ ibstart(), ibend(), ivdir(), au_hi_wh(), au_h_iptr(), itoid_index(),
181
set_ibend(), set_ivdir(), aufs_hiput().
182
- move them from sbinfo.c to super.h and make inlined.
183
+ stosi(), sbend(), au_sigen()
184
- convert au_inotify_init() from macro to inline function.
185
- make sysaufs_init() an inlined function.
186
- make au_show_brs() static.
187
- new automatic configuration CONFIG_AUFS_BR_XFS.
188
- optimize the hole-check loop.
189
- remove au_notify_change_events() which was added in the last ci by
191
- remove unused code lines.
192
- remove DbgDlgt and dbg_dlgt_init/fin().
193
- refine sysaufs_sbinfo_alloc() as sysaufs_sbi_init().
195
+ aufs_cachep[] au_cachep[]
197
+ aufs_deblk_t[] au_vdir_deblk_t[]
198
+ aufs_hiput() au_hiput()
199
+ au_alloc_whname() au_wh_name_alloc()
200
+ au_append_plink() au_plink_append()
201
+ au_free_whname() au_wh_name_free()
202
+ au_half_refresh_plink() au_plink_half_refresh()
203
+ au_list_plink() au_plink_list()
204
+ au_lkup_plink() au_plink_lkup()
205
+ au_lock/unlock_sbilist() au_sbilist_lock/unlock()
206
+ au_put_plink() au_plink_put()
207
+ au_test_debug() au_debug_test()
208
+ au_test_diropq() au_diropq_test()
209
+ au_test_plink() au_plink_test()
210
+ au_test_wh() au_wh_test()
211
+ au_unlink_wh_dentry() au_wh_unlink_dentry()
212
+ br_add() au_br_add()
213
+ br_count() au_br_count()
214
+ br_del() au_br_del()
215
+ br_get() au_br_get()
216
+ br_hinotifyable() au_br_hinotifyable()
217
+ br_linkable_wh() au_br_linkable_wh()
218
+ br_mod() au_br_mod()
219
+ br_put() au_br_put()
220
+ br_rdonly() au_br_rdonly()
221
+ br_whable() au_br_whable()
222
+ br_writable() au_br_writable()
223
+ CacheFuncs() AuCacheFuncs()
224
+ create_diropq() au_diropq_create()
225
+ dbdiropq() au_dbdiropq()
227
+ DbgRcntDec() AuDbgRcntDec()
228
+ DbgRcntInc() AuDbgRcntInc()
229
+ DbgRcntInit() AuDbgRcntInit()
230
+ dbstart() au_dbstart()
231
+ dbtail() au_dbtail()
232
+ dbtaildir() au_dbtaildir()
233
+ dbtail_generic() au_dbtail_generic()
237
+ fbstart() au_fbstart()
238
+ find_bindex() au_find_index()
239
+ find_brindex() au_br_index()
240
+ free_branches() au_br_free()
243
+ fvdir_cache() au_fvdir_cache()
244
+ hdir2_lock() au_hdir2_lock()
245
+ hdir_lock/unlock() au_hdir_lock/unlock()
246
+ hdir_lock/unlock_rename() au_hdir_lock/unlock_rename()
249
+ hintent_put() au_hintent_put()
251
+ ibstart() au_ibstart()
252
+ init_wh() au_wh_init()
254
+ itoid_index() au_ii_br_id()
257
+ kick_rmdir_whtmp() au_whtmp_kick_rmdir()
258
+ lkup_wh() au_wh_lkup()
259
+ lkup_whtmp() au_whtmp_lkup()
260
+ new_br_id() au_new_br_id()
262
+ ReadLockFunc() AuReadLockFunc()
263
+ remove_diropq() au_diropq_remove()
264
+ rename_whtmp() au_whtmp_ren()
265
+ rmdir_whtmp() au_whtmp_rmdir()
266
+ rmdir_whtmp_free_args() au_whtmp_rmdir_free_args()
267
+ RWLockFuncs() AuRWLockFuncs()
268
+ RwMustAnyLock() AuRwMustAnyLock()
269
+ RwMustNoWaiters() AuRwMustNoWaiters()
270
+ RwMustReadLock() AuRwMustReadLock()
271
+ RwMustWriteLock() AuRwMustWriteLock()
272
+ rw_dgrade_lock() au_rw_dgrade_lock()
273
+ rw_init_nolock() au_rw_init_nolock()
274
+ rw_init_wlock() au_rw_init_wlock()
275
+ rw_init_wlock_nested() au_rw_init_wlock_nested()
276
+ rw_read_lock() au_rw_read_lock()
277
+ rw_read_lock_nested() au_rw_read_lock_nested()
278
+ rw_read_trylock() au_rw_read_trylock()
279
+ rw_read_unlock() au_rw_read_unlock()
280
+ rw_write_lock() au_rw_write_lock()
281
+ rw_write_lock_nested() au_rw_write_lock_nested()
282
+ rw_write_trylock() au_rw_write_trylock()
283
+ rw_write_unlock() au_rw_write_unlock()
285
+ sbr_count() au_sbr_count()
286
+ sbr_id() au_sbr_id()
287
+ sbr_mnt() au_sbr_mnt()
288
+ sbr_perm() au_sbr_perm()
289
+ sbr_put() au_sbr_put()
290
+ sbr_sb() au_sbr_sb()
291
+ sbr_whable() au_sbr_whable()
292
+ set_dbdiropq() au_set_dbdiropq()
293
+ set_dbend() au_set_dbend()
294
+ set_dbstart() au_set_dbstart()
295
+ set_dbwh() au_set_dbwh()
296
+ set_fbend() au_set_fbend()
297
+ set_fbstart() au_set_fbstart()
298
+ set_fvdir_cache() au_set_fvdir_cache()
299
+ set_hi_wh() au_set_hi_wh()
300
+ set_h_dptr() au_set_h_dptr()
301
+ set_h_dptr_i() au_set_h_dptr_i()
302
+ set_h_fptr() au_set_h_fptr()
303
+ set_h_iptr() au_set_h_iptr()
304
+ set_ibend() au_set_ibend()
305
+ set_ibstart() au_set_ibstart()
306
+ set_ivdir() au_set_ivdir()
307
+ SimpleLockRwsemFuncs() AuSimpleLockRwsemFuncs()
308
+ SimpleRwsemFuncs() AuSimpleRwsemFuncs()
309
+ SimpleUnlockRwsemFuncs() AuSimpleUnlockRwsemFuncs()
310
+ simple_create_wh() au_wh_create()
311
+ sio_diropq() au_diropq_sio()
314
+ struct aufs_branch struct au_branch
315
+ struct aufs_de struct au_vdir_de
316
+ struct aufs_dehstr struct au_vdir_dehstr
317
+ struct aufs_destr struct au_vdir_destr
318
+ struct aufs_dinfo struct au_dinfo
319
+ struct aufs_finfo struct au_finfo
320
+ struct aufs_hdentry struct au_hdentry
321
+ struct aufs_hdintent struct au_hdintent
322
+ struct aufs_hfile struct au_hfile
323
+ struct aufs_hinode struct au_hinode
324
+ struct aufs_hinotify struct au_hinotify
325
+ struct aufs_hin_ignore struct au_hin_ignore
326
+ struct aufs_iinfo struct au_iinfo
327
+ struct aufs_ndx struct au_ndx
328
+ struct aufs_nhash struct au_nhash
329
+ struct aufs_rwsem struct au_rwsem
330
+ struct aufs_sbinfo struct au_sbinfo
331
+ struct aufs_vdir struct au_vdir
332
+ struct aufs_wh struct au_vdir_wh
333
+ struct rmdir_whtmp_args struct au_whtmp_rmdir_args
334
+ struct xino_entry struct au_xino_entry
335
+ struct xino_file struct au_xino_file
336
+ sysaufs_sbinfo_add() sysaufs_sbi_add()
337
+ sysaufs_sbinfo_del() sysaufs_sbi_del()
338
+ sysaufs_sbinfo_free() sysaufs_sbi_free()
339
+ sysaufs_sbinfo_get() sysaufs_sbi_get()
340
+ sysaufs_sbinfo_put() sysaufs_sbi_put()
341
+ union aufs_deblk_p union au_vdir_deblk_p
342
+ writef_t au_writef_t
343
+ WriteLockFunc() AuWriteLockFunc()
344
+ xib_trunc() au_xib_trunc()
345
+ xino_br() au_xino_br()
346
+ xino_clr() au_xino_clr()
347
+ xino_create() au_xino_create()
348
+ xino_create2() au_xino_create2()
349
+ xino_def() au_xino_def()
350
+ xino_new_ino() au_xino_new_ino()
351
+ xino_read() au_xino_read()
352
+ xino_set() au_xino_set()
353
+ xino_set_br() au_xino_set_br()
354
+ xino_set_xib() au_xino_set_xib()
355
+ xino_trunc() au_xino_trunc()
356
+ xino_write() au_xino_write()
357
+ xino_write0() au_xino_write0()
360
- add some articles from users in personal mail.
361
If you don't want to list your name here, write to me.
362
- bugfix: update inode->i_ctime after unlink().
363
- bugfix: update inode->i_ctime after rename().
364
- consolidate '#ifdef's.
365
+ automatic configuration for internal use, AUFS_BR_NFS and
367
+ temporary and limited support for NFS branch in linux-2.6.19 and
369
+ new files br_nfs.c, br_xfs.c, br_fuse.c, dlgt.c, hin_or_dlgt.c and
371
+ new files dlgt.h and robr.h.
372
+ move sbilist from module.[ch] to sysaufs.[ch].
373
+ move au_sbilist_del() from super.h to sysaufs.h.
374
+ move au_test_branch() from debug.c to sysrq.c. (temporary)
375
+ move aufs_sysrq_key from module.[ch] to sysrq.[ch].
376
+ move au_test_robr_wh() and au_test_robr_shwh() to robr.[ch].
377
+ move safe_file() and reset_file() to robr.[ch], and rename
379
+ move au_fake_intent(), au_hin_after_reval(), au_lkup_hash() from
380
dentry.c to br_nfs.c and dentry.h.
381
+ move hintent_put(), au_find_h_intent(), au_h_intent() and
382
au_set_h_intent() from dinfo.c to br_nfs.c and dentry.h.
383
+ move vfsub_events_notify_change(), vfsub_ign_hinode(),
384
vfsub_ignore() and vfsub_unignore() from vfsub.c to hinotify.c.
385
+ move macros for kmem_cache creation from module.c to module.h.
386
+ move au_hin_nignore and create/delete of kmem_cache from module.c
388
+ move call_permission(), vfsub_permission(), call_create(),
389
vfsub_create(), call_symlink(), vfsub_symlink(), call_mknod(),
390
vfsub_mknod(), call_mkdir(), vfsub_mkdir(), call_link(),
391
vfsub_link(), call_rename(), vfsub_rename(), call_rmdir(),
392
vfsub_rmdir(), call_read_k(), vfsub_read_u(), vfsub_read_k(),
393
call_write_k(), vfsub_write_u(), vfsub_write_k(), call_readdir(),
394
vfsub_readdir(), call_splice_to(), vfsub_splice_to(),
395
call_splice_from(), vfsub_splice_from(), call_getattr() and
396
vfsub_getattr() from vfsub.c to hin_or_dlgt.c.
397
+ move call_security_inode_permission() to dlgt.c.
398
+ move au_update_fuse_h_inode() from vfsub.c to br_fuse.c.
399
+ move aufs_getattr() from i_op.c to br_fuse.c.
400
+ move au_h_rdev() from vfsub.c to br_xfs.c.
401
+ new abstract functions au_lkup_one_dlgt() and au_br_nfs_h_intent().
402
+ new abstract functions dlgt_cred_store() and dlgt_func().
403
+ new abstract function au_security_inode_permission().
404
+ new abstract functions au_lock/unlock_sbilist() and au_sbilist_add().
405
+ new abstract function vfsub_notify_change_dlgt() and
407
+ new function au_hin_destroy_cache().
408
+ refine au_wh_ino() simply.
409
+ remove an internal macro AuMagicSysRq.
410
+ remove CONFIG_AUFS_HINOTIFY simply.
411
+ rename an internal macro intent() to au_dbg_h_intent().
412
+ revise AuNoNfsBranch and move from aufs.h to branch.h.
413
+ si_list depends upon CONFIG_AUFS_SYSAUFS.
414
+ aufs Makefile explicitly refers .config or include/linux/auto.conf
415
under kernel build tree.
416
- add a note about the maximum filename length.
417
- move au_test_ro(), au_test_perm() and au_test_perm_sio() from misc.[ch]
418
to inode.[ch], and rename them to au_test_h_perm*().
419
- rename au_test_perm_sio() to au_test_h_perm_sio().
420
- rename au_test_perm() to au_test_h_perm().
17
423
- unveil CONFIG_AUFS_SHWH.
18
424
- re-write sysfs interface based upon a patch by Jeff