diff options
| -rw-r--r-- | fs/ecryptfs/ecryptfs_kernel.h | 2 | ||||
| -rw-r--r-- | fs/ecryptfs/mmap.c | 12 | ||||
| -rw-r--r-- | fs/ecryptfs/read_write.c | 8 |
3 files changed, 7 insertions, 15 deletions
diff --git a/fs/ecryptfs/ecryptfs_kernel.h b/fs/ecryptfs/ecryptfs_kernel.h index bfc2e0f78f00..84dd2f88d00a 100644 --- a/fs/ecryptfs/ecryptfs_kernel.h +++ b/fs/ecryptfs/ecryptfs_kernel.h | |||
| @@ -739,7 +739,7 @@ int ecryptfs_read_lower_page_segment(struct page *page_for_ecryptfs, | |||
| 739 | pgoff_t page_index, | 739 | pgoff_t page_index, |
| 740 | size_t offset_in_page, size_t size, | 740 | size_t offset_in_page, size_t size, |
| 741 | struct inode *ecryptfs_inode); | 741 | struct inode *ecryptfs_inode); |
| 742 | struct page *ecryptfs_get_locked_page(struct file *file, loff_t index); | 742 | struct page *ecryptfs_get_locked_page(struct inode *inode, loff_t index); |
| 743 | int ecryptfs_exorcise_daemon(struct ecryptfs_daemon *daemon); | 743 | int ecryptfs_exorcise_daemon(struct ecryptfs_daemon *daemon); |
| 744 | int ecryptfs_find_daemon_by_euid(struct ecryptfs_daemon **daemon, uid_t euid, | 744 | int ecryptfs_find_daemon_by_euid(struct ecryptfs_daemon **daemon, uid_t euid, |
| 745 | struct user_namespace *user_ns); | 745 | struct user_namespace *user_ns); |
diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c index 14e81c26c3ed..b1d82756544b 100644 --- a/fs/ecryptfs/mmap.c +++ b/fs/ecryptfs/mmap.c | |||
| @@ -44,17 +44,9 @@ | |||
| 44 | * Returns locked and up-to-date page (if ok), with increased | 44 | * Returns locked and up-to-date page (if ok), with increased |
| 45 | * refcnt. | 45 | * refcnt. |
| 46 | */ | 46 | */ |
| 47 | struct page *ecryptfs_get_locked_page(struct file *file, loff_t index) | 47 | struct page *ecryptfs_get_locked_page(struct inode *inode, loff_t index) |
| 48 | { | 48 | { |
| 49 | struct dentry *dentry; | 49 | struct page *page = read_mapping_page(inode->i_mapping, index, NULL); |
| 50 | struct inode *inode; | ||
| 51 | struct address_space *mapping; | ||
| 52 | struct page *page; | ||
| 53 | |||
| 54 | dentry = file->f_path.dentry; | ||
| 55 | inode = dentry->d_inode; | ||
| 56 | mapping = inode->i_mapping; | ||
| 57 | page = read_mapping_page(mapping, index, (void *)file); | ||
| 58 | if (!IS_ERR(page)) | 50 | if (!IS_ERR(page)) |
| 59 | lock_page(page); | 51 | lock_page(page); |
| 60 | return page; | 52 | return page; |
diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c index 0cc4fafd6552..3cc17a96cf24 100644 --- a/fs/ecryptfs/read_write.c +++ b/fs/ecryptfs/read_write.c | |||
| @@ -145,7 +145,7 @@ int ecryptfs_write(struct file *ecryptfs_file, char *data, loff_t offset, | |||
| 145 | if (num_bytes > total_remaining_zeros) | 145 | if (num_bytes > total_remaining_zeros) |
| 146 | num_bytes = total_remaining_zeros; | 146 | num_bytes = total_remaining_zeros; |
| 147 | } | 147 | } |
| 148 | ecryptfs_page = ecryptfs_get_locked_page(ecryptfs_file, | 148 | ecryptfs_page = ecryptfs_get_locked_page(ecryptfs_inode, |
| 149 | ecryptfs_page_idx); | 149 | ecryptfs_page_idx); |
| 150 | if (IS_ERR(ecryptfs_page)) { | 150 | if (IS_ERR(ecryptfs_page)) { |
| 151 | rc = PTR_ERR(ecryptfs_page); | 151 | rc = PTR_ERR(ecryptfs_page); |
| @@ -302,10 +302,10 @@ int ecryptfs_read_lower_page_segment(struct page *page_for_ecryptfs, | |||
| 302 | int ecryptfs_read(char *data, loff_t offset, size_t size, | 302 | int ecryptfs_read(char *data, loff_t offset, size_t size, |
| 303 | struct file *ecryptfs_file) | 303 | struct file *ecryptfs_file) |
| 304 | { | 304 | { |
| 305 | struct inode *ecryptfs_inode = ecryptfs_file->f_dentry->d_inode; | ||
| 305 | struct page *ecryptfs_page; | 306 | struct page *ecryptfs_page; |
| 306 | char *ecryptfs_page_virt; | 307 | char *ecryptfs_page_virt; |
| 307 | loff_t ecryptfs_file_size = | 308 | loff_t ecryptfs_file_size = i_size_read(ecryptfs_inode); |
| 308 | i_size_read(ecryptfs_file->f_dentry->d_inode); | ||
| 309 | loff_t data_offset = 0; | 309 | loff_t data_offset = 0; |
| 310 | loff_t pos; | 310 | loff_t pos; |
| 311 | int rc = 0; | 311 | int rc = 0; |
| @@ -327,7 +327,7 @@ int ecryptfs_read(char *data, loff_t offset, size_t size, | |||
| 327 | 327 | ||
| 328 | if (num_bytes > total_remaining_bytes) | 328 | if (num_bytes > total_remaining_bytes) |
| 329 | num_bytes = total_remaining_bytes; | 329 | num_bytes = total_remaining_bytes; |
| 330 | ecryptfs_page = ecryptfs_get_locked_page(ecryptfs_file, | 330 | ecryptfs_page = ecryptfs_get_locked_page(ecryptfs_inode, |
| 331 | ecryptfs_page_idx); | 331 | ecryptfs_page_idx); |
| 332 | if (IS_ERR(ecryptfs_page)) { | 332 | if (IS_ERR(ecryptfs_page)) { |
| 333 | rc = PTR_ERR(ecryptfs_page); | 333 | rc = PTR_ERR(ecryptfs_page); |
