~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-08-21 14:58:54 UTC
  • mfrom: (1.1.8 upstream) (4.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080821145854-4b49x09r4zmvlk5o
Tags: 0+20080719-4
01_vserver_apparmor.dpatch: [UPDATE] Disable vserver patches on kernel 
2.6.26, because they are not needed anymore. (Closes: #495921)

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.83 2008/06/09 01:12:11 sfjro Exp $
 
5
# $Id: History,v 1.87 2008/07/14 00:18:35 sfjro Exp $
6
6
 
7
7
Note:
8
8
- the described dates are all in JST.
13
13
 
14
14
----------------------------------------------------------------------
15
15
 
 
16
20080714
 
17
- two bugfixes(pinning and dlgt) and local tests for them are completed.
 
18
- bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch
 
19
  and new ignore scheme for inotify (completed).
 
20
  + adjust the lock subclass in au_ren_pin_init().
 
21
  + change the dinfo lock subclass in au_test_and_cpup_dirs() from
 
22
    PARENT2 to PARENT.
 
23
  + change the lock subclass from AuLsc_I_PARENT2 to AuLsc_I_CHILD.
 
24
  + change the lock subclass from AuLsc_I_PARENT to AuLsc_I_CHILD.
 
25
  + change the name of a lock subclass NEW to NEW_CHILD.
 
26
  + do not set inotify for whiteouted dirs (SHWH mode).
 
27
  + ignore a dead child dentry.
 
28
  + ignoring inotify events for creating/removing the default xino
 
29
    files, introduce new member si_xino_def_br.
 
30
    * reset si_xino_def_br when the removed branch is added again in
 
31
        au_br_add().
 
32
    * unset si_xino_def_br when the branch is deleted in au_br_del().
 
33
  + ignore the old whiteout when it was moved.
 
34
  + initialize dinfo lock by AuLsc_DI_CHILD instead of AuLsc_DI_PARENT.
 
35
  + lock iinfo in xino_do_trunc().
 
36
  + make the type of au_pin() and au_do_pin() void. this fix may be
 
37
    reverted since a tiny bug can cause a deadlock.
 
38
  + remove a function au_hi_lock().
 
39
  + remove a member unpinned from struct au_link_args.
 
40
  + remove a parameter parent from au_xino_create().
 
41
  + remove dlgt test in au_wkq_run(), with this fix the fix for dlgt is
 
42
    completed too.
 
43
  + replace the inode lock subclass AuLsc_I_PARENT2 by AuLsc_I_CHILD in
 
44
    au_whtmp_rmdir().
 
45
  + restore the function au_hin_resume().
 
46
  + revert the inotify watch when an error occured.
 
47
  + set ignore info at re-initializing whiteout for a branch.
 
48
  + set ignore info in an error case in au_do_cpup_regular().
 
49
  + set noinline_for_stack to cpup_regular() and au_do_cpup_regular().
 
50
  + simplify vfsub_create(), vfsub_symlink(), vfsub_mknod(),
 
51
    vfsub_mkdir(), vfsub_link(), vfsub_rename(), vfsub_rmdir(),
 
52
    vfsub_write_k() and vfsub_splice_from().
 
53
  + switch the inode lock subclass in au_cp_dirs(), AuLsc_I_PARENT2 and
 
54
    AuLsc_I_PARENT.
 
55
  + verify the child-parent relationship in call_rmdir_whtmp().
 
56
- bugfix: replace "${TgtPath}/Kconfig" by "aufs/Kconfig", reported and
 
57
  patched by Paulius Zaleckas.
 
58
- bugfix: prepend CONFIG_ to ccflags-$(AUFS_WORKAROUND_FUSE).
 
59
- minor optimization: compare the read buffer with a zeroed page to
 
60
  detect a hole in a file. this may be reverted in the future since this
 
61
  optimization consumes one memory page.
 
62
- minor optimization in is_sb_shared().
 
63
- replace MmTree macro by CONFIG_AUFS_UNIONFS22_PATCH and
 
64
  CONFIG_AUFS_UNIONFS23_PATCH.
 
65
- remove MmTree macro.
 
66
- kmalloc() some large structures in au_dpri_sb() (completed).
 
67
  + replace GFP_NOFS by GFP_ATOMIC.
 
68
 
 
69
20080707
 
70
- new scheme to pin the hierarchy on lower branch (introduced in last
 
71
  Monday release) is still in testing phase. after its completions, the
 
72
  fix will be backported to fs/aufs (linux-2.6.24 and earlier).
 
73
- some other bugfixes are made in this release. they will be backported
 
74
  to fs/aufs too when I have time.
 
75
- bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch
 
76
  and new ignore scheme for inotify (still testing).
 
77
  + add a prefix 'au_' to struct link_args, cpup_before_link() and
 
78
    cpup_or_link().
 
79
  + aufs_link() allocates some large variables dynamically.
 
80
  + au_do_pin() never returns until all locks and verifications are
 
81
    completed.
 
82
  + call au_pin() from lock_hdir_create_wh() instead of several manual
 
83
    lockings.
 
84
  + call au_pin utility functions from aufs_unlink() and aufs_rmdir().
 
85
  + call di_downgrade_lock() from aufs_write(), aufs_splice_write(),
 
86
    aufs_mmap() and aufs_fsync_nondir().
 
87
  + make au_do_unpin() global.
 
88
  + make au_pin_gp() as CONFIG_AUFS_HINOTIFY local.
 
89
  + move au_unpin() from i_op.c to inode.h and make it inlined.
 
90
  + move au_unpin_gp() from i_op.c to hinotify.c.
 
91
  + new inline functions au_pin_do_set_parent_lflag(),
 
92
    au_pin_set_parent_lflag() and au_pin_set_gparent_lflag().
 
93
  + refine au_cpup_before_link() by using au_pin/unpin().
 
94
  + rename lsc_i to lsc_hi.
 
95
  + remove some parameters frome rename functions by passing struct
 
96
    au_ren_args.
 
97
  + rename struct rename_args to au_ren_args, add some members to reduce
 
98
    the stack size.
 
99
  + simplify aufs_d_revalidate() by write_lock + downgrade_lock.
 
100
  + simplify au_hi_lock() by removing some parameters.
 
101
  + simplify do_coo() and au_ready_to_write() by removing some
 
102
    variables.
 
103
  + simplify lock_hdir_create_wh(), aufs_unlink() and aufs_rmdir() by
 
104
    removing some variables.
 
105
  + simplify lock_hdir_lkup_wh(), add_simple(), struct au_link_args,
 
106
    au_cpup_or_link() and aufs_mkdir() by removing some variables.
 
107
  + simplify struct au_icpup_args, au_lock_and_icpup() and
 
108
    aufs_setattr() by removing/adding some members.
 
109
  + split do_rename() into some small functions.
 
110
- bugfix (fs/aufs25 only, currently): lock child dentry first in
 
111
  aufs_lookup(), and unlock the parent as soon as possible.
 
112
  this fix will be backported to fs/aufs too.
 
113
- bugfix (fs/aufs25 only, currently): stop locking child inode in
 
114
  reval_inode().
 
115
  this fix will be backported to fs/aufs too.
 
116
- bugfix (fs/aufs25 only, currently): revert the timestamps of the
 
117
  parent dir at flushing pseudo-links.
 
118
  this fix will be backported to fs/aufs too.
 
119
- declare copyright 2005-2008 in all files, because I was told it should
 
120
  be done per software instead of per file even in the files which I
 
121
  didn't change this year.
 
122
- enhancement for CONFIG_4KSTACKS, allocate a large structure
 
123
  dynamically in au_wkq_run() instead of stack.
 
124
- minor optimization, use unsigned long long pointer for testing a hole
 
125
  in a file.
 
126
- call kzalloc() instead of kmalloc() + memset(,0,).
 
127
- unset noinline_for_stack to epilog(), lock_hdir_lkup_wh() and
 
128
  au_cpup_or_link().
 
129
- unset noinline_for_stack to cpup_regular() and au_do_cpup_regular().
 
130
- unset noinline_for_stack to decode_by_dir_ino().
 
131
- reduce the stack size.
 
132
 
 
133
20080630
 
134
- bugfix (fs/aufs25 only, currently): pin the hierarchy on lower branch
 
135
  and new ignore scheme for inotify (still debugging).
 
136
  under heavy i/o (including rename(2)), aufs may misunderstand
 
137
  the child-parent relationship. new structure au_pin locks both parent-
 
138
  child and verifies them.
 
139
  additionally, when udba=inotify is specified, aufs sets inotify watch
 
140
  internally for the parent (and grand parent) dir in cache, and ignores
 
141
  the events triggered by aufs internal activity. this was done by
 
142
  locking the lower dir and setting 0 to the event mask for the lower
 
143
  dir, but it might ignore the event fired by other process, for example
 
144
  write(2) to the lower file.
 
145
  the new method stops setting 0 to the mask, and ignores the event made
 
146
  by aufs only.
 
147
  this fix is not backported to fs/aufs yet since it is still
 
148
  debugging. so the old behaviour is taken on the older kernels.
 
149
  people will call it crazy due to many locks.
 
150
  + add a parameter au_pin to au_ready_to_write(), and it doesn't lock
 
151
    iinfo nor dinfo.
 
152
  + add a parameter bindex to au_wh_init().
 
153
  + add a parameter bindex to epilog().
 
154
  + add a parameter dir to do_revert().
 
155
  + add a parameter dst_parent to au_sio_cpup_single().
 
156
  + add a parameter dst_parent to cpup_entry() and au_cpup_single(), and
 
157
    set ignore info.
 
158
  + add a parameter hdir and replace h_dst by dst and bindex of
 
159
    cpup_iattr(), and set ignore info.
 
160
  + add a parameter hdir to au_copy_file().
 
161
  + add a parameter hdir to au_cpdown_attr().
 
162
  + add a parameter hdir to cpup_regular() and au_do_cpup_regular().
 
163
  + add a parameter hdir to vfsub_sio_notify_change().
 
164
  + add a parameter hinode to au_dtime_store() and struct au_dtime.
 
165
  + add a parameter parent to au_sio_cpup_single().
 
166
  + add a parameter pin to lock_hdir_lkup_wh().
 
167
  + add list, pid, handled events to struct au_hinode.
 
168
  + add new inline functions vfsub_lock_rename_mutex(),
 
169
    vfsub_unlock_rename_mutex() and au_verify_parent().
 
170
  + add parameters dlgt and hdir to clean_wh(), clean_plink() and
 
171
    plink_dir().
 
172
  + append a lock subclass id AuLsc_DI_PARENT4 and
 
173
    di_read/write_lock_parent4().
 
174
  + append a new lock subclass id AuLsc_DI_PARENT4.
 
175
  + append a new lock subclass id AuLsc_I_(PARENT|CHILD)[34].
 
176
  + aufs_fsync_dir() and aufs_readdir() unlock both dinfo and iinfo.
 
177
  + aufs_read(), aufs_write(), aufs_splice_read(), aufs_splice_write(),
 
178
    aufs_mmap(), aufs_poll(), aufs_fsync_nondir() and aufs_fasync()
 
179
    unlock both dinfo and iinfo.
 
180
  + call au_dbg_hin_list() from call_rename(), vfsub_rename(),
 
181
    call_rmdir(), vfsub_rmdir(), call_write_k(), vfsub_write_u(),
 
182
    vfsub_write_k(), call_splice_from() and vfsub_splice_from().
 
183
  + call au_pin() from do_coo().
 
184
  + call au_pin/unpin() from au_lock_and_icpup() and aufs_setattr().
 
185
  + call au_pin/unpin() from lock_hdir_lkup_wh(), add_simple(),
 
186
    aufs_link() and aufs_mkdir().
 
187
  + call vfsub_ignore(), vfsub_unignore() and au_dbg_hin_list() from
 
188
    call_create(), call_symlink(), call_mknod(), call_mkdir(),
 
189
    call_link(), vfsub_create(), vfsub_symlink(), vfsub_mknod(),
 
190
    vfsub_mkdir() and vfsub_link().
 
191
  + call vfsub_unignore() from call_write_k(), vfsub_write_u() and
 
192
    vfs_write_k() when vfs_write() returns 0.
 
193
  + convert the parameter dir of do_unlink_wh() to hdir.
 
194
  + convert the parameter dir of vfsub_sio_mkdir() and vfsub_sio_rmdir()
 
195
    to hdir.
 
196
  + convert the parameter h_dentry of au_whtmp_ren() to dentry, remove
 
197
    the parameter noself from au_whtmp_ren().
 
198
  + convert the parameter h_dentry of au_whtmp_ren() to dentry.
 
199
  + convert the parameter h_dir of au_wh_unlink_dentry() to struct
 
200
    au_hinode, and remove the parameter dir.
 
201
  + convert the type of au_test_subdir struct dentry* from int.
 
202
  + move AuInMask from hinotify.c to hinode.h.
 
203
  + new bit-flags VFSLOCK and PINNED.
 
204
  + new functions au_do_pinned_h_parent(), au_do_unpin(), au_unpin(),
 
205
    au_unpin_gp(), au_do_pin(), au_pin_init() and au_pin().
 
206
  + new functions au_hin_list_del() and au_dbg_hin_list() for debugging.
 
207
  + new functions au_hin_test_ignore() and au_dbg_hin_list().
 
208
  + new functions au_pin_init(), au_pin(), au_do_pin(), au_unpin(),
 
209
    au_unpin_gp(), au_do_pinned_hdir(), au_do_pinned_h_parent(),
 
210
    au_do_pinned_parent(), au_do_pinned_h_dir(), au_pin_do_set_parent(),
 
211
    au_pin_do_set_h_dir(), au_pinned_hdir(), au_pinned_hgdir(),
 
212
    au_pinned_h_parent(), au_pinned_parent(), au_pinned_gparent(),
 
213
    au_pinned_h_dir(), au_pinned_h_gdir(), au_pin_set_parent(),
 
214
    au_pin_set_gparent(), au_pin_set_h_dir() and au_pin_set_h_gdir().
 
215
  + new functions au_ren_pin_init(), au_ren_fake_pin(), au_ren_pin4(),
 
216
    au_ren_pin3(), au_ren_pin(), au_ren_unlock() and au_ren_lock().
 
217
  + new members h_locked[], gparent[], pin[], ign[], and vargs in struct
 
218
    rename_args.
 
219
  + new structures au_pin1 and au_pin.
 
220
  + remove AuCacheX() macro.
 
221
  + remove au_do_hdir_lock(), au_hdir_unlock(), au_hdir_lock_rename(),
 
222
    au_hdir_unlock_rename(), au_hdir_lock() and au_hdir2_lock().
 
223
  + remove au_hdir[2]_lock/unlock(), and replace them by
 
224
    mutex_lock/unlock().
 
225
  + remove au_hdir_lock/unlock_rename() and replace them by
 
226
    au_ren_lock/unlock().
 
227
  + remove au_hgdirs().
 
228
  + remove au_hin_nignore.
 
229
  + remove the parameter dir from au_wh_create().
 
230
  + remove the parameter dir from unlink_wh_name().
 
231
  + remove the parameter inode from del_wh_children().
 
232
  + remove the parameter noself from au_whtmp_ren().
 
233
  + remove the parameters inode and noself from au_whtmp_kick_rmdir().
 
234
  + remove the parameters inode and noself from au_whtmp_rmdir() and
 
235
    au_whtmp_kick_rmdir().
 
236
  + remove the parameters inode and noself from au_whtmp_rmdir().
 
237
  + remove the unused functions au_hin_ignore() and au_hin_unignore().
 
238
  + remove vfsub_ign_inode().
 
239
  + rename au_reval_and_lock_finfo() to au_reval_and_lock_fdi() since it
 
240
    becomes to lock dinfo and iinfo in addition to finfo.
 
241
  + rename ctl_hinotify() to au_hin_ctl() and make it global, new inline
 
242
    function au_hin_suspend(), remove suspend_hinotify() and
 
243
    resume_hinotify() macros.
 
244
  + rename ctl_hinotify() to au_hin_ctl() and make it global, new inline
 
245
    function au_hin_suspend().
 
246
  + reorder the parameters of link_or_create_wh().
 
247
  + replace hin_ignore array by spinlock and list in struct au_hinotify.
 
248
  + replace the parameter dlgt of au_do_cpup_symlink(), vfsub_symlink(),
 
249
    au_h_create(), vfsub_mkdir(), vfsub_mknod() and vfsub_link() by
 
250
    vfsub_args.
 
251
  + replace the parameter dlgt of au_h_create() and vfsub_create() by
 
252
    vargs.
 
253
  + replace the parameter dlgt of au_h_create(), vfsub_symlink(),
 
254
    vfsub_mknod(), vfsub_link(), vfsub_unlink() and vfsub_mkdir() by
 
255
    vargs.
 
256
  + replace the parameter dlgt of au_h_create().
 
257
  + replace the parameter dlgt of vfsub_create() by vargs.
 
258
  + replace the parameter dlgt of vfsub_create(), vfsub_symlink(),
 
259
    vfsub_mknod(), vfsub_mkdir() and vfsub_link() by vargs.
 
260
  + replace the parameter dlgt of vfsub_link() by vargs.
 
261
  + replace the parameter dlgt of vfsub_mkdir() by vargs.
 
262
  + set ignore info for both of parent and grand parent dir in
 
263
    au_dtime_revert().
 
264
  + set ignore info in add_simple(), cpup_or_link(), aufs_link() and
 
265
    aufs_mkdir().
 
266
  + set ignore info in au_copy_file().
 
267
  + set ignore info in au_cpup_wh().
 
268
  + set ignore info in au_wh_init().
 
269
  + set ignore info in au_whtmp_ren().
 
270
  + set ignore info in au_whtmp_rmdir().
 
271
  + set ignore info in aufs_unlink().
 
272
  + set ignore info in clean_wh(), clean_plink() and plink_dir().
 
273
  + set ignore info in do_rename().
 
274
  + set ignore info in do_unlink_wh().
 
275
  + set ignore info in link_or_create_wh().
 
276
  + set ignore info in vfsub_sio_mkdir(), vfsub_sio_rmdir(),
 
277
    vfsub_sio_notify_change() and call_unlink().
 
278
  + stop touching the lock of dinfo and iinfo in refresh_file_by_inode().
 
279
  + use au_pin in cpup_before_link().
 
280
  + a new debug print macro au_dbg_blocked().
 
281
- bugfix (fs/aufs25): revert resetting xinoe->ino when noxino option is
 
282
  specified, regression on 2008/06/02.
 
283
- bugfix (fs/aufs, fs/aufs25): a race condition between rename(2) and
 
284
  others, linux-2.6.19 and later.
 
285
  + call d_move() from aufs_rename().
 
286
  + set FS_RENAME_DOES_D_MOVE to fs_flags.
 
287
- bugfix (fs/aufs, fs/aufs25): select CONFIG_AUFS_SPLICE_PATCH
 
288
  automatically when CONFIG_AUFS_UNIONFS23_PATCH is enabled on
 
289
  linux-2.6.23 and later, reported by Barry Kauler.
 
290
  + add a note about unionfs patch v2.3 in the splice patch section.
 
291
- possible bugfix (fs/aufs, fs/aufs25): convert all GFP_TEMPORARY and
 
292
  GFP_KERNEL into GFP_NOFS.
 
293
- prohibit sysfs and procfs branch (fs/aufs, fs/aufs25)
 
294
  + append SYSFS_MAGIC value.
 
295
  + new function au_unsupported_fs().
 
296
- kmalloc() some large structures in au_dpri_sb() (still testing).
 
297
- kmalloc() some large structures in aufs_setattr().
 
298
- kmalloc struct completion in au_wkq_run().
 
299
- set noinline_for_stack to cpup_or_link().
 
300
- set noinline_for_stack to epilog() and lock_hdir_lkup_wh().
 
301
- set noinline_for_stack for decode_by_dir_ino() and decode_by_path().
 
302
- unset noinline_for_stack to dump_opts(), verify_opts().
 
303
- unset noinline_for_stack for au_do_cpup_symlink() and au_do_cpup_wh().
 
304
- unset noinline_for_stack to simple_reval_dpath().
 
305
- unset noinline_for_stack for aufs_decode_fh().
 
306
- make au_cpup_simple() and au_cpup_single() static.
 
307
 
 
308
20080623
 
309
skipped
 
310
 
 
311
20080616
 
312
- bugfix (fs/aufs, fs/aufs25): introduce a new mutex to prevent a new
 
313
  inode number for hardlinks under different parnet dir from a race
 
314
  condition.
 
315
  + (fs/aufs25) a new structure au_xino_file.
 
316
- bugfix (fs/aufs, fs/aufs25): support an error case of opening a dir.
 
317
- bugfix (fs/aufs, fs/aufs25): support a race condition between open and
 
318
  unlink/rmdir.
 
319
- bugfix: struct kset should be a dynamic object.
 
320
- enhance CONFIG_AUFS_STAT, an abstraction by au_wkq_max_busy_init().
 
321
- a note about procfs and sysfs.
 
322
- remove some unnecessary code.
 
323
- a new debug macro, ForceBrs.
 
324
 
16
325
20080609
17
326
- bugfix: #if condition for CONFIG_AUFS_UNIONFS22_PATCH and mm tree.
18
327
- bugfix in DLGT mode (fs/aufs, fs/aufs25)