On Mon, 2005-10-10 at 17:44 -0400, Shaya Potter wrote:
> it seems that branch manipulation and unionfs_file_revalidate can race
>
> from unionfs_file_revalidate
> -----------
> if (!unionfs_d_revalidate(dentry, 0) && !d_deleted(dentry)) {
> err = -ESTALE;
> goto out;
> }
> fist_print_dentry("file revalidate in", dentry);
>
> sb = dentry->d_sb;
> PASSERT(sb);
> sbgen = atomic_read(&stopd(sb)->usi_generation);
> dgen = atomic_read(&dtopd(dentry)->udi_generation);
> fgen = atomic_read(&ftopd(file)->ufi_generation);
> if (sbgen > dgen) {
> FISTBUG("The dentry is not up to date!\n");
> }
> ------------
>
> if the branch structure would change somewhere between udi_generation
> being set and usi_generation being read, one would hit this FISTBUG
> (which I just did).
another possible race resulting in oops? (this is my modified unionfs,
but I doubt my changes would have caused this, though its possible). It
seemed to occur right when a branching operation was happening.
ASSERTION FAILED: putmap (null) at /root/unionfs-sparse/commonfops.c:41
(branchput_gen)
Unable to handle kernel NULL pointer dereference at virtual address
00000000
printing eip:
f96c78ff
*pde = 00000000
Oops: 0002 [#1]
PREEMPT
Modules linked in: unionfs ocfs2 nfsd exportfs lockd sunrpc ocfs2_dlmfs
ocfs2_dlm ocfs2_nodemanager configfs sctp ipv6 af_packet i2c_piix4
i2c_core lock_dlm dlm cman gfs lock_harness dm_mod qla2300 qla2xxx
scsi_transport_fc sg sr_mod sd_mod scsi_mod ide_cd cdrom tg3 psmouse rtc
ext3 jbd mbcache ide_disk ide_generic serverworks piix ide_core unix
CPU: 0
EIP: 0060:[<f96c78ff>] Tainted: GF VLI
EFLAGS: 00010282 (2.6.11.12)
EIP is at unionfs_file_revalidate+0x13e7f/0x14cf0 [unionfs]
eax: 0000005b ebx: f96fbb20 ecx: 00000000 edx: 10000000
esi: 00000000 edi: de926e00 ebp: d09c7b7c esp: d7793ecc
ds: 007b es: 007b ss: 0068
Process as (pid: 5018, threadinfo=d7792000 task=d26a6020)
Stack: f96fbf00 f96f68c6 f96f66f2 f96fbb20 00000029 f96f3dbe f96f3d8c
f96fbb20
000000ad d2953980 d0b3e348 00000000 00000000 ce11f300 ce3883e4
00000000
00000000 00000000 00000000 0000000f 00000011 de926e00 0000004c
000005e8
Call Trace:
[<f956916d>] unionfs_read+0x6d/0x280 [unionfs]
[<c0151be5>] vfs_read+0xe5/0x160
[<c0151f01>] sys_read+0x51/0x80
[<c010272f>] syscall_call+0x7/0xb
Code: c6 68 6f f9 89 4c 24 04 b8 29 00 00 00 bb 20 bb 6f f9 89 44 24 10
b8 f2 66 6f f9 0f 45 d0 89 5c 24 0c 89 54 24 08 e8 01 c4 a4 c6 <c6> 05
00 00 00 00 00 e9 42 2e ff ff c7 04 24 c0 bf 6f f9 b8 25
_______________________________________________
unionfs mailing list
[email protected]
http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs