switch ecryptfs_get_locked_page() to struct inode *
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 21 May 2010 15:02:14 +0000 (11:02 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 21 May 2010 22:31:28 +0000 (18:31 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/ecryptfs/ecryptfs_kernel.h
fs/ecryptfs/mmap.c
fs/ecryptfs/read_write.c

index bfc2e0f78f0019a7cac763c19336bdf287559d15..84dd2f88d00a51cdb4543193c924cc8418da2775 100644 (file)
@@ -739,7 +739,7 @@ int ecryptfs_read_lower_page_segment(struct page *page_for_ecryptfs,
                                     pgoff_t page_index,
                                     size_t offset_in_page, size_t size,
                                     struct inode *ecryptfs_inode);
-struct page *ecryptfs_get_locked_page(struct file *file, loff_t index);
+struct page *ecryptfs_get_locked_page(struct inode *inode, loff_t index);
 int ecryptfs_exorcise_daemon(struct ecryptfs_daemon *daemon);
 int ecryptfs_find_daemon_by_euid(struct ecryptfs_daemon **daemon, uid_t euid,
                                 struct user_namespace *user_ns);
index 14e81c26c3ed54f62b6e13187a9ea8079caac884..b1d82756544be763e9841a21a0c63c7bdc20db82 100644 (file)
  * Returns locked and up-to-date page (if ok), with increased
  * refcnt.
  */
-struct page *ecryptfs_get_locked_page(struct file *file, loff_t index)
+struct page *ecryptfs_get_locked_page(struct inode *inode, loff_t index)
 {
-       struct dentry *dentry;
-       struct inode *inode;
-       struct address_space *mapping;
-       struct page *page;
-
-       dentry = file->f_path.dentry;
-       inode = dentry->d_inode;
-       mapping = inode->i_mapping;
-       page = read_mapping_page(mapping, index, (void *)file);
+       struct page *page = read_mapping_page(inode->i_mapping, index, NULL);
        if (!IS_ERR(page))
                lock_page(page);
        return page;
index 0cc4fafd6552c3d8ddef02e38a81dad96eb6ff6f..3cc17a96cf244652c3434b34c9149e790c4d53dd 100644 (file)
@@ -145,7 +145,7 @@ int ecryptfs_write(struct file *ecryptfs_file, char *data, loff_t offset,
                        if (num_bytes > total_remaining_zeros)
                                num_bytes = total_remaining_zeros;
                }
-               ecryptfs_page = ecryptfs_get_locked_page(ecryptfs_file,
+               ecryptfs_page = ecryptfs_get_locked_page(ecryptfs_inode,
                                                         ecryptfs_page_idx);
                if (IS_ERR(ecryptfs_page)) {
                        rc = PTR_ERR(ecryptfs_page);
@@ -302,10 +302,10 @@ int ecryptfs_read_lower_page_segment(struct page *page_for_ecryptfs,
 int ecryptfs_read(char *data, loff_t offset, size_t size,
                  struct file *ecryptfs_file)
 {
+       struct inode *ecryptfs_inode = ecryptfs_file->f_dentry->d_inode;
        struct page *ecryptfs_page;
        char *ecryptfs_page_virt;
-       loff_t ecryptfs_file_size =
-               i_size_read(ecryptfs_file->f_dentry->d_inode);
+       loff_t ecryptfs_file_size = i_size_read(ecryptfs_inode);
        loff_t data_offset = 0;
        loff_t pos;
        int rc = 0;
@@ -327,7 +327,7 @@ int ecryptfs_read(char *data, loff_t offset, size_t size,
 
                if (num_bytes > total_remaining_bytes)
                        num_bytes = total_remaining_bytes;
-               ecryptfs_page = ecryptfs_get_locked_page(ecryptfs_file,
+               ecryptfs_page = ecryptfs_get_locked_page(ecryptfs_inode,
                                                         ecryptfs_page_idx);
                if (IS_ERR(ecryptfs_page)) {
                        rc = PTR_ERR(ecryptfs_page);