mmap: file revalidation
authorYiannis Pericleous <yiannos@louie.fsl.cs.sunysb.edu>
Fri, 27 Apr 2007 22:13:29 +0000 (18:13 -0400)
committerErez_Zadok <ezk@cs.sunysb.edu>
Wed, 4 Jul 2007 04:39:53 +0000 (00:39 -0400)
fs/unionfs/mmap.c

index 57792d584378b00423923f141ed7835d05475dea..7d27bd8018d2d2be4001c2c7d327e2368fd9bf79 100644 (file)
@@ -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);