From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oren Laadan Subject: [C/R v20][PATCH 44/96] c/r: add generic '->checkpoint' f_op to ext fses Date: Thu, 18 Mar 2010 20:59:50 -0400 Message-ID: <1268960401-16680-7-git-send-email-orenl@cs.columbia.edu> References: <1268960401-16680-1-git-send-email-orenl@cs.columbia.edu> Cc: containers@lists.linux-foundation.org, Matt Helsley , Andreas Dilger , Dave Hansen , Oren Laadan To: linux-fsdevel@vger.kernel.org Return-path: Received: from tarap.cc.columbia.edu ([128.59.29.7]:46908 "EHLO tarap.cc.columbia.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753492Ab0CSBBA (ORCPT ); Thu, 18 Mar 2010 21:01:00 -0400 In-Reply-To: <1268960401-16680-1-git-send-email-orenl@cs.columbia.edu> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: From: Dave Hansen This marks ext[234] as being checkpointable. There will be many more to do this to, but this is a start. Changelog[ckpt-v19-rc3]: - Rebase to kernel 2.6.33 (ext2) Changelog[v1]: - [Serge Hallyn] Use filemap_checkpoint() in ext4_file_vm_ops Signed-off-by: Dave Hansen Signed-off-by: Oren Laadan Acked-by: Serge E. Hallyn Tested-by: Serge E. Hallyn --- fs/ext2/dir.c | 1 + fs/ext2/file.c | 2 ++ fs/ext3/dir.c | 1 + fs/ext3/file.c | 1 + fs/ext4/dir.c | 1 + fs/ext4/file.c | 4 ++++ 6 files changed, 10 insertions(+), 0 deletions(-) diff --git a/fs/ext2/dir.c b/fs/ext2/dir.c index 7516957..84c17f9 100644 --- a/fs/ext2/dir.c +++ b/fs/ext2/dir.c @@ -722,4 +722,5 @@ const struct file_operations ext2_dir_operations = { .compat_ioctl = ext2_compat_ioctl, #endif .fsync = ext2_fsync, + .checkpoint = generic_file_checkpoint, }; diff --git a/fs/ext2/file.c b/fs/ext2/file.c index 586e358..b38d7b9 100644 --- a/fs/ext2/file.c +++ b/fs/ext2/file.c @@ -75,6 +75,7 @@ const struct file_operations ext2_file_operations = { .fsync = ext2_fsync, .splice_read = generic_file_splice_read, .splice_write = generic_file_splice_write, + .checkpoint = generic_file_checkpoint, }; #ifdef CONFIG_EXT2_FS_XIP @@ -90,6 +91,7 @@ const struct file_operations ext2_xip_file_operations = { .open = generic_file_open, .release = ext2_release_file, .fsync = ext2_fsync, + .checkpoint = generic_file_checkpoint, }; #endif diff --git a/fs/ext3/dir.c b/fs/ext3/dir.c index 373fa90..65f98af 100644 --- a/fs/ext3/dir.c +++ b/fs/ext3/dir.c @@ -48,6 +48,7 @@ const struct file_operations ext3_dir_operations = { #endif .fsync = ext3_sync_file, /* BKL held */ .release = ext3_release_dir, + .checkpoint = generic_file_checkpoint, }; diff --git a/fs/ext3/file.c b/fs/ext3/file.c index 388bbdf..bcd9b88 100644 --- a/fs/ext3/file.c +++ b/fs/ext3/file.c @@ -67,6 +67,7 @@ const struct file_operations ext3_file_operations = { .fsync = ext3_sync_file, .splice_read = generic_file_splice_read, .splice_write = generic_file_splice_write, + .checkpoint = generic_file_checkpoint, }; const struct inode_operations ext3_file_inode_operations = { diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c index 9dc9316..f69404c 100644 --- a/fs/ext4/dir.c +++ b/fs/ext4/dir.c @@ -48,6 +48,7 @@ const struct file_operations ext4_dir_operations = { #endif .fsync = ext4_sync_file, .release = ext4_release_dir, + .checkpoint = generic_file_checkpoint, }; diff --git a/fs/ext4/file.c b/fs/ext4/file.c index 9630583..93a129b 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -84,6 +84,9 @@ ext4_file_write(struct kiocb *iocb, const struct iovec *iov, static const struct vm_operations_struct ext4_file_vm_ops = { .fault = filemap_fault, .page_mkwrite = ext4_page_mkwrite, +#ifdef CONFIG_CHECKPOINT + .checkpoint = filemap_checkpoint, +#endif }; static int ext4_file_mmap(struct file *file, struct vm_area_struct *vma) @@ -146,6 +149,7 @@ const struct file_operations ext4_file_operations = { .fsync = ext4_sync_file, .splice_read = generic_file_splice_read, .splice_write = generic_file_splice_write, + .checkpoint = generic_file_checkpoint, }; const struct inode_operations ext4_file_inode_operations = { -- 1.6.3.3