Messages in this thread | | | Date | Wed, 2 Apr 2008 12:54:27 -0400 | From | Erez Zadok <> | Subject | Re: [GIT PULL -mm] 00/14 VFS/Unionfs updates/fixes/cleanups |
| |
In message <47F38E90.20306@slax.org>, Tomas M writes:
> > 1. Based on recommendations we've received while at LSF'08, we've changed > > Unionfs to use the vm_operations->fault method, instead of > > address_space_operations. [...] > May I ask you, why did it took so long? > Mainly, why did you refused to make the changes last year? > > Thank you > > Tomas M
The current ->fault API requires (IMHO) an ugly hack such as this:
1. get the upper file pointer from vma->vm_file 2. get the lower file from the upper file 3. *override* the vma->vm_file pointer with the lower file 4. call the lower ->fault op with the changed vma->vm_file pointer 5. upon return, *reset* the vma->vm_file pointer back to its original value (i.e., pointing to the upper file)
Steps 3 and 5 require this "pointer flipping" that I was sure was unacceptable to kernel developers who might be reviewing the code. I didn't want to use this technique before I've had the sanctioning of the appropriate kernel maintainers, along with an acceptable path to fix the ->fault API. LSF was an excellent opportunity to discuss this and many other related issues in person.
Cheers, Erez.
| |