linux/fs/ecryptfs
Tyler Hicks 081312e8c1 eCryptfs: Add getattr function
commit f8f484d1b6 upstream.

The i_blocks field of an eCryptfs inode cannot be trusted, but
generic_fillattr() uses it to instantiate the blocks field of a stat()
syscall when a filesystem doesn't implement its own getattr().  Users
have noticed that the output of du is incorrect on newly created files.

This patch creates ecryptfs_getattr() which calls into the lower
filesystem's getattr() so that eCryptfs can use its kstat.blocks value
after calling generic_fillattr().  It is important to note that the
block count includes the eCryptfs metadata stored in the beginning of
the lower file plus any padding used to fill an extent before
encryption.

https://bugs.launchpad.net/ecryptfs/+bug/390833

Reported-by: Dominic Sacré <dominic.sacre@gmx.de>
Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com>
Cc: Tim Gardner <timg@tpi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2010-02-23 07:37:58 -08:00
..
crypto.c ecryptfs: use after free 2010-01-25 10:49:17 -08:00
debug.c
dentry.c constify dentry_operations: ecryptfs 2009-03-27 14:44:01 -04:00
ecryptfs_kernel.h const: mark remaining address_space_operations const 2009-09-22 07:17:24 -07:00
file.c ecryptfs: initialize private persistent file before dereferencing pointer 2010-01-25 10:49:18 -08:00
inode.c eCryptfs: Add getattr function 2010-02-23 07:37:58 -08:00
Kconfig eCryptfs: Remove Kconfig NET dependency and select MD5 2009-10-08 11:31:36 -05:00
keystore.c eCryptfs: Validate global auth tok keys 2009-09-23 09:10:32 -05:00
kthread.c eCryptfs: Check for O_RDONLY lower inodes when opening lower files 2009-09-23 09:10:32 -05:00
main.c ima: ecryptfs fix imbalance message 2009-10-08 11:31:38 -05:00
Makefile eCryptfs: remove netlink transport 2008-10-16 11:21:39 -07:00
messaging.c eCryptfs: NULL pointer dereference in ecryptfs_send_miscdev() 2009-04-22 03:54:13 -05:00
miscdev.c eCryptfs: NULL pointer dereference in ecryptfs_send_miscdev() 2009-04-22 03:54:13 -05:00
mmap.c eCryptfs: Propagate vfs_read and vfs_write return codes 2009-09-23 09:10:34 -05:00
read_write.c eCryptfs: Propagate vfs_read and vfs_write return codes 2009-09-23 09:10:34 -05:00
super.c ecryptfs: Remove unneeded locking that triggers lockdep false positives 2009-09-23 09:10:30 -05:00