diff options
Diffstat (limited to 'releases/2.6.32.58/ecryptfs-read-on-a-directory-should-return-eisdir-if-not-supported.patch')
-rw-r--r-- | releases/2.6.32.58/ecryptfs-read-on-a-directory-should-return-eisdir-if-not-supported.patch | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/releases/2.6.32.58/ecryptfs-read-on-a-directory-should-return-eisdir-if-not-supported.patch b/releases/2.6.32.58/ecryptfs-read-on-a-directory-should-return-eisdir-if-not-supported.patch new file mode 100644 index 0000000..5c6e096 --- /dev/null +++ b/releases/2.6.32.58/ecryptfs-read-on-a-directory-should-return-eisdir-if-not-supported.patch @@ -0,0 +1,38 @@ +From 323ef68faf1bbd9b1e66aea268fd09d358d7e8ab Mon Sep 17 00:00:00 2001 +From: Andy Whitcroft <apw@canonical.com> +Date: Wed, 16 Feb 2011 04:49:59 +0000 +Subject: ecryptfs: read on a directory should return EISDIR if not supported + +From: Andy Whitcroft <apw@canonical.com> + +commit 323ef68faf1bbd9b1e66aea268fd09d358d7e8ab upstream. + +read() calls against a file descriptor connected to a directory are +incorrectly returning EINVAL rather than EISDIR: + + [EISDIR] + [XSI] [Option Start] The fildes argument refers to a directory and the + implementation does not allow the directory to be read using read() + or pread(). The readdir() function should be used instead. [Option End] + +This occurs because we do not have a .read operation defined for +ecryptfs directories. Connect this up to generic_read_dir(). + +BugLink: http://bugs.launchpad.net/bugs/719691 +Signed-off-by: Andy Whitcroft <apw@canonical.com> +Signed-off-by: Tyler Hicks <tyhicks@linux.vnet.ibm.com> + +--- + fs/ecryptfs/file.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/fs/ecryptfs/file.c ++++ b/fs/ecryptfs/file.c +@@ -323,6 +323,7 @@ ecryptfs_compat_ioctl(struct file *file, + + const struct file_operations ecryptfs_dir_fops = { + .readdir = ecryptfs_readdir, ++ .read = generic_read_dir, + .unlocked_ioctl = ecryptfs_unlocked_ioctl, + #ifdef CONFIG_COMPAT + .compat_ioctl = ecryptfs_compat_ioctl, |