linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
To: v9fs-developer@lists.sourceforge.net
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Subject: [RFC PATCH -V2 11/17] fs/9p: Implement syncfs call back for 9Pfs
Date: Sat,  5 Feb 2011 23:16:39 +0530	[thread overview]
Message-ID: <1296928005-9529-12-git-send-email-aneesh.kumar@linux.vnet.ibm.com> (raw)
In-Reply-To: <1296928005-9529-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com>

FIXME!! what about dotu ?

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
 fs/9p/v9fs.h      |    1 +
 fs/9p/vfs_super.c |   19 +++++++++++++++++--
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
index c4b5d88..41f29b9 100644
--- a/fs/9p/v9fs.h
+++ b/fs/9p/v9fs.h
@@ -109,6 +109,7 @@ struct v9fs_session_info {
 	struct list_head slist; /* list of sessions registered with v9fs */
 	struct backing_dev_info bdi;
 	struct rw_semaphore rename_sem;
+	struct p9_fid *root_fid; /* Used for file system sync */
 };
 
 struct p9_fid *v9fs_session_init(struct v9fs_session_info *, const char *,
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index 76e11e8..fde5fe2 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -152,7 +152,6 @@ static struct dentry *v9fs_mount(struct file_system_type *fs_type, int flags,
 		retval = PTR_ERR(inode);
 		goto release_sb;
 	}
-
 	root = d_alloc_root(inode);
 	if (!root) {
 		iput(inode);
@@ -188,6 +187,13 @@ static struct dentry *v9fs_mount(struct file_system_type *fs_type, int flags,
 	if (retval)
 		goto release_sb;
 	v9fs_fid_add(root, fid);
+	/*
+	 * Add the root fid to session info. This is used
+	 * for file system sync. We want a cloned fid here
+	 * so that we can do a sync_filesystem after a
+	 * shrink_dcache_for_umount
+	 */
+	v9ses->root_fid = v9fs_fid_clone(root);
 
 	P9_DPRINTK(P9_DEBUG_VFS, " simple set mount, return 0\n");
 	return dget(sb->s_root);
@@ -224,7 +230,7 @@ static void v9fs_kill_super(struct super_block *s)
 	P9_DPRINTK(P9_DEBUG_VFS, " %p\n", s);
 
 	kill_anon_super(s);
-
+	p9_client_clunk(v9ses->root_fid);
 	v9fs_session_cancel(v9ses);
 	v9fs_session_close(v9ses);
 	kfree(v9ses);
@@ -277,6 +283,14 @@ done:
 	return res;
 }
 
+static int v9fs_sync_fs(struct super_block *sb, int wait)
+{
+	struct v9fs_session_info *v9ses = sb->s_fs_info;
+
+	P9_DPRINTK(P9_DEBUG_VFS, "v9fs_sync_fs: super_block %p\n", sb);
+	return p9_client_sync_fs(v9ses->root_fid);
+}
+
 static const struct super_operations v9fs_super_ops = {
 #ifdef CONFIG_9P_FSCACHE
 	.alloc_inode = v9fs_alloc_inode,
@@ -293,6 +307,7 @@ static const struct super_operations v9fs_super_ops_dotl = {
 	.alloc_inode = v9fs_alloc_inode,
 	.destroy_inode = v9fs_destroy_inode,
 #endif
+	.sync_fs = v9fs_sync_fs,
 	.statfs = v9fs_statfs,
 	.evict_inode = v9fs_evict_inode,
 	.show_options = generic_show_options,
-- 
1.7.1

  parent reply	other threads:[~2011-02-05 17:46 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-05 17:46 [RFC PATCH -V2 0/17] Buffered write and writeable mmap support for 9P Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 01/17] fs/9p: set the cached file_operations struct during inode init Aneesh Kumar K.V
2011-02-07 15:02   ` [V9fs-developer] " Eric Van Hensbergen
2011-02-08  8:47     ` Aneesh Kumar K. V
2011-02-05 17:46 ` [RFC PATCH -V2 02/17] fs/9p: set fs cache cookie in create path also Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 03/17] fs/9p: increment inode->i_count in cached mode Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 04/17] fs/9p: [fscache] wait for page write " Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 05/17] fs/9p: Add read write helper function Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 06/17] fs/9p: Add fid to inode in cached mode Aneesh Kumar K.V
2011-02-07 15:30   ` [V9fs-developer] " Eric Van Hensbergen
2011-02-05 17:46 ` [RFC PATCH -V2 07/17] fs/9p: Add buffered write support for v9fs Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 08/17] fs/9p: Clarify cached dentry delete operation Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 09/17] fs/9p: Mark file system with MS_SYNCHRONOUS only if it is not cached mode Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 10/17] net/9p: Implement syncfs 9P operation Aneesh Kumar K.V
2011-02-05 17:46 ` Aneesh Kumar K.V [this message]
2011-02-05 17:46 ` [RFC PATCH -V2 12/17] fs/9p: We need not writeback dirty pages during close Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 13/17] fs/9p: Add inode hashing Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 14/17] fs/9p: Don't set stat.st_blocks based on nrpages Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 15/17] fs/9p: Add v9fs_inode Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 16/17] fs/9p: Move writeback fid to v9fs_inode Aneesh Kumar K.V
2011-02-05 17:46 ` [RFC PATCH -V2 17/17] fs/9p: set default readahead pages in cached mode Aneesh Kumar K.V
2011-02-05 18:03 ` [RFC PATCH -V2 0/17] Buffered write and writeable mmap support for 9P Aneesh Kumar K. V
2011-02-07 14:58   ` [V9fs-developer] " Eric Van Hensbergen

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=1296928005-9529-12-git-send-email-aneesh.kumar@linux.vnet.ibm.com \
    --to=aneesh.kumar@linux.vnet.ibm.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=v9fs-developer@lists.sourceforge.net \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).