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 ---