From: Xiubo Li <xiubli@redhat.com>
To: Ilya Dryomov <idryomov@gmail.com>, ceph-devel@vger.kernel.org
Subject: Re: [PATCH 1/3] libceph, rbd, ceph: "blacklist" -> "blocklist"
Date: Wed, 16 Sep 2020 10:16:38 +0800 [thread overview]
Message-ID: <4bef218f-03b8-b1cf-57ef-e2d1ddf79d45@redhat.com> (raw)
In-Reply-To: <20200915203323.4688-2-idryomov@gmail.com>
On 2020/9/16 4:33, Ilya Dryomov wrote:
> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
> ---
> Documentation/filesystems/ceph.rst | 6 +++---
> drivers/block/rbd.c | 8 ++++----
> fs/ceph/addr.c | 24 ++++++++++++------------
> fs/ceph/file.c | 4 ++--
> fs/ceph/mds_client.c | 16 ++++++++--------
> fs/ceph/super.c | 4 ++--
> fs/ceph/super.h | 4 ++--
> include/linux/ceph/mon_client.h | 2 +-
> include/linux/ceph/rados.h | 2 +-
> net/ceph/mon_client.c | 8 ++++----
> 10 files changed, 39 insertions(+), 39 deletions(-)
>
> diff --git a/Documentation/filesystems/ceph.rst b/Documentation/filesystems/ceph.rst
> index 0aa70750df0f..7d2ef4e27273 100644
> --- a/Documentation/filesystems/ceph.rst
> +++ b/Documentation/filesystems/ceph.rst
> @@ -163,14 +163,14 @@ Mount Options
> to the default VFS implementation if this option is used.
>
> recover_session=<no|clean>
> - Set auto reconnect mode in the case where the client is blacklisted. The
> + Set auto reconnect mode in the case where the client is blocklisted. The
> available modes are "no" and "clean". The default is "no".
>
> * no: never attempt to reconnect when client detects that it has been
> - blacklisted. Operations will generally fail after being blacklisted.
> + blocklisted. Operations will generally fail after being blocklisted.
>
> * clean: client reconnects to the ceph cluster automatically when it
> - detects that it has been blacklisted. During reconnect, client drops
> + detects that it has been blocklisted. During reconnect, client drops
> dirty data/metadata, invalidates page caches and writable file handles.
> After reconnect, file locks become stale because the MDS loses track
> of them. If an inode contains any stale file locks, read/write on the
> diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
> index 180587ce606c..d21fecfe3eba 100644
> --- a/drivers/block/rbd.c
> +++ b/drivers/block/rbd.c
> @@ -4010,10 +4010,10 @@ static int rbd_try_lock(struct rbd_device *rbd_dev)
> rbd_warn(rbd_dev, "breaking header lock owned by %s%llu",
> ENTITY_NAME(lockers[0].id.name));
>
> - ret = ceph_monc_blacklist_add(&client->monc,
> + ret = ceph_monc_blocklist_add(&client->monc,
> &lockers[0].info.addr);
> if (ret) {
> - rbd_warn(rbd_dev, "blacklist of %s%llu failed: %d",
> + rbd_warn(rbd_dev, "blocklist of %s%llu failed: %d",
> ENTITY_NAME(lockers[0].id.name), ret);
> goto out;
> }
> @@ -4077,7 +4077,7 @@ static int rbd_try_acquire_lock(struct rbd_device *rbd_dev)
> ret = rbd_try_lock(rbd_dev);
> if (ret < 0) {
> rbd_warn(rbd_dev, "failed to lock header: %d", ret);
> - if (ret == -EBLACKLISTED)
> + if (ret == -EBLOCKLISTED)
> goto out;
>
> ret = 1; /* request lock anyway */
> @@ -4613,7 +4613,7 @@ static void rbd_reregister_watch(struct work_struct *work)
> ret = __rbd_register_watch(rbd_dev);
> if (ret) {
> rbd_warn(rbd_dev, "failed to reregister watch: %d", ret);
> - if (ret != -EBLACKLISTED && ret != -ENOENT) {
> + if (ret != -EBLOCKLISTED && ret != -ENOENT) {
> queue_delayed_work(rbd_dev->task_wq,
> &rbd_dev->watch_dwork,
> RBD_RETRY_DELAY);
> diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c
> index b03dbaa9d345..7b1f3dad576f 100644
> --- a/fs/ceph/addr.c
> +++ b/fs/ceph/addr.c
> @@ -271,8 +271,8 @@ static int ceph_do_readpage(struct file *filp, struct page *page)
> if (err < 0) {
> SetPageError(page);
> ceph_fscache_readpage_cancel(inode, page);
> - if (err == -EBLACKLISTED)
> - fsc->blacklisted = true;
> + if (err == -EBLOCKLISTED)
> + fsc->blocklisted = true;
> goto out;
> }
> if (err < PAGE_SIZE)
> @@ -312,8 +312,8 @@ static void finish_read(struct ceph_osd_request *req)
> int i;
>
> dout("finish_read %p req %p rc %d bytes %d\n", inode, req, rc, bytes);
> - if (rc == -EBLACKLISTED)
> - ceph_inode_to_client(inode)->blacklisted = true;
> + if (rc == -EBLOCKLISTED)
> + ceph_inode_to_client(inode)->blocklisted = true;
>
> /* unlock all pages, zeroing any data we didn't read */
> osd_data = osd_req_op_extent_osd_data(req, 0);
> @@ -737,8 +737,8 @@ static int writepage_nounlock(struct page *page, struct writeback_control *wbc)
> end_page_writeback(page);
> return err;
> }
> - if (err == -EBLACKLISTED)
> - fsc->blacklisted = true;
> + if (err == -EBLOCKLISTED)
> + fsc->blocklisted = true;
> dout("writepage setting page/mapping error %d %p\n",
> err, page);
> mapping_set_error(&inode->i_data, err);
> @@ -801,8 +801,8 @@ static void writepages_finish(struct ceph_osd_request *req)
> if (rc < 0) {
> mapping_set_error(mapping, rc);
> ceph_set_error_write(ci);
> - if (rc == -EBLACKLISTED)
> - fsc->blacklisted = true;
> + if (rc == -EBLOCKLISTED)
> + fsc->blocklisted = true;
> } else {
> ceph_clear_error_write(ci);
> }
> @@ -2038,16 +2038,16 @@ static int __ceph_pool_perm_get(struct ceph_inode_info *ci,
> if (err >= 0 || err == -ENOENT)
> have |= POOL_READ;
> else if (err != -EPERM) {
> - if (err == -EBLACKLISTED)
> - fsc->blacklisted = true;
> + if (err == -EBLOCKLISTED)
> + fsc->blocklisted = true;
> goto out_unlock;
> }
>
> if (err2 == 0 || err2 == -EEXIST)
> have |= POOL_WRITE;
> else if (err2 != -EPERM) {
> - if (err2 == -EBLACKLISTED)
> - fsc->blacklisted = true;
> + if (err2 == -EBLOCKLISTED)
> + fsc->blocklisted = true;
> err = err2;
> goto out_unlock;
> }
> diff --git a/fs/ceph/file.c b/fs/ceph/file.c
> index 762a280b7037..209535d5b8d3 100644
> --- a/fs/ceph/file.c
> +++ b/fs/ceph/file.c
> @@ -933,8 +933,8 @@ static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *to,
> ceph_release_page_vector(pages, num_pages);
>
> if (ret < 0) {
> - if (ret == -EBLACKLISTED)
> - fsc->blacklisted = true;
> + if (ret == -EBLOCKLISTED)
> + fsc->blocklisted = true;
> break;
> }
>
> diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
> index 76d8d9495d1d..bb2d938a17ac 100644
> --- a/fs/ceph/mds_client.c
> +++ b/fs/ceph/mds_client.c
> @@ -3303,7 +3303,7 @@ static void handle_forward(struct ceph_mds_client *mdsc,
> }
>
> static int __decode_session_metadata(void **p, void *end,
> - bool *blacklisted)
> + bool *blocklisted)
> {
> /* map<string,string> */
> u32 n;
> @@ -3318,7 +3318,7 @@ static int __decode_session_metadata(void **p, void *end,
> ceph_decode_32_safe(p, end, len, bad);
> ceph_decode_need(p, end, len, bad);
> if (err_str && strnstr(*p, "blacklisted", len))
BTW, for new MDS shouldn't we check "blocklisted" first ? And then
"blacklisted" ?
https://github.com/ceph/ceph/blob/master/src/mds/Server.cc#L617
BRs
> - *blacklisted = true;
> + *blocklisted = true;
> *p += len;
> }
> return 0;
> @@ -3341,7 +3341,7 @@ static void handle_session(struct ceph_mds_session *session,
> u32 op;
> u64 seq, features = 0;
> int wake = 0;
> - bool blacklisted = false;
> + bool blocklisted = false;
>
> /* decode */
> ceph_decode_need(&p, end, sizeof(*h), bad);
> @@ -3354,7 +3354,7 @@ static void handle_session(struct ceph_mds_session *session,
> if (msg_version >= 3) {
> u32 len;
> /* version >= 2, metadata */
> - if (__decode_session_metadata(&p, end, &blacklisted) < 0)
> + if (__decode_session_metadata(&p, end, &blocklisted) < 0)
> goto bad;
> /* version >= 3, feature bits */
> ceph_decode_32_safe(&p, end, len, bad);
> @@ -3445,8 +3445,8 @@ static void handle_session(struct ceph_mds_session *session,
> session->s_state = CEPH_MDS_SESSION_REJECTED;
> cleanup_session_requests(mdsc, session);
> remove_session_caps(session);
> - if (blacklisted)
> - mdsc->fsc->blacklisted = true;
> + if (blocklisted)
> + mdsc->fsc->blocklisted = true;
> wake = 2; /* for good measure */
> break;
>
> @@ -4367,14 +4367,14 @@ static void maybe_recover_session(struct ceph_mds_client *mdsc)
> if (READ_ONCE(fsc->mount_state) != CEPH_MOUNT_MOUNTED)
> return;
>
> - if (!READ_ONCE(fsc->blacklisted))
> + if (!READ_ONCE(fsc->blocklisted))
> return;
>
> if (fsc->last_auto_reconnect &&
> time_before(jiffies, fsc->last_auto_reconnect + HZ * 60 * 30))
> return;
>
> - pr_info("auto reconnect after blacklisted\n");
> + pr_info("auto reconnect after blocklisted\n");
> fsc->last_auto_reconnect = jiffies;
> ceph_force_reconnect(fsc->sb);
> }
> diff --git a/fs/ceph/super.c b/fs/ceph/super.c
> index b3fc9bb61afc..2516304379d3 100644
> --- a/fs/ceph/super.c
> +++ b/fs/ceph/super.c
> @@ -1241,13 +1241,13 @@ int ceph_force_reconnect(struct super_block *sb)
> * see remove_session_caps_cb() */
> flush_workqueue(fsc->inode_wq);
>
> - /* In case that we were blacklisted. This also reset
> + /* In case that we were blocklisted. This also reset
> * all mon/osd connections */
> ceph_reset_client_addr(fsc->client);
>
> ceph_osdc_clear_abort_err(&fsc->client->osdc);
>
> - fsc->blacklisted = false;
> + fsc->blocklisted = false;
> fsc->mount_state = CEPH_MOUNT_MOUNTED;
>
> if (sb->s_root) {
> diff --git a/fs/ceph/super.h b/fs/ceph/super.h
> index 483a52d281cd..582694899130 100644
> --- a/fs/ceph/super.h
> +++ b/fs/ceph/super.h
> @@ -32,7 +32,7 @@
> #define CEPH_BLOCK_SHIFT 22 /* 4 MB */
> #define CEPH_BLOCK (1 << CEPH_BLOCK_SHIFT)
>
> -#define CEPH_MOUNT_OPT_CLEANRECOVER (1<<1) /* auto reonnect (clean mode) after blacklisted */
> +#define CEPH_MOUNT_OPT_CLEANRECOVER (1<<1) /* auto reonnect (clean mode) after blocklisted */
> #define CEPH_MOUNT_OPT_DIRSTAT (1<<4) /* `cat dirname` for stats */
> #define CEPH_MOUNT_OPT_RBYTES (1<<5) /* dir st_bytes = rbytes */
> #define CEPH_MOUNT_OPT_NOASYNCREADDIR (1<<7) /* no dcache readdir */
> @@ -109,7 +109,7 @@ struct ceph_fs_client {
> unsigned long mount_state;
>
> unsigned long last_auto_reconnect;
> - bool blacklisted;
> + bool blocklisted;
>
> bool have_copy_from2;
>
> diff --git a/include/linux/ceph/mon_client.h b/include/linux/ceph/mon_client.h
> index ce4ffeb384d7..b658961156a0 100644
> --- a/include/linux/ceph/mon_client.h
> +++ b/include/linux/ceph/mon_client.h
> @@ -142,7 +142,7 @@ int ceph_monc_get_version(struct ceph_mon_client *monc, const char *what,
> int ceph_monc_get_version_async(struct ceph_mon_client *monc, const char *what,
> ceph_monc_callback_t cb, u64 private_data);
>
> -int ceph_monc_blacklist_add(struct ceph_mon_client *monc,
> +int ceph_monc_blocklist_add(struct ceph_mon_client *monc,
> struct ceph_entity_addr *client_addr);
>
> extern int ceph_monc_open_session(struct ceph_mon_client *monc);
> diff --git a/include/linux/ceph/rados.h b/include/linux/ceph/rados.h
> index 3a518fd0eaad..43a7a1573b51 100644
> --- a/include/linux/ceph/rados.h
> +++ b/include/linux/ceph/rados.h
> @@ -424,7 +424,7 @@ enum {
> };
>
> #define EOLDSNAPC ERESTART /* ORDERSNAP flag set; writer has old snapc*/
> -#define EBLACKLISTED ESHUTDOWN /* blacklisted */
> +#define EBLOCKLISTED ESHUTDOWN /* blocklisted */
>
> /* xattr comparison */
> enum {
> diff --git a/net/ceph/mon_client.c b/net/ceph/mon_client.c
> index d633a0aeaa55..efcdde471278 100644
> --- a/net/ceph/mon_client.c
> +++ b/net/ceph/mon_client.c
> @@ -896,7 +896,7 @@ static void handle_command_ack(struct ceph_mon_client *monc,
> ceph_msg_dump(msg);
> }
>
> -int ceph_monc_blacklist_add(struct ceph_mon_client *monc,
> +int ceph_monc_blocklist_add(struct ceph_mon_client *monc,
> struct ceph_entity_addr *client_addr)
> {
> struct ceph_mon_generic_request *req;
> @@ -936,9 +936,9 @@ int ceph_monc_blacklist_add(struct ceph_mon_client *monc,
> ret = wait_generic_request(req);
> if (!ret)
> /*
> - * Make sure we have the osdmap that includes the blacklist
> + * Make sure we have the osdmap that includes the blocklist
> * entry. This is needed to ensure that the OSDs pick up the
> - * new blacklist before processing any future requests from
> + * new blocklist before processing any future requests from
> * this client.
> */
> ret = ceph_wait_for_latest_osdmap(monc->client, 0);
> @@ -947,7 +947,7 @@ int ceph_monc_blacklist_add(struct ceph_mon_client *monc,
> put_generic_request(req);
> return ret;
> }
> -EXPORT_SYMBOL(ceph_monc_blacklist_add);
> +EXPORT_SYMBOL(ceph_monc_blocklist_add);
>
> /*
> * Resend pending generic requests.
next prev parent reply other threads:[~2020-09-16 2:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-15 20:33 [PATCH 0/3] libceph, rbd, ceph: "blacklist" -> "blocklist" Ilya Dryomov
2020-09-15 20:33 ` [PATCH 1/3] " Ilya Dryomov
2020-09-16 2:16 ` Xiubo Li [this message]
2020-09-16 7:15 ` Ilya Dryomov
2020-09-16 7:25 ` Xiubo Li
2020-09-15 20:33 ` [PATCH 2/3] libceph: switch to the new "osd blocklist add" command Ilya Dryomov
2020-09-15 20:33 ` [PATCH 3/3] ceph: add a note explaining session reject error string Ilya Dryomov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4bef218f-03b8-b1cf-57ef-e2d1ddf79d45@redhat.com \
--to=xiubli@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=idryomov@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).