linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jan Kara <jack@suse.cz>
To: <linux-fsdevel@vger.kernel.org>
Cc: linux-block@vger.kernel.org,
	Christoph Hellwig <hch@infradead.org>, Jan Kara <jack@suse.cz>,
	Eric Van Hensbergen <ericvh@gmail.com>,
	Ron Minnich <rminnich@sandia.gov>,
	Latchesar Ionkov <lucho@ionkov.net>,
	v9fs-developer@lists.sourceforge.net
Subject: [PATCH 07/25] 9p: Convert to separately allocated bdi
Date: Wed, 29 Mar 2017 12:56:05 +0200	[thread overview]
Message-ID: <20170329105623.18241-8-jack@suse.cz> (raw)
In-Reply-To: <20170329105623.18241-1-jack@suse.cz>

Allocate struct backing_dev_info separately instead of embedding it
inside session. This unifies handling of bdi among users.

CC: Eric Van Hensbergen <ericvh@gmail.com>
CC: Ron Minnich <rminnich@sandia.gov>
CC: Latchesar Ionkov <lucho@ionkov.net>
CC: v9fs-developer@lists.sourceforge.net
Signed-off-by: Jan Kara <jack@suse.cz>
---
 fs/9p/v9fs.c      | 10 +---------
 fs/9p/v9fs.h      |  1 -
 fs/9p/vfs_super.c | 15 ++++++++++++---
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c
index a89f3cfe3c7d..c202930086ed 100644
--- a/fs/9p/v9fs.c
+++ b/fs/9p/v9fs.c
@@ -333,10 +333,6 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
 		goto err_names;
 	init_rwsem(&v9ses->rename_sem);
 
-	rc = bdi_setup_and_register(&v9ses->bdi, "9p");
-	if (rc)
-		goto err_names;
-
 	v9ses->uid = INVALID_UID;
 	v9ses->dfltuid = V9FS_DEFUID;
 	v9ses->dfltgid = V9FS_DEFGID;
@@ -345,7 +341,7 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
 	if (IS_ERR(v9ses->clnt)) {
 		rc = PTR_ERR(v9ses->clnt);
 		p9_debug(P9_DEBUG_ERROR, "problem initializing 9p client\n");
-		goto err_bdi;
+		goto err_names;
 	}
 
 	v9ses->flags = V9FS_ACCESS_USER;
@@ -415,8 +411,6 @@ struct p9_fid *v9fs_session_init(struct v9fs_session_info *v9ses,
 
 err_clnt:
 	p9_client_destroy(v9ses->clnt);
-err_bdi:
-	bdi_destroy(&v9ses->bdi);
 err_names:
 	kfree(v9ses->uname);
 	kfree(v9ses->aname);
@@ -445,8 +439,6 @@ void v9fs_session_close(struct v9fs_session_info *v9ses)
 	kfree(v9ses->uname);
 	kfree(v9ses->aname);
 
-	bdi_destroy(&v9ses->bdi);
-
 	spin_lock(&v9fs_sessionlist_lock);
 	list_del(&v9ses->slist);
 	spin_unlock(&v9fs_sessionlist_lock);
diff --git a/fs/9p/v9fs.h b/fs/9p/v9fs.h
index 443d12e02043..76eaf49abd3a 100644
--- a/fs/9p/v9fs.h
+++ b/fs/9p/v9fs.h
@@ -114,7 +114,6 @@ struct v9fs_session_info {
 	kuid_t uid;		/* if ACCESS_SINGLE, the uid that has access */
 	struct p9_client *clnt;	/* 9p client */
 	struct list_head slist; /* list of sessions registered with v9fs */
-	struct backing_dev_info bdi;
 	struct rw_semaphore rename_sem;
 };
 
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c
index de3ed8629196..a0965fb587a5 100644
--- a/fs/9p/vfs_super.c
+++ b/fs/9p/vfs_super.c
@@ -72,10 +72,12 @@ static int v9fs_set_super(struct super_block *s, void *data)
  *
  */
 
-static void
+static int
 v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
 		int flags, void *data)
 {
+	int ret;
+
 	sb->s_maxbytes = MAX_LFS_FILESIZE;
 	sb->s_blocksize_bits = fls(v9ses->maxdata - 1);
 	sb->s_blocksize = 1 << sb->s_blocksize_bits;
@@ -85,7 +87,11 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
 		sb->s_xattr = v9fs_xattr_handlers;
 	} else
 		sb->s_op = &v9fs_super_ops;
-	sb->s_bdi = &v9ses->bdi;
+
+	ret = super_setup_bdi(sb);
+	if (ret)
+		return ret;
+
 	if (v9ses->cache)
 		sb->s_bdi->ra_pages = (VM_MAX_READAHEAD * 1024)/PAGE_SIZE;
 
@@ -99,6 +105,7 @@ v9fs_fill_super(struct super_block *sb, struct v9fs_session_info *v9ses,
 #endif
 
 	save_mount_options(sb, data);
+	return 0;
 }
 
 /**
@@ -138,7 +145,9 @@ static struct dentry *v9fs_mount(struct file_system_type *fs_type, int flags,
 		retval = PTR_ERR(sb);
 		goto clunk_fid;
 	}
-	v9fs_fill_super(sb, v9ses, flags, data);
+	retval = v9fs_fill_super(sb, v9ses, flags, data);
+	if (retval)
+		goto release_sb;
 
 	if (v9ses->cache == CACHE_LOOSE || v9ses->cache == CACHE_FSCACHE)
 		sb->s_d_op = &v9fs_cached_dentry_operations;
-- 
2.10.2

  parent reply	other threads:[~2017-03-29 10:56 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-29 10:55 [PATCH 0/25 v2] fs: Convert all embedded bdis into separate ones Jan Kara
2017-03-29 10:55 ` [PATCH 01/25] bdi: Provide bdi_register_va() and bdi_alloc() Jan Kara
2017-04-12  8:06   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 02/25] block: Unregister bdi on last reference drop Jan Kara
2017-04-12  8:06   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 03/25] bdi: Export bdi_alloc_node() and bdi_put() Jan Kara
2017-04-12  8:08   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 04/25] fs: Provide infrastructure for dynamic BDIs in filesystems Jan Kara
2017-04-12  8:09   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 05/25] fs: Get proper reference for s_bdi Jan Kara
2017-04-12  8:09   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 06/25] lustre: Convert to separately allocated bdi Jan Kara
2017-04-12  8:10   ` Christoph Hellwig
2017-03-29 10:56 ` Jan Kara [this message]
2017-04-12  8:10   ` [PATCH 07/25] 9p: " Christoph Hellwig
2017-03-29 10:56 ` [PATCH 08/25] btrfs: " Jan Kara
2017-04-12  8:10   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 09/25] ceph: " Jan Kara
2017-04-12  8:11   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 10/25] cifs: " Jan Kara
2017-04-12  8:11   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 11/25] ecryptfs: " Jan Kara
2017-04-12  8:11   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 12/25] afs: " Jan Kara
2017-04-12  8:12   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 13/25] mtd: Convert to dynamically allocated bdi infrastructure Jan Kara
2017-04-12  8:14   ` Christoph Hellwig
2017-04-12  9:43     ` Jan Kara
2017-03-29 10:56 ` [PATCH 14/25] coda: Convert to separately allocated bdi Jan Kara
2017-04-12  8:14   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 15/25] exofs: " Jan Kara
2017-04-12  8:14   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 16/25] fuse: " Jan Kara
2017-04-12  8:15   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 17/25] fuse: Get rid of bdi_initialized Jan Kara
2017-04-12  8:15   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 18/25] gfs2: Convert to properly refcounting bdi Jan Kara
2017-04-12  8:16   ` Christoph Hellwig
2017-04-12  8:48     ` Steven Whitehouse
2017-03-29 10:56 ` [PATCH 19/25] nilfs2: " Jan Kara
2017-04-12  8:17   ` Christoph Hellwig
2017-04-12  9:33     ` Jan Kara
2017-03-29 10:56 ` [PATCH 20/25] ncpfs: Convert to separately allocated bdi Jan Kara
2017-04-12  8:18   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 21/25] nfs: " Jan Kara
2017-04-12  8:20   ` Christoph Hellwig
2017-04-12  9:52     ` Jan Kara
2017-03-29 10:56 ` [PATCH 22/25] ubifs: " Jan Kara
2017-04-12  8:20   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 23/25] fs: Remove SB_I_DYNBDI flag Jan Kara
2017-04-12  8:21   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 24/25] block: Remove unused functions Jan Kara
2017-04-12  8:21   ` Christoph Hellwig
2017-03-29 10:56 ` [PATCH 25/25] bdi: Drop 'parent' argument from bdi_register[_va]() Jan Kara
2017-04-12  8:21   ` Christoph Hellwig
2017-04-12  7:32 ` [PATCH 0/25 v2] fs: Convert all embedded bdis into separate ones Jan Kara
2017-04-12 10:24 [PATCH 0/25 v3] " Jan Kara
2017-04-12 10:24 ` [PATCH 07/25] 9p: Convert to separately allocated bdi Jan Kara

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=20170329105623.18241-8-jack@suse.cz \
    --to=jack@suse.cz \
    --cc=ericvh@gmail.com \
    --cc=hch@infradead.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=lucho@ionkov.net \
    --cc=rminnich@sandia.gov \
    --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).