Hi Zach,
Zach Brown writes:
I'll try, briefly.
Thanks for the excellent explanation.
Zach Brown writes:
And that's the problem. Because they're acquired in ->nopage they can
be acquired during a fault that is servicing the 'buf' argument to an
outer file->{read,write} operation which has grabbed a lock for the
target file. Acquiring multiple locks introduces the risk of ABBA
deadlocks. It's trivial to construct examples of mmap(), read(), and
write() on 2 nodes with 2 files that deadlock.
But couldn't we use make_pages_present() to figure which locks we need, sort
them, and then grab them?
Zach Brown writes:
I brought this up with some people at the kernel summit but no one,
including myself, considers it a high priority. It wouldn't be too hard
to construct a patch if people want to take a look.
I guess it's not a problem as long as the kernel has zero or one cluster
filesystems that support mmap(). After we have two or more, we have a
problem.
The GFS2 vma walk needs fixing anyway, I think, as it can lead to buffer
overflow (if we have more locks during the second walk).
Pekka
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
|
|