Mailing List Archive

[PATCH] ecryptfs: check xattr operation support fix
- ecryptfs_write_inode_size_to_metadata() error code was ignored.
- i_op->setxattr() must be supported by lower fs because used below.

Signed-off-by: Monakhov Dmitriy <dmonakhov@openvz.org>
---
fs/ecryptfs/inode.c | 6 +++---
fs/ecryptfs/mmap.c | 3 ++-
2 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
index 27fd14a..9ccefad 100644
--- a/fs/ecryptfs/inode.c
+++ b/fs/ecryptfs/inode.c
@@ -168,9 +168,9 @@ static int grow_file(struct dentry *ecryptfs_dentry, struct file *lower_file,
goto out;
}
i_size_write(inode, 0);
- ecryptfs_write_inode_size_to_metadata(lower_file, lower_inode, inode,
- ecryptfs_dentry,
- ECRYPTFS_LOWER_I_MUTEX_NOT_HELD);
+ rc = ecryptfs_write_inode_size_to_metadata(lower_file, lower_inode,
+ inode, ecryptfs_dentry,
+ ECRYPTFS_LOWER_I_MUTEX_NOT_HELD);
ecryptfs_inode_to_private(inode)->crypt_stat.flags |= ECRYPTFS_NEW_FILE;
out:
return rc;
diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c
index 1e5d2ba..416985f 100644
--- a/fs/ecryptfs/mmap.c
+++ b/fs/ecryptfs/mmap.c
@@ -491,7 +491,8 @@ static int ecryptfs_write_inode_size_to_xattr(struct inode *lower_inode,
goto out;
}
lower_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry);
- if (!lower_dentry->d_inode->i_op->getxattr) {
+ if (!lower_dentry->d_inode->i_op->getxattr ||
+ !lower_dentry->d_inode->i_op->setxattr) {
printk(KERN_WARNING
"No support for setting xattr in lower filesystem\n");
rc = -ENOSYS;
--
1.5.0.1


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH] ecryptfs: check xattr operation support fix [ In reply to ]
On Wed, Feb 28, 2007 at 08:05:16PM +0300, Dmitriy Monakhov wrote:
> - ecryptfs_write_inode_size_to_metadata() error code was ignored.
> - i_op->setxattr() must be supported by lower fs because used below.
>
> Signed-off-by: Monakhov Dmitriy <dmonakhov@openvz.org>

Acked-by: Michael Halcrow <mhalcrow@us.ibm.com>

> ---
> fs/ecryptfs/inode.c | 6 +++---
> fs/ecryptfs/mmap.c | 3 ++-
> 2 files changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
> index 27fd14a..9ccefad 100644
> --- a/fs/ecryptfs/inode.c
> +++ b/fs/ecryptfs/inode.c
> @@ -168,9 +168,9 @@ static int grow_file(struct dentry *ecryptfs_dentry, struct file *lower_file,
> goto out;
> }
> i_size_write(inode, 0);
> - ecryptfs_write_inode_size_to_metadata(lower_file, lower_inode, inode,
> - ecryptfs_dentry,
> - ECRYPTFS_LOWER_I_MUTEX_NOT_HELD);
> + rc = ecryptfs_write_inode_size_to_metadata(lower_file, lower_inode,
> + inode, ecryptfs_dentry,
> + ECRYPTFS_LOWER_I_MUTEX_NOT_HELD);
> ecryptfs_inode_to_private(inode)->crypt_stat.flags |= ECRYPTFS_NEW_FILE;
> out:
> return rc;
> diff --git a/fs/ecryptfs/mmap.c b/fs/ecryptfs/mmap.c
> index 1e5d2ba..416985f 100644
> --- a/fs/ecryptfs/mmap.c
> +++ b/fs/ecryptfs/mmap.c
> @@ -491,7 +491,8 @@ static int ecryptfs_write_inode_size_to_xattr(struct inode *lower_inode,
> goto out;
> }
> lower_dentry = ecryptfs_dentry_to_lower(ecryptfs_dentry);
> - if (!lower_dentry->d_inode->i_op->getxattr) {
> + if (!lower_dentry->d_inode->i_op->getxattr ||
> + !lower_dentry->d_inode->i_op->setxattr) {
> printk(KERN_WARNING
> "No support for setting xattr in lower filesystem\n");
> rc = -ENOSYS;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/