crypto.c (8bba066f4e3854755a303cee37ea37bd080a46b3) crypto.c (7ff1d74f5670329ac4b5959a675f8698ba95be20)
1/**
2 * eCryptfs: Linux filesystem encryption layer
3 *
4 * Copyright (C) 1997-2004 Erez Zadok
5 * Copyright (C) 2001-2004 Stony Brook University
6 * Copyright (C) 2004-2006 International Business Machines Corp.
7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
8 * Michael C. Thompson <mcthomps@us.ibm.com>

--- 1177 unchanged lines hidden (view full) ---

1186 * @dentry
1187 * @nd
1188 *
1189 * Returns zero on success; non-zero otherwise
1190 */
1191int ecryptfs_read_header_region(char *data, struct dentry *dentry,
1192 struct vfsmount *mnt)
1193{
1/**
2 * eCryptfs: Linux filesystem encryption layer
3 *
4 * Copyright (C) 1997-2004 Erez Zadok
5 * Copyright (C) 2001-2004 Stony Brook University
6 * Copyright (C) 2004-2006 International Business Machines Corp.
7 * Author(s): Michael A. Halcrow <mahalcro@us.ibm.com>
8 * Michael C. Thompson <mcthomps@us.ibm.com>

--- 1177 unchanged lines hidden (view full) ---

1186 * @dentry
1187 * @nd
1188 *
1189 * Returns zero on success; non-zero otherwise
1190 */
1191int ecryptfs_read_header_region(char *data, struct dentry *dentry,
1192 struct vfsmount *mnt)
1193{
1194 struct file *file;
1194 struct file *lower_file;
1195 mm_segment_t oldfs;
1196 int rc;
1197
1195 mm_segment_t oldfs;
1196 int rc;
1197
1198 mnt = mntget(mnt);
1199 file = dentry_open(dentry, mnt, O_RDONLY);
1200 if (IS_ERR(file)) {
1201 ecryptfs_printk(KERN_DEBUG, "Error opening file to "
1202 "read header region\n");
1203 mntput(mnt);
1204 rc = PTR_ERR(file);
1198 if ((rc = ecryptfs_open_lower_file(&lower_file, dentry, mnt,
1199 O_RDONLY))) {
1200 printk(KERN_ERR
1201 "Error opening lower_file to read header region\n");
1205 goto out;
1206 }
1202 goto out;
1203 }
1207 file->f_pos = 0;
1204 lower_file->f_pos = 0;
1208 oldfs = get_fs();
1209 set_fs(get_ds());
1210 /* For releases 0.1 and 0.2, all of the header information
1211 * fits in the first data extent-sized region. */
1205 oldfs = get_fs();
1206 set_fs(get_ds());
1207 /* For releases 0.1 and 0.2, all of the header information
1208 * fits in the first data extent-sized region. */
1212 rc = file->f_op->read(file, (char __user *)data,
1213 ECRYPTFS_DEFAULT_EXTENT_SIZE, &file->f_pos);
1209 rc = lower_file->f_op->read(lower_file, (char __user *)data,
1210 ECRYPTFS_DEFAULT_EXTENT_SIZE, &lower_file->f_pos);
1214 set_fs(oldfs);
1211 set_fs(oldfs);
1215 fput(file);
1212 if ((rc = ecryptfs_close_lower_file(lower_file))) {
1213 printk(KERN_ERR "Error closing lower_file\n");
1214 goto out;
1215 }
1216 rc = 0;
1217out:
1218 return rc;
1219}
1220
1221static void
1222write_header_metadata(char *virt, struct ecryptfs_crypt_stat *crypt_stat,
1223 size_t *written)

--- 450 unchanged lines hidden ---
1216 rc = 0;
1217out:
1218 return rc;
1219}
1220
1221static void
1222write_header_metadata(char *virt, struct ecryptfs_crypt_stat *crypt_stat,
1223 size_t *written)

--- 450 unchanged lines hidden ---