read_write.c (2d8ad8719591fa803b0d589ed057fa46f49b7155) | read_write.c (57db4e8d73ef2b5e94a3f412108dff2576670a8a) |
---|---|
1/** 2 * eCryptfs: Linux filesystem encryption layer 3 * 4 * Copyright (C) 2007 International Business Machines Corp. 5 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as --- 30 unchanged lines hidden (view full) --- 39int ecryptfs_write_lower(struct inode *ecryptfs_inode, char *data, 40 loff_t offset, size_t size) 41{ 42 struct ecryptfs_inode_info *inode_info; 43 mm_segment_t fs_save; 44 ssize_t rc; 45 46 inode_info = ecryptfs_inode_to_private(ecryptfs_inode); | 1/** 2 * eCryptfs: Linux filesystem encryption layer 3 * 4 * Copyright (C) 2007 International Business Machines Corp. 5 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com> 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as --- 30 unchanged lines hidden (view full) --- 39int ecryptfs_write_lower(struct inode *ecryptfs_inode, char *data, 40 loff_t offset, size_t size) 41{ 42 struct ecryptfs_inode_info *inode_info; 43 mm_segment_t fs_save; 44 ssize_t rc; 45 46 inode_info = ecryptfs_inode_to_private(ecryptfs_inode); |
47 mutex_lock(&inode_info->lower_file_mutex); | |
48 BUG_ON(!inode_info->lower_file); | 47 BUG_ON(!inode_info->lower_file); |
49 inode_info->lower_file->f_pos = offset; | |
50 fs_save = get_fs(); 51 set_fs(get_ds()); | 48 fs_save = get_fs(); 49 set_fs(get_ds()); |
52 rc = vfs_write(inode_info->lower_file, data, size, 53 &inode_info->lower_file->f_pos); | 50 rc = vfs_write(inode_info->lower_file, data, size, &offset); |
54 set_fs(fs_save); | 51 set_fs(fs_save); |
55 mutex_unlock(&inode_info->lower_file_mutex); | |
56 mark_inode_dirty_sync(ecryptfs_inode); 57 return rc; 58} 59 60/** 61 * ecryptfs_write_lower_page_segment 62 * @ecryptfs_inode: The eCryptfs inode 63 * @page_for_lower: The page containing the data to be written to the --- 165 unchanged lines hidden (view full) --- 229int ecryptfs_read_lower(char *data, loff_t offset, size_t size, 230 struct inode *ecryptfs_inode) 231{ 232 struct ecryptfs_inode_info *inode_info = 233 ecryptfs_inode_to_private(ecryptfs_inode); 234 mm_segment_t fs_save; 235 ssize_t rc; 236 | 52 mark_inode_dirty_sync(ecryptfs_inode); 53 return rc; 54} 55 56/** 57 * ecryptfs_write_lower_page_segment 58 * @ecryptfs_inode: The eCryptfs inode 59 * @page_for_lower: The page containing the data to be written to the --- 165 unchanged lines hidden (view full) --- 225int ecryptfs_read_lower(char *data, loff_t offset, size_t size, 226 struct inode *ecryptfs_inode) 227{ 228 struct ecryptfs_inode_info *inode_info = 229 ecryptfs_inode_to_private(ecryptfs_inode); 230 mm_segment_t fs_save; 231 ssize_t rc; 232 |
237 mutex_lock(&inode_info->lower_file_mutex); | |
238 BUG_ON(!inode_info->lower_file); | 233 BUG_ON(!inode_info->lower_file); |
239 inode_info->lower_file->f_pos = offset; | |
240 fs_save = get_fs(); 241 set_fs(get_ds()); | 234 fs_save = get_fs(); 235 set_fs(get_ds()); |
242 rc = vfs_read(inode_info->lower_file, data, size, 243 &inode_info->lower_file->f_pos); | 236 rc = vfs_read(inode_info->lower_file, data, size, &offset); |
244 set_fs(fs_save); | 237 set_fs(fs_save); |
245 mutex_unlock(&inode_info->lower_file_mutex); | |
246 return rc; 247} 248 249/** 250 * ecryptfs_read_lower_page_segment 251 * @page_for_ecryptfs: The page into which data for eCryptfs will be 252 * written 253 * @offset_in_page: Offset in @page_for_ecryptfs from which to start --- 101 unchanged lines hidden --- | 238 return rc; 239} 240 241/** 242 * ecryptfs_read_lower_page_segment 243 * @page_for_ecryptfs: The page into which data for eCryptfs will be 244 * written 245 * @offset_in_page: Offset in @page_for_ecryptfs from which to start --- 101 unchanged lines hidden --- |