From: Yiannis Pericleous Date: Fri, 27 Apr 2007 22:13:29 +0000 (-0400) Subject: mmap: file revalidation X-Git-Url: https://git.fsl.cs.sunysb.edu/?a=commitdiff_plain;h=ad26d2999ecaa27a0c5f70ebe9600421c17d7859;p=unionfs-3.16.y.git mmap: file revalidation --- diff --git a/fs/unionfs/mmap.c b/fs/unionfs/mmap.c index 57792d584378..7d27bd8018d2 100644 --- a/fs/unionfs/mmap.c +++ b/fs/unionfs/mmap.c @@ -162,6 +162,9 @@ int unionfs_readpage(struct file *file, struct page *page) { int err; + if ((err = unionfs_file_revalidate(file, 0))) + goto out_err; + err = unionfs_do_readpage(file, page); /* @@ -170,6 +173,7 @@ int unionfs_readpage(struct file *file, struct page *page) * it */ +out_err: unlock_page(page); return err; @@ -178,7 +182,7 @@ int unionfs_readpage(struct file *file, struct page *page) int unionfs_prepare_write(struct file *file, struct page *page, unsigned from, unsigned to) { - return 0; + return unionfs_file_revalidate(file, 1); } int unionfs_commit_write(struct file *file, struct page *page, unsigned from, @@ -194,6 +198,9 @@ int unionfs_commit_write(struct file *file, struct page *page, unsigned from, BUG_ON(file == NULL); + if ((err = unionfs_file_revalidate(file, 1))) + goto out; + inode = page->mapping->host; /* CPW: Moved below print_entry_location */ lower_inode = unionfs_lower_inode(inode);