~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: 2008-05-06 18:35:50 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20080506183550-0b6c974kkgc46oeh
Tags: 0+20080506-1
* New upstream release, supports Kernel 2.6.25 (Closes: #479717)
* Fix building with older Kernels (Closes: #475042)
* Update the patches 01, 04 and 07 to also patch fs/aufs25

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.72 2008/03/31 07:45:55 sfjro Exp $
 
5
# $Id: History,v 1.78 2008/05/04 23:55:27 sfjro Exp $
6
6
 
7
7
Note:
8
8
- the described dates are all in JST.
13
13
 
14
14
----------------------------------------------------------------------
15
15
 
 
16
20080505
 
17
- rename si_mnt to si_mntcache, and a new accessor au_mntcache_get()
 
18
  (unfinished).
 
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
 
23
  /sys/fs/aufs/config.
 
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
 
32
  au_do_h_d_reval().
 
33
- try noinline_for_stack for some functions.
 
34
 
 
35
20080428
 
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
 
43
    for it.
 
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
 
61
  by my local priv.mk.
 
62
- simple rename.
 
63
  + hidden_*                    h_*
 
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
 
71
  au_xino_do_write().
 
72
- check NFS for default path.
 
73
 
 
74
20080421
 
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
 
105
  au_build_path().
 
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.
 
112
- rename simply.
 
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()
 
125
- use fs_stack.h.
 
126
 
 
127
20080415
 
128
- bugfix: in dlgt mode, statfs(2)/df(1) didn't work, reported by
 
129
  Ulrich Holeschak.
 
130
 
 
131
20080414
 
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
 
135
  bit-shift.
 
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
 
145
    si_mntflags.
 
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
 
149
    argument.
 
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
 
160
  file.h.
 
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
 
164
  branch.h.
 
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(),
 
174
    au_update_digen().
 
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(),
 
178
    au_update_figen().
 
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
 
190
  mistake.
 
191
- remove unused code lines.
 
192
- remove DbgDlgt and dbg_dlgt_init/fin().
 
193
- refine sysaufs_sbinfo_alloc() as sysaufs_sbi_init().
 
194
- rename simply.
 
195
  + aufs_cachep[]               au_cachep[]
 
196
  + aufs_cond                   au_cond
 
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()
 
226
  + dbend()                     au_dbend()
 
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()
 
234
  + dbwh()                      au_dbwh()
 
235
  + dtodi()                     au_di()
 
236
  + fbend()                     au_fbend()
 
237
  + fbstart()                   au_fbstart()
 
238
  + find_bindex()               au_find_index()
 
239
  + find_brindex()              au_br_index()
 
240
  + free_branches()             au_br_free()
 
241
  + ftobr()                     au_fbr()
 
242
  + ftofi()                     au_fi()
 
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()
 
247
  + hdput()                     au_hdput()
 
248
  + hidden_*                    h_*
 
249
  + hintent_put()               au_hintent_put()
 
250
  + ibend()                     au_ibend()
 
251
  + ibstart()                   au_ibstart()
 
252
  + init_wh()                   au_wh_init()
 
253
  + itohi()                     au_hi()
 
254
  + itoid_index()               au_ii_br_id()
 
255
  + itoii()                     au_ii()
 
256
  + ivdir()                     au_ivdir()
 
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()
 
261
  + readf_t                     au_readf_t
 
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()
 
284
  + sbend()                     au_sbend()
 
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()
 
312
  + stobr()                     au_sbr()
 
313
  + stosi()                     au_sbi()
 
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()
 
358
 
 
359
20080407
 
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
 
366
    AUFS_MAGIC_SYSRQ.
 
367
  + temporary and limited support for NFS branch in linux-2.6.19 and
 
368
    earlier.
 
369
  + new files br_nfs.c, br_xfs.c, br_fuse.c, dlgt.c, hin_or_dlgt.c and
 
370
    robr.c.
 
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
 
378
    au_robr_*().
 
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
 
387
    to hinotify.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
 
406
    vfsub_statfs_dlgt().
 
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().
 
421
 
16
422
20080331
17
423
- unveil CONFIG_AUFS_SHWH.
18
424
- re-write sysfs interface based upon a patch by Jeff