From: Mike Halcrow Christoph Hellwig pointed out that the inode is not live at this point in ecryptfs_open(), and so this entire function is pointless. Signed-off-by: Michael Halcrow Signed-off-by: Andrew Morton --- fs/ecryptfs/file.c | 47 ------------------------------------------- 1 files changed, 1 insertion(+), 46 deletions(-) diff -puN fs/ecryptfs/file.c~ecryptfs-file-operations-remove-extraneous-read-of-inode-size-from-header fs/ecryptfs/file.c --- 25/fs/ecryptfs/file.c~ecryptfs-file-operations-remove-extraneous-read-of-inode-size-from-header Fri May 26 13:48:03 2006 +++ 25-akpm/fs/ecryptfs/file.c Fri May 26 13:48:03 2006 @@ -189,49 +189,6 @@ retry: return rc; } -/** - * read_inode_size_from_header - * @lower_file: The lower file struct - * @lower_inode: The lower inode - * @inode: The ecryptfs inode - * - * Returns zero on success; non-zero otherwise - */ -static int -read_inode_size_from_header(struct file *lower_file, - struct inode *lower_inode, struct inode *inode) -{ - int rc; - struct page *header_page; - unsigned char *header_virt; - u64 data_size; - - header_page = grab_cache_page(lower_inode->i_mapping, 0); - if (!header_page) { - rc = -EINVAL; - ecryptfs_printk(KERN_ERR, "grab_cache_page for header page " - "failed\n"); - goto out; - } - header_virt = kmap(header_page); - rc = lower_inode->i_mapping->a_ops->readpage(lower_file, header_page); - if (rc) { - ecryptfs_printk(KERN_ERR, "Error reading header page\n"); - goto out_unmap; - } - memcpy(&data_size, header_virt, sizeof(data_size)); - data_size = be64_to_cpu(data_size); - i_size_write(inode, (loff_t)data_size); - ecryptfs_printk(KERN_DEBUG, "inode w/ addr = [0x%p], i_ino = [0x%.16x] " - "size: [0x%.16x]\n", inode, inode->i_ino, - i_size_read(inode)); -out_unmap: - kunmap(header_page); - page_cache_release(header_page); -out: - return rc; -} - struct kmem_cache *ecryptfs_file_info_cache; /** @@ -320,9 +277,7 @@ static int ecryptfs_open(struct inode *i * going to default to -EIO. */ rc = -EIO; goto out_puts; - } else - read_inode_size_from_header(lower_file, lower_inode, - inode); + } } ecryptfs_printk(KERN_DEBUG, "inode w/ addr = [0x%p], i_ino = [0x%.16x] " "size: [0x%.16x]\n", inode, inode->i_ino, _