mbox series

[0/8] ceph: remount aborted mount

Message ID 20190617125529.6230-1-zyan@redhat.com (mailing list archive)
Headers show
Series ceph: remount aborted mount | expand

Message

Yan, Zheng June 17, 2019, 12:55 p.m. UTC
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(-)