Commit 3e0708b9 authored by Yan, Zheng's avatar Yan, Zheng Committed by Ilya Dryomov

ceph: ratelimit warn messages for MDS closes session

Signed-off-by: default avatarYan, Zheng <zyan@redhat.com>
parent 2894e1d7
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <linux/debugfs.h> #include <linux/debugfs.h>
#include <linux/seq_file.h> #include <linux/seq_file.h>
#include <linux/utsname.h> #include <linux/utsname.h>
#include <linux/ratelimit.h>
#include "super.h" #include "super.h"
#include "mds_client.h" #include "mds_client.h"
...@@ -1048,7 +1049,8 @@ static void cleanup_session_requests(struct ceph_mds_client *mdsc, ...@@ -1048,7 +1049,8 @@ static void cleanup_session_requests(struct ceph_mds_client *mdsc,
req = list_first_entry(&session->s_unsafe, req = list_first_entry(&session->s_unsafe,
struct ceph_mds_request, r_unsafe_item); struct ceph_mds_request, r_unsafe_item);
list_del_init(&req->r_unsafe_item); list_del_init(&req->r_unsafe_item);
pr_info(" dropping unsafe request %llu\n", req->r_tid); pr_warn_ratelimited(" dropping unsafe request %llu\n",
req->r_tid);
__unregister_request(mdsc, req); __unregister_request(mdsc, req);
} }
/* zero r_attempts, so kick_requests() will re-send requests */ /* zero r_attempts, so kick_requests() will re-send requests */
...@@ -1152,7 +1154,8 @@ static int remove_session_caps_cb(struct inode *inode, struct ceph_cap *cap, ...@@ -1152,7 +1154,8 @@ static int remove_session_caps_cb(struct inode *inode, struct ceph_cap *cap,
spin_lock(&mdsc->cap_dirty_lock); spin_lock(&mdsc->cap_dirty_lock);
if (!list_empty(&ci->i_dirty_item)) { if (!list_empty(&ci->i_dirty_item)) {
pr_info(" dropping dirty %s state for %p %lld\n", pr_warn_ratelimited(
" dropping dirty %s state for %p %lld\n",
ceph_cap_string(ci->i_dirty_caps), ceph_cap_string(ci->i_dirty_caps),
inode, ceph_ino(inode)); inode, ceph_ino(inode));
ci->i_dirty_caps = 0; ci->i_dirty_caps = 0;
...@@ -1160,7 +1163,8 @@ static int remove_session_caps_cb(struct inode *inode, struct ceph_cap *cap, ...@@ -1160,7 +1163,8 @@ static int remove_session_caps_cb(struct inode *inode, struct ceph_cap *cap,
drop = 1; drop = 1;
} }
if (!list_empty(&ci->i_flushing_item)) { if (!list_empty(&ci->i_flushing_item)) {
pr_info(" dropping dirty+flushing %s state for %p %lld\n", pr_warn_ratelimited(
" dropping dirty+flushing %s state for %p %lld\n",
ceph_cap_string(ci->i_flushing_caps), ceph_cap_string(ci->i_flushing_caps),
inode, ceph_ino(inode)); inode, ceph_ino(inode));
ci->i_flushing_caps = 0; ci->i_flushing_caps = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment