This series add support for auto reconnect after blacklisted. Auto reconnect is controlled by recover_session=<clean|no> mount option. Clean mode is enabled by default. In this mode, client drops dirty date and dirty metadata, All writable file handles are invalidated. Read-only file handles continue to work and caches are dropped if necessary. If an inode contains any lost file lock, read and write are not allowed. until all lost file locks are released. Yan, Zheng (9): libceph: add function that reset client's entity addr libceph: add function that clears osd client's abort_err ceph: allow closing session in restarting/reconnect state ceph: track and report error of async metadata operation ceph: pass filp to ceph_get_caps() ceph: return -EIO if read/write against filp that lost file locks ceph: add 'force_reconnect' option for remount ceph: invalidate all write mode filp after reconnect ceph: auto reconnect after blacklisted fs/ceph/addr.c | 30 +++++++---- fs/ceph/caps.c | 84 ++++++++++++++++++++---------- fs/ceph/file.c | 50 ++++++++++-------- fs/ceph/inode.c | 2 + fs/ceph/locks.c | 8 ++- fs/ceph/mds_client.c | 92 ++++++++++++++++++++++++++------- fs/ceph/mds_client.h | 6 +-- fs/ceph/super.c | 91 ++++++++++++++++++++++++++++++-- fs/ceph/super.h | 23 +++++++-- include/linux/ceph/libceph.h | 1 + include/linux/ceph/messenger.h | 1 + include/linux/ceph/mon_client.h | 1 + include/linux/ceph/osd_client.h | 2 + net/ceph/ceph_common.c | 38 +++++++++----- net/ceph/messenger.c | 5 ++ net/ceph/mon_client.c | 7 +++ net/ceph/osd_client.c | 24 +++++++++ 17 files changed, 365 insertions(+), 100 deletions(-) -- 2.20.1