summaryrefslogtreecommitdiffstats
path: root/fs/ceph/mds_client.h
diff options
context:
space:
mode:
authorYan, Zheng2015-05-19 12:54:40 +0200
committerIlya Dryomov2015-06-25 10:49:29 +0200
commite8a7b8b12b13831467c6158c1e82801e25b5dd98 (patch)
tree7273614f552589c8e9005849102a1835ea92ff8c /fs/ceph/mds_client.h
parentceph: don't pre-allocate space for cap release messages (diff)
downloadkernel-qcow2-linux-e8a7b8b12b13831467c6158c1e82801e25b5dd98.tar.gz
kernel-qcow2-linux-e8a7b8b12b13831467c6158c1e82801e25b5dd98.tar.xz
kernel-qcow2-linux-e8a7b8b12b13831467c6158c1e82801e25b5dd98.zip
ceph: exclude setfilelock requests when calculating oldest tid
setfilelock requests can block for a long time, which can prevent client from advancing its oldest tid. Signed-off-by: Yan, Zheng <zyan@redhat.com>
Diffstat (limited to 'fs/ceph/mds_client.h')
-rw-r--r--fs/ceph/mds_client.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/ceph/mds_client.h b/fs/ceph/mds_client.h
index 294fa23a7df6..2ef799961ebb 100644
--- a/fs/ceph/mds_client.h
+++ b/fs/ceph/mds_client.h
@@ -296,6 +296,8 @@ struct ceph_mds_client {
spinlock_t snap_empty_lock; /* protect snap_empty */
u64 last_tid; /* most recent mds request */
+ u64 oldest_tid; /* oldest incomplete mds request,
+ excluding setfilelock requests */
struct rb_root request_tree; /* pending mds requests */
struct delayed_work delayed_work; /* delayed work */
unsigned long last_renew_caps; /* last time we renewed our caps */