All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
To: Ingo Molnar <mingo-X9Un+BFzKDI@public.gmane.org>
Cc: containers
	<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>,
	"linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
	<linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
	Dave Hansen
	<dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>,
	hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
	Alexey Dobriyan
	<adobriyan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Subject: [RFC][PATCH 3/8] create fs flags to mark c/r supported fs's
Date: Fri, 27 Feb 2009 12:34:28 -0800	[thread overview]
Message-ID: <20090227203428.556600DA@kernel> (raw)
In-Reply-To: <20090227203425.F3B51176@kernel>


There are plenty of filesystems that are not supported for
c/r at this point.  Think of things like hugetlbfs which
are externally visible or pipefs which are kernel-internal.

This provides a quick way to mark the filesystems as they
get supported.  We won't mark wery many filesystems
explicitly for now.  That's because we will assume that
FS_REQUIRES_DEV implies FS_CHECKPOINTABLE for now.  This
assumption may need to get overridden in the future, but
it should be OK for now.

Signed-off-by: Dave Hansen <dave-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
---

 linux-2.6.git-dave/fs/nfs/super.c     |   13 ++++++++-----
 linux-2.6.git-dave/include/linux/fs.h |    1 +
 2 files changed, 9 insertions(+), 5 deletions(-)

diff -puN fs/nfs/super.c~FS_CHECKPOINTABLE-flag fs/nfs/super.c
--- linux-2.6.git/fs/nfs/super.c~FS_CHECKPOINTABLE-flag	2009-02-27 12:07:38.000000000 -0800
+++ linux-2.6.git-dave/fs/nfs/super.c	2009-02-27 12:07:38.000000000 -0800
@@ -233,12 +233,15 @@ static int nfs_xdev_get_sb(struct file_s
 static void nfs_kill_super(struct super_block *);
 static int nfs_remount(struct super_block *sb, int *flags, char *raw_data);
 
+#define NFS_FS_FLAGS FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|\
+		     FS_BINARY_MOUNTDATA|FS_CHECKPOINTABLE
+
 static struct file_system_type nfs_fs_type = {
 	.owner		= THIS_MODULE,
 	.name		= "nfs",
 	.get_sb		= nfs_get_sb,
 	.kill_sb	= nfs_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 struct file_system_type nfs_xdev_fs_type = {
@@ -246,7 +249,7 @@ struct file_system_type nfs_xdev_fs_type
 	.name		= "nfs",
 	.get_sb		= nfs_xdev_get_sb,
 	.kill_sb	= nfs_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 static const struct super_operations nfs_sops = {
@@ -275,7 +278,7 @@ static struct file_system_type nfs4_fs_t
 	.name		= "nfs4",
 	.get_sb		= nfs4_get_sb,
 	.kill_sb	= nfs4_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 struct file_system_type nfs4_xdev_fs_type = {
@@ -283,7 +286,7 @@ struct file_system_type nfs4_xdev_fs_typ
 	.name		= "nfs4",
 	.get_sb		= nfs4_xdev_get_sb,
 	.kill_sb	= nfs4_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 struct file_system_type nfs4_referral_fs_type = {
@@ -291,7 +294,7 @@ struct file_system_type nfs4_referral_fs
 	.name		= "nfs4",
 	.get_sb		= nfs4_referral_get_sb,
 	.kill_sb	= nfs4_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 static const struct super_operations nfs4_sops = {
diff -puN include/linux/fs.h~FS_CHECKPOINTABLE-flag include/linux/fs.h
--- linux-2.6.git/include/linux/fs.h~FS_CHECKPOINTABLE-flag	2009-02-27 12:07:38.000000000 -0800
+++ linux-2.6.git-dave/include/linux/fs.h	2009-02-27 12:07:38.000000000 -0800
@@ -109,6 +109,7 @@ struct inodes_stat_t {
 #define FS_REQUIRES_DEV 1 
 #define FS_BINARY_MOUNTDATA 2
 #define FS_HAS_SUBTYPE 4
+#define FS_CHECKPOINTABLE 8
 #define FS_REVAL_DOT	16384	/* Check the paths ".", ".." for staleness */
 #define FS_RENAME_DOES_D_MOVE	32768	/* FS will handle d_move()
 					 * during rename() internally.
_

WARNING: multiple messages have this Message-ID (diff)
From: Dave Hansen <dave@linux.vnet.ibm.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: containers <containers@lists.linux-foundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"Serge E. Hallyn" <serue@us.ibm.com>,
	Oren Laadan <orenl@cs.columbia.edu>,
	Alexey Dobriyan <adobriyan@gmail.com>,
	hch@infradead.org, Dave Hansen <dave@linux.vnet.ibm.com>
Subject: [RFC][PATCH 3/8] create fs flags to mark c/r supported fs's
Date: Fri, 27 Feb 2009 12:34:28 -0800	[thread overview]
Message-ID: <20090227203428.556600DA@kernel> (raw)
In-Reply-To: <20090227203425.F3B51176@kernel>


There are plenty of filesystems that are not supported for
c/r at this point.  Think of things like hugetlbfs which
are externally visible or pipefs which are kernel-internal.

This provides a quick way to mark the filesystems as they
get supported.  We won't mark wery many filesystems
explicitly for now.  That's because we will assume that
FS_REQUIRES_DEV implies FS_CHECKPOINTABLE for now.  This
assumption may need to get overridden in the future, but
it should be OK for now.

Signed-off-by: Dave Hansen <dave@linux.vnet.ibm.com>
---

 linux-2.6.git-dave/fs/nfs/super.c     |   13 ++++++++-----
 linux-2.6.git-dave/include/linux/fs.h |    1 +
 2 files changed, 9 insertions(+), 5 deletions(-)

diff -puN fs/nfs/super.c~FS_CHECKPOINTABLE-flag fs/nfs/super.c
--- linux-2.6.git/fs/nfs/super.c~FS_CHECKPOINTABLE-flag	2009-02-27 12:07:38.000000000 -0800
+++ linux-2.6.git-dave/fs/nfs/super.c	2009-02-27 12:07:38.000000000 -0800
@@ -233,12 +233,15 @@ static int nfs_xdev_get_sb(struct file_s
 static void nfs_kill_super(struct super_block *);
 static int nfs_remount(struct super_block *sb, int *flags, char *raw_data);
 
+#define NFS_FS_FLAGS FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|\
+		     FS_BINARY_MOUNTDATA|FS_CHECKPOINTABLE
+
 static struct file_system_type nfs_fs_type = {
 	.owner		= THIS_MODULE,
 	.name		= "nfs",
 	.get_sb		= nfs_get_sb,
 	.kill_sb	= nfs_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 struct file_system_type nfs_xdev_fs_type = {
@@ -246,7 +249,7 @@ struct file_system_type nfs_xdev_fs_type
 	.name		= "nfs",
 	.get_sb		= nfs_xdev_get_sb,
 	.kill_sb	= nfs_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 static const struct super_operations nfs_sops = {
@@ -275,7 +278,7 @@ static struct file_system_type nfs4_fs_t
 	.name		= "nfs4",
 	.get_sb		= nfs4_get_sb,
 	.kill_sb	= nfs4_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 struct file_system_type nfs4_xdev_fs_type = {
@@ -283,7 +286,7 @@ struct file_system_type nfs4_xdev_fs_typ
 	.name		= "nfs4",
 	.get_sb		= nfs4_xdev_get_sb,
 	.kill_sb	= nfs4_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 struct file_system_type nfs4_referral_fs_type = {
@@ -291,7 +294,7 @@ struct file_system_type nfs4_referral_fs
 	.name		= "nfs4",
 	.get_sb		= nfs4_referral_get_sb,
 	.kill_sb	= nfs4_kill_super,
-	.fs_flags	= FS_RENAME_DOES_D_MOVE|FS_REVAL_DOT|FS_BINARY_MOUNTDATA,
+	.fs_flags	= NFS_FS_FLAGS,
 };
 
 static const struct super_operations nfs4_sops = {
diff -puN include/linux/fs.h~FS_CHECKPOINTABLE-flag include/linux/fs.h
--- linux-2.6.git/include/linux/fs.h~FS_CHECKPOINTABLE-flag	2009-02-27 12:07:38.000000000 -0800
+++ linux-2.6.git-dave/include/linux/fs.h	2009-02-27 12:07:38.000000000 -0800
@@ -109,6 +109,7 @@ struct inodes_stat_t {
 #define FS_REQUIRES_DEV 1 
 #define FS_BINARY_MOUNTDATA 2
 #define FS_HAS_SUBTYPE 4
+#define FS_CHECKPOINTABLE 8
 #define FS_REVAL_DOT	16384	/* Check the paths ".", ".." for staleness */
 #define FS_RENAME_DOES_D_MOVE	32768	/* FS will handle d_move()
 					 * during rename() internally.
_

  parent reply	other threads:[~2009-02-27 20:34 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-02-27 20:34 [RFC][PATCH 1/8] kill '_data' in cr_hdr_fd_data name Dave Hansen
2009-02-27 20:34 ` [RFC][PATCH 2/8] breakout fdinfo sprintf() into its own function Dave Hansen
2009-02-27 20:34   ` Dave Hansen
2009-02-27 20:56   ` Vegard Nossum
     [not found]     ` <19f34abd0902271256r49a06336rcba56234c06645a7-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-02-27 21:23       ` Dave Hansen
2009-02-27 21:23     ` Dave Hansen
2009-02-27 20:56   ` Vegard Nossum
2009-02-27 20:34 ` Dave Hansen [this message]
2009-02-27 20:34   ` [RFC][PATCH 3/8] create fs flags to mark c/r supported fs's Dave Hansen
2009-02-27 21:16   ` Alexey Dobriyan
2009-02-27 21:16     ` Alexey Dobriyan
2009-02-27 21:20     ` Dave Hansen
     [not found]     ` <20090227211620.GA3326-2ev+ksY9ol182hYKe6nXyg@public.gmane.org>
2009-02-27 21:20       ` Dave Hansen
2009-02-27 20:34 ` [RFC][PATCH 4/8] file c/r: expose functions to query fs support Dave Hansen
2009-02-27 20:34   ` Dave Hansen
2009-02-27 21:14   ` Sukadev Bhattiprolu
     [not found]     ` <20090227211408.GB19872-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-02-27 21:24       ` Dave Hansen
2009-02-27 21:24     ` Dave Hansen
2009-02-27 21:32       ` Dave Hansen
2009-02-27 21:32       ` Dave Hansen
2009-02-27 21:14   ` Sukadev Bhattiprolu
2009-02-28  1:33   ` Sukadev Bhattiprolu
2009-02-28  1:33   ` Sukadev Bhattiprolu
2009-02-27 20:34 ` [RFC][PATCH 5/8] add f_op for checkpointability Dave Hansen
2009-02-27 20:34   ` Dave Hansen
2009-02-28  2:14   ` Sukadev Bhattiprolu
2009-02-28  2:14     ` Sukadev Bhattiprolu
2009-02-28  2:51     ` Dave Hansen
     [not found]     ` <20090228021412.GD19872-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-02-28  2:51       ` Dave Hansen
2009-02-28 20:53   ` Christoph Hellwig
2009-02-28 20:53   ` Christoph Hellwig
2009-02-28 21:37     ` Dave Hansen
2009-03-01 15:19       ` Serge E. Hallyn
2009-03-01 15:19       ` Serge E. Hallyn
2009-03-02 17:05     ` Dave Hansen
2009-03-03 13:15       ` Christoph Hellwig
     [not found]         ` <20090303131528.GB10931-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2009-03-20 21:13           ` Dave Hansen
2009-03-20 21:13         ` Dave Hansen
2009-03-20 21:30           ` Oren Laadan
2009-03-20 21:30           ` Oren Laadan
2009-03-03 13:15       ` Christoph Hellwig
     [not found]     ` <20090228205329.GB4254-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
2009-02-28 21:37       ` Dave Hansen
2009-03-02 17:05       ` Dave Hansen
2009-02-27 20:34 ` [RFC][PATCH 6/8] mark /dev/null and zero as checkpointable Dave Hansen
2009-02-27 20:34   ` Dave Hansen
2009-02-27 20:34 ` [RFC][PATCH 7/8] add c/r info to fdinfo Dave Hansen
2009-02-27 20:34   ` Dave Hansen
2009-02-27 20:34 ` [RFC][PATCH 8/8] check files for checkpointability Dave Hansen
2009-02-27 20:34   ` Dave Hansen
2009-02-28  2:57   ` Sukadev Bhattiprolu
2009-02-28  2:57   ` Sukadev Bhattiprolu
2009-03-01 17:00     ` Serge E. Hallyn
     [not found]     ` <20090228025743.GA22451-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-03-01 17:00       ` Serge E. Hallyn
2009-03-04 23:41       ` Dave Hansen
2009-03-04 23:41     ` Dave Hansen
2009-03-01 19:43   ` Serge E. Hallyn
2009-03-01 19:43   ` Serge E. Hallyn
2009-03-02 13:37   ` Serge E. Hallyn
2009-03-02 13:37   ` Serge E. Hallyn
2009-03-02 15:56     ` Dave Hansen
     [not found]     ` <20090302133754.GA8033-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-03-02 15:56       ` Dave Hansen
2009-03-02 15:59       ` Nathan Lynch
2009-03-02 15:59     ` Nathan Lynch
2009-03-02 16:27       ` Dave Hansen
2009-03-02 17:22         ` Nathan Lynch
     [not found]           ` <20090302112247.76bb3662-4v5LP+xe+1byhTdZtsIeww@public.gmane.org>
2009-03-02 17:30             ` Dave Hansen
2009-03-02 17:30           ` Dave Hansen
2009-03-02 17:44             ` Serge E. Hallyn
2009-03-02 17:58               ` Dave Hansen
     [not found]               ` <20090302174433.GA12708-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-03-02 17:58                 ` Dave Hansen
2009-03-02 18:13                 ` Dave Hansen
2009-03-02 18:13                   ` Dave Hansen
2009-03-02 18:35                   ` Serge E. Hallyn
2009-03-02 18:35                   ` Serge E. Hallyn
2009-03-05  8:20                   ` Cedric Le Goater
2009-03-05  8:20                   ` Cedric Le Goater
2009-03-02 17:44             ` Serge E. Hallyn
2009-03-02 17:22         ` Nathan Lynch
     [not found]       ` <20090302095917.6cfeda55-4v5LP+xe+1byhTdZtsIeww@public.gmane.org>
2009-03-02 16:27         ` Dave Hansen
2009-03-02 16:28         ` Serge E. Hallyn
2009-03-02 16:28       ` Serge E. Hallyn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090227203428.556600DA@kernel \
    --to=dave-23vcf4htsmix0ybbhkvfkdbpr1lh4cv8@public.gmane.org \
    --cc=adobriyan-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
    --cc=hch-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mingo-X9Un+BFzKDI@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.