All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff Layton <jlayton@kernel.org>
To: ceph-devel@vger.kernel.org
Cc: idridryomov@gmail.com, sage@redhat.com, zyan@redhat.com,
	pdonnell@redhat.com
Subject: [PATCH v4 4/9] ceph: make __take_cap_refs non-static
Date: Wed, 12 Feb 2020 12:27:24 -0500	[thread overview]
Message-ID: <20200212172729.260752-5-jlayton@kernel.org> (raw)
In-Reply-To: <20200212172729.260752-1-jlayton@kernel.org>

Rename it to ceph_take_cap_refs and make it available to other files.
Also replace a comment with a lockdep assertion.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
---
 fs/ceph/caps.c  | 12 ++++++------
 fs/ceph/super.h |  2 ++
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index 7fc87b693ba4..c983990acb75 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -2512,12 +2512,12 @@ static void kick_flushing_inode_caps(struct ceph_mds_client *mdsc,
 /*
  * Take references to capabilities we hold, so that we don't release
  * them to the MDS prematurely.
- *
- * Protected by i_ceph_lock.
  */
-static void __take_cap_refs(struct ceph_inode_info *ci, int got,
+void ceph_take_cap_refs(struct ceph_inode_info *ci, int got,
 			    bool snap_rwsem_locked)
 {
+	lockdep_assert_held(&ci->i_ceph_lock);
+
 	if (got & CEPH_CAP_PIN)
 		ci->i_pin_ref++;
 	if (got & CEPH_CAP_FILE_RD)
@@ -2538,7 +2538,7 @@ static void __take_cap_refs(struct ceph_inode_info *ci, int got,
 		if (ci->i_wb_ref == 0)
 			ihold(&ci->vfs_inode);
 		ci->i_wb_ref++;
-		dout("__take_cap_refs %p wb %d -> %d (?)\n",
+		dout("%s %p wb %d -> %d (?)\n", __func__,
 		     &ci->vfs_inode, ci->i_wb_ref-1, ci->i_wb_ref);
 	}
 }
@@ -2664,7 +2664,7 @@ static int try_get_cap_refs(struct inode *inode, int need, int want,
 			    (need & CEPH_CAP_FILE_RD) &&
 			    !(*got & CEPH_CAP_FILE_CACHE))
 				ceph_disable_fscache_readpage(ci);
-			__take_cap_refs(ci, *got, true);
+			ceph_take_cap_refs(ci, *got, true);
 			ret = 1;
 		}
 	} else {
@@ -2896,7 +2896,7 @@ int ceph_get_caps(struct file *filp, int need, int want,
 void ceph_get_cap_refs(struct ceph_inode_info *ci, int caps)
 {
 	spin_lock(&ci->i_ceph_lock);
-	__take_cap_refs(ci, caps, false);
+	ceph_take_cap_refs(ci, caps, false);
 	spin_unlock(&ci->i_ceph_lock);
 }
 
diff --git a/fs/ceph/super.h b/fs/ceph/super.h
index 3192e506ad5e..ea68eef977ef 100644
--- a/fs/ceph/super.h
+++ b/fs/ceph/super.h
@@ -1062,6 +1062,8 @@ extern void ceph_kick_flushing_caps(struct ceph_mds_client *mdsc,
 				    struct ceph_mds_session *session);
 extern struct ceph_cap *ceph_get_cap_for_mds(struct ceph_inode_info *ci,
 					     int mds);
+extern void ceph_take_cap_refs(struct ceph_inode_info *ci, int caps,
+				bool snap_rwsem_locked);
 extern void ceph_get_cap_refs(struct ceph_inode_info *ci, int caps);
 extern void ceph_put_cap_refs(struct ceph_inode_info *ci, int had);
 extern void ceph_put_wrbuffer_cap_refs(struct ceph_inode_info *ci, int nr,
-- 
2.24.1

  parent reply	other threads:[~2020-02-12 17:27 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-12 17:27 [PATCH v4 0/9] ceph: add support for asynchronous directory operations Jeff Layton
2020-02-12 17:27 ` [PATCH v4 1/9] ceph: add flag to designate that a request is asynchronous Jeff Layton
2020-02-13  9:29   ` Yan, Zheng
2020-02-13 11:35     ` Jeff Layton
2020-02-12 17:27 ` [PATCH v4 2/9] ceph: perform asynchronous unlink if we have sufficient caps Jeff Layton
2020-02-13 12:06   ` Yan, Zheng
2020-02-13 12:22     ` Jeff Layton
2020-02-12 17:27 ` [PATCH v4 3/9] ceph: make ceph_fill_inode non-static Jeff Layton
2020-02-12 17:27 ` Jeff Layton [this message]
2020-02-12 17:27 ` [PATCH v4 5/9] ceph: decode interval_sets for delegated inos Jeff Layton
2020-02-12 17:27 ` [PATCH v4 6/9] ceph: add infrastructure for waiting for async create to complete Jeff Layton
2020-02-13 12:15   ` Yan, Zheng
2020-02-13 12:22     ` Jeff Layton
2020-02-12 17:27 ` [PATCH v4 7/9] ceph: add new MDS req field to hold delegated inode number Jeff Layton
2020-02-12 17:27 ` [PATCH v4 8/9] ceph: cache layout in parent dir on first sync create Jeff Layton
2020-02-12 17:27 ` [PATCH v4 9/9] ceph: attempt to do async create when possible Jeff Layton
2020-02-13 12:44   ` Yan, Zheng
2020-02-13 13:05 ` [PATCH v4 0/9] ceph: add support for asynchronous directory operations Yan, Zheng
2020-02-13 13:20   ` Jeff Layton
2020-02-13 14:43     ` Yan, Zheng
2020-02-13 15:09       ` Jeff Layton
2020-02-14  2:10         ` Yan, Zheng

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=20200212172729.260752-5-jlayton@kernel.org \
    --to=jlayton@kernel.org \
    --cc=ceph-devel@vger.kernel.org \
    --cc=idridryomov@gmail.com \
    --cc=pdonnell@redhat.com \
    --cc=sage@redhat.com \
    --cc=zyan@redhat.com \
    /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.