diff options
Diffstat (limited to 'fs/ecryptfs/read_write.c')
-rw-r--r-- | fs/ecryptfs/read_write.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c index b2a34a192f4f..6a160539cd23 100644 --- a/fs/ecryptfs/read_write.c +++ b/fs/ecryptfs/read_write.c | |||
@@ -40,16 +40,12 @@ int ecryptfs_write_lower(struct inode *ecryptfs_inode, char *data, | |||
40 | loff_t offset, size_t size) | 40 | loff_t offset, size_t size) |
41 | { | 41 | { |
42 | struct file *lower_file; | 42 | struct file *lower_file; |
43 | mm_segment_t fs_save; | ||
44 | ssize_t rc; | 43 | ssize_t rc; |
45 | 44 | ||
46 | lower_file = ecryptfs_inode_to_private(ecryptfs_inode)->lower_file; | 45 | lower_file = ecryptfs_inode_to_private(ecryptfs_inode)->lower_file; |
47 | if (!lower_file) | 46 | if (!lower_file) |
48 | return -EIO; | 47 | return -EIO; |
49 | fs_save = get_fs(); | 48 | rc = kernel_write(lower_file, data, size, offset); |
50 | set_fs(get_ds()); | ||
51 | rc = vfs_write(lower_file, data, size, &offset); | ||
52 | set_fs(fs_save); | ||
53 | mark_inode_dirty_sync(ecryptfs_inode); | 49 | mark_inode_dirty_sync(ecryptfs_inode); |
54 | return rc; | 50 | return rc; |
55 | } | 51 | } |