FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Ubuntu > Ubuntu Kernel Team

 
 
LinkBack Thread Tools
 
Old 09-16-2012, 06:07 AM
Brad Figg
 
Default Ack: eCryptfs: Write out all dirty pages just before releasing the lower file

On 09/15/2012 12:09 PM, Colin King wrote:
> From: Tyler Hicks <tyhicks@canonical.com>
>
> Fixes a regression caused by:
>
> 821f749 eCryptfs: Revert to a writethrough cache model
>
> That patch reverted some code (specifically, 32001d6f) that was
> necessary to properly handle open() -> mmap() -> close() -> dirty pages
> -> munmap(), because the lower file could be closed before the dirty
> pages are written out.
>
> Rather than reapplying 32001d6f, this approach is a better way of
> ensuring that the lower file is still open in order to handle writing
> out the dirty pages. It is called from ecryptfs_release(), while we have
> a lock on the lower file pointer, just before the lower file gets the
> final fput() and we overwrite the pointer.
>
> BugLink: https://launchpad.net/bugs/1047261
>
> Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
> Reported-by: Artemy Tregubenko <me@arty.name>
> Tested-by: Artemy Tregubenko <me@arty.name>
> Tested-by: Colin Ian King <colin.king@canonical.com>
> (upstream cherry pick 7149f2558d5b5b988726662fe58b1c388337805b)
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
> fs/ecryptfs/main.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/fs/ecryptfs/main.c b/fs/ecryptfs/main.c
> index 2768138..9b627c1 100644
> --- a/fs/ecryptfs/main.c
> +++ b/fs/ecryptfs/main.c
> @@ -162,6 +162,7 @@ void ecryptfs_put_lower_file(struct inode *inode)
> inode_info = ecryptfs_inode_to_private(inode);
> if (atomic_dec_and_mutex_lock(&inode_info->lower_file_count,
> &inode_info->lower_file_mutex)) {
> + filemap_write_and_wait(inode->i_mapping);
> fput(inode_info->lower_file);
> inode_info->lower_file = NULL;
> mutex_unlock(&inode_info->lower_file_mutex);
>


--
Brad Figg brad.figg@canonical.com http://www.canonical.com

--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
 

Thread Tools




All times are GMT. The time now is 01:14 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org