This series add support for remounting aborted cephfs mount. This feature can be used for recovering from blacklisted. For example: umount -f /ceph; mount -o remount /ceph When aborting cephfs mount, dirty caps, unsafe requests, dirty data file locks are dropped. After remounting, errors of dropping dirty data/metadata are reported/cleared by fsync(2) on corresponding inodes. For file descriptor opened before abort, read works as nornal. write is not allowed if any dirty data was dropped and the error is not cleared by fsync(2). If an inode contains any lost file lock, read and write are not allowed. until all lost file locks are released. Yan, Zheng (8): 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: allow remounting aborted mount ceph: track and report error of async metadata operation ceph: pass filp to ceph_get_caps() ceph: check page writeback error during write ceph: return -EIO if read/write against filp that lost file locks fs/ceph/addr.c | 15 +++--- fs/ceph/caps.c | 88 +++++++++++++++++++++++---------- fs/ceph/file.c | 41 +++++++-------- fs/ceph/inode.c | 2 + fs/ceph/locks.c | 8 ++- fs/ceph/mds_client.c | 56 +++++++++++++++------ fs/ceph/mds_client.h | 6 +-- fs/ceph/super.c | 23 ++++++++- fs/ceph/super.h | 11 +++-- 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 | 8 +++ net/ceph/messenger.c | 5 ++ net/ceph/mon_client.c | 7 +++ net/ceph/osd_client.c | 24 +++++++++ 17 files changed, 221 insertions(+), 78 deletions(-) -- 2.17.2