The patch titled eCryptfs: Fix filesize on hard link creation has been added to the -mm tree. Its filename is ecryptfs-crypto-functions-fix-filesize-on-hard-link-creation.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: eCryptfs: Fix filesize on hard link creation From: Michael Halcrow <mhalcrow@xxxxxxxxxx> The filesize for both the source and destination is getting set to the lower filesize on hard link creation. This patch saves and restores the filesize so it is correct after the link operation is complete. It also removes some extraneous initialization in ecryptfs_read_header_region(). Signed-off-by: Michael Halcrow <mhalcrow@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- fs/ecryptfs/crypto.c | 6 +++--- fs/ecryptfs/inode.c | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff -puN fs/ecryptfs/crypto.c~ecryptfs-crypto-functions-fix-filesize-on-hard-link-creation fs/ecryptfs/crypto.c --- a/fs/ecryptfs/crypto.c~ecryptfs-crypto-functions-fix-filesize-on-hard-link-creation +++ a/fs/ecryptfs/crypto.c @@ -1080,10 +1080,10 @@ int ecryptfs_cipher_code_to_string(char int ecryptfs_read_header_region(char *data, struct dentry *dentry, struct nameidata *nd) { - int rc = 0; - struct vfsmount *mnt = NULL; - struct file *file = NULL; + struct vfsmount *mnt; + struct file *file; mm_segment_t oldfs; + int rc; mnt = mntget(nd->mnt); file = dentry_open(dentry, mnt, O_RDONLY); diff -puN fs/ecryptfs/inode.c~ecryptfs-crypto-functions-fix-filesize-on-hard-link-creation fs/ecryptfs/inode.c --- a/fs/ecryptfs/inode.c~ecryptfs-crypto-functions-fix-filesize-on-hard-link-creation +++ a/fs/ecryptfs/inode.c @@ -477,11 +477,13 @@ out: static int ecryptfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_dentry) { - int rc; struct dentry *lower_old_dentry; struct dentry *lower_new_dentry; struct dentry *lower_dir_dentry; + u64 file_size_save; + int rc; + file_size_save = i_size_read(old_dentry->d_inode); lower_old_dentry = ecryptfs_dentry_to_lower(old_dentry); lower_new_dentry = ecryptfs_dentry_to_lower(new_dentry); dget(lower_old_dentry); @@ -497,6 +499,7 @@ static int ecryptfs_link(struct dentry * ecryptfs_copy_attr_timesizes(dir, lower_new_dentry->d_inode); old_dentry->d_inode->i_nlink = ecryptfs_inode_to_lower(old_dentry->d_inode)->i_nlink; + i_size_write(new_dentry->d_inode, file_size_save); out_lock: unlock_dir(lower_dir_dentry); dput(lower_new_dentry); _ Patches currently in -mm which might be from mhalcrow@xxxxxxxxxx are ecryptfs-fs-makefile-and-fs-kconfig.patch ecryptfs-fs-makefile-and-fs-kconfig-remove-ecrypt_debug-from-fs-kconfig.patch ecryptfs-documentation.patch ecryptfs-makefile.patch ecryptfs-main-module-functions.patch ecryptfs-main-module-functions-uint16_t-u16.patch ecryptfs-header-declarations.patch ecryptfs-header-declarations-update.patch ecryptfs-header-declarations-update-convert-signed-data-types-to-unsigned-data-types.patch ecryptfs-header-declarations-remove-unnecessary-ifndefs.patch ecryptfs-superblock-operations.patch ecryptfs-dentry-operations.patch ecryptfs-file-operations.patch ecryptfs-file-operations-remove-null-==-syntax.patch ecryptfs-file-operations-remove-extraneous-read-of-inode-size-from-header.patch ecryptfs-file-operations-fix.patch ecryptfs-file-operations-fix-premature-release-of-file_info-memory.patch ecryptfs-inode-operations.patch ecryptfs-mmap-operations.patch mark-address_space_operations-const-vs-ecryptfs-mmap-operations.patch ecryptfs-keystore.patch ecryptfs-crypto-functions.patch ecryptfs-crypto-functions-fix-filesize-on-hard-link-creation.patch ecryptfs-debug-functions.patch ecryptfs-alpha-build-fix.patch ecryptfs-convert-assert-to-bug_on.patch ecryptfs-remove-unnecessary-null-checks.patch ecryptfs-rewrite-ecryptfs_fsync.patch ecryptfs-overhaul-file-locking.patch ecryptfs-dont-muck-with-the-existing-nameidata-structures.patch ecryptfs-asm-scatterlisth-linux-scatterlisth.patch ecryptfs-support-for-larger-maximum-key-size.patch ecryptfs-add-codes-for-additional-ciphers.patch ecryptfs-unencrypted-key-size-based-on-encrypted-key-size.patch ecryptfs-packet-and-key-management-update-for-variable-key-size.patch ecryptfs-add-ecryptfs_-prefix-to-mount-options-key-size-parameter.patch ecryptfs-set-the-key-size-from-the-default-for-the-mount.patch ecryptfs-check-for-weak-keys.patch ecryptfs-add-define-values-for-cipher-codes-from-rfc2440-openpgp.patch ecryptfs-convert-bits-to-bytes.patch ecryptfs-more-elegant-aes-key-size-manipulation.patch ecryptfs-more-elegant-aes-key-size-manipulation-tidy.patch ecryptfs-more-intelligent-use-of-tfm-objects.patch ecryptfs-remove-debugging-cruft.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html