Messages in this thread | | | Subject | Re: [PATCH] VM: Fix the gfp_mask in invalidate_complete_page2 | From | Trond Myklebust <> | Date | Tue, 10 Oct 2006 09:15:19 -0400 |
| |
On Tue, 2006-10-10 at 13:49 +0100, David Howells wrote: > Trond Myklebust <Trond.Myklebust@netapp.com> wrote: > > > No. Invalidatepage does precisely the wrong thing: it invalidates dirty > > data instead of committing it to disk. If you need to have the data > > invalidated, then you should call truncate_inode_pages(). > > Hmmm... Good point, but you still need to handle try_to_release_page() failing, > but that only means checking the return value of invalidate_inode_pages2_range > (which you don't do, I notice). Or is it defined that if must succeed if > __GFP_WAIT is set?
The only way for it to fail if __GFP_IO is set, is if someone kills the process. Note that since the NFS client itself will flush out all dirty data to disk prior to calling invalidate_inode_pages2, the only thing we're trying to do here is to avoid races while invalidating those pages.
> With the two-phase thing, I think I'm thinking of the wrong portion of that > file (I'm thinking of truncate_inode_pages_range()). > > Should invalidate_inode_pages2_range() take a gfp_t argument to pass on down?
Maybe. Do any of the current callers care? NFS should be quite happy with the patch that is currently in Andrew's tree.
Trond - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |