On Tue, 9 Jan 2007, Malte Schröder wrote:
>
> > So something interesting is definitely going on, but I don't know exactly
> > what it is. Why does reiserfs do the truncate as part of a close, if the
> > same inode is actually mapped somewhere else? And if it's a race with two
> > different CPU's (one doing a "munmap()" and the other doing a "close()",
> > then the unmap should _still_ have actually unmapped the pages before it
> > actually did _its_ "release()" call.
>
> This was on a single core. But with CONFIG_PREEMPT_VOLUNTARY=y.
> It didn't happen again since then.
Yeah, PREEMPT would be able to show most races like this too. In fact,
some races show up much better with preemption than they do with real SMP.
But I haven't looked at what exactly reiserfs does. I did check that the
VM layer definitely does the remove_vma() stuff (that actually closes the
files) _after_ it has unmapped everything. It would have surprised me if
we had had that kind of bug, but still..
Linus
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]