[Devel] [PATCH 09/11] hugetlbfs checkpoint/restart hooks
Nathan Lynch
ntl at pobox.com
Wed Oct 20 11:56:44 PDT 2010
Add the necessary plumbing to to checkpoint open hugetlbfs files.
Signed-off-by: Nathan Lynch <ntl at pobox.com>
---
fs/hugetlbfs/inode.c | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index a0bbd3d..575f837 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -21,6 +21,7 @@
#include <linux/string.h>
#include <linux/capability.h>
#include <linux/ctype.h>
+#include <linux/checkpoint.h>
#include <linux/backing-dev.h>
#include <linux/hugetlb.h>
#include <linux/pagevec.h>
@@ -463,6 +464,24 @@ out:
return error;
}
+#ifdef CONFIG_CHECKPOINT
+static const struct file_operations hugetlbfs_dir_operations = {
+ /* Just like simple_dir_operations except... */
+ .open = dcache_dir_open,
+ .release = dcache_dir_close,
+ .llseek = dcache_dir_lseek,
+ .read = generic_read_dir,
+ .readdir = dcache_readdir,
+ .fsync = simple_sync_file,
+
+ /* The checkpoint ops are unlike simple_dir_operations */
+ .checkpoint = generic_file_checkpoint,
+};
+#else
+#define hugetlbfs_dir_operations simple_dir_operations
+#endif
+
+
static struct inode *hugetlbfs_get_inode(struct super_block *sb, uid_t uid,
gid_t gid, int mode, dev_t dev)
{
@@ -497,7 +516,7 @@ static struct inode *hugetlbfs_get_inode(struct super_block *sb, uid_t uid,
break;
case S_IFDIR:
inode->i_op = &hugetlbfs_dir_inode_operations;
- inode->i_fop = &simple_dir_operations;
+ inode->i_fop = &hugetlbfs_dir_operations;
/* directory inodes start off with i_nlink == 2 (for "." entry) */
inc_nlink(inode);
@@ -690,6 +709,9 @@ const struct file_operations hugetlbfs_file_operations = {
.mmap = hugetlbfs_file_mmap,
.fsync = simple_sync_file,
.get_unmapped_area = hugetlb_get_unmapped_area,
+#ifdef CONFIG_CHECKPOINT
+ .checkpoint = generic_file_checkpoint,
+#endif
};
static const struct inode_operations hugetlbfs_dir_inode_operations = {
--
1.7.2.2
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list