]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
client: move mref_reader check in statfs out of helper
authorChristopher Hoffman <choffman@redhat.com>
Mon, 11 Aug 2025 14:30:05 +0000 (14:30 +0000)
committerChristopher Hoffman <choffman@redhat.com>
Tue, 19 Aug 2025 14:48:15 +0000 (14:48 +0000)
Signed-off-by: Christopher Hoffman <choffman@redhat.com>
(cherry picked from commit 9ab1209a68d450eca9bf915a605200ab92e53926)

src/client/Client.cc

index 2cbacbcb36a9a576d574f60aa2d9a66803eeadf4..0416ed363859eadb31b533269919100f2068edb0 100644 (file)
@@ -12524,10 +12524,6 @@ int Client::getcwd(string& dir, const UserPerm& perms)
 int Client::_statfs(Inode *in, struct statvfs *stbuf,
                   const UserPerm& perms)
 {
-  RWRef_t mref_reader(mount_state, CLIENT_MOUNTING);
-  if (!mref_reader.is_state_satisfied())
-    return -ENOTCONN;
-
   ldout(cct, 10) << __func__ << dendl;
   tout(cct) << __func__ << std::endl;
   unsigned long int total_files_on_fs;
@@ -12965,6 +12961,10 @@ int Client::get_snap_info(const char *path, const UserPerm &perms, SnapInfo *sna
 
 int Client::ll_statfs(Inode *in, struct statvfs *stbuf, const UserPerm& perms)
 {
+  RWRef_t mref_reader(mount_state, CLIENT_MOUNTING);
+  if (!mref_reader.is_state_satisfied())
+    return -ENOTCONN;
+
   /* Since the only thing this does is wrap a call to statfs, and
      statfs takes a lock, it doesn't seem we have a need to split it
      out. */
@@ -12973,6 +12973,10 @@ int Client::ll_statfs(Inode *in, struct statvfs *stbuf, const UserPerm& perms)
 
 int Client::statfs(const char *path, struct statvfs *stbuf, const UserPerm& perms)
 {
+  RWRef_t mref_reader(mount_state, CLIENT_MOUNTING);
+  if (!mref_reader.is_state_satisfied())
+    return -ENOTCONN;
+
   walk_dentry_result wdr;
   {
     std::scoped_lock l(client_lock);