libceph, rbd, ceph: "blacklist" -> "blocklist"

Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
Ilya Dryomov 2020-09-14 13:39:19 +02:00
parent 2e16929660
commit 0b98acd618
10 changed files with 39 additions and 39 deletions

View file

@ -163,14 +163,14 @@ Mount Options
to the default VFS implementation if this option is used. to the default VFS implementation if this option is used.
recover_session=<no|clean> 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". available modes are "no" and "clean". The default is "no".
* no: never attempt to reconnect when client detects that it has been * 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 * 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. dirty data/metadata, invalidates page caches and writable file handles.
After reconnect, file locks become stale because the MDS loses track 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 of them. If an inode contains any stale file locks, read/write on the

View file

@ -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", rbd_warn(rbd_dev, "breaking header lock owned by %s%llu",
ENTITY_NAME(lockers[0].id.name)); ENTITY_NAME(lockers[0].id.name));
ret = ceph_monc_blacklist_add(&client->monc, ret = ceph_monc_blocklist_add(&client->monc,
&lockers[0].info.addr); &lockers[0].info.addr);
if (ret) { 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); ENTITY_NAME(lockers[0].id.name), ret);
goto out; goto out;
} }
@ -4077,7 +4077,7 @@ static int rbd_try_acquire_lock(struct rbd_device *rbd_dev)
ret = rbd_try_lock(rbd_dev); ret = rbd_try_lock(rbd_dev);
if (ret < 0) { if (ret < 0) {
rbd_warn(rbd_dev, "failed to lock header: %d", ret); rbd_warn(rbd_dev, "failed to lock header: %d", ret);
if (ret == -EBLACKLISTED) if (ret == -EBLOCKLISTED)
goto out; goto out;
ret = 1; /* request lock anyway */ ret = 1; /* request lock anyway */
@ -4613,7 +4613,7 @@ static void rbd_reregister_watch(struct work_struct *work)
ret = __rbd_register_watch(rbd_dev); ret = __rbd_register_watch(rbd_dev);
if (ret) { if (ret) {
rbd_warn(rbd_dev, "failed to reregister watch: %d", 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, queue_delayed_work(rbd_dev->task_wq,
&rbd_dev->watch_dwork, &rbd_dev->watch_dwork,
RBD_RETRY_DELAY); RBD_RETRY_DELAY);

View file

@ -271,8 +271,8 @@ static int ceph_do_readpage(struct file *filp, struct page *page)
if (err < 0) { if (err < 0) {
SetPageError(page); SetPageError(page);
ceph_fscache_readpage_cancel(inode, page); ceph_fscache_readpage_cancel(inode, page);
if (err == -EBLACKLISTED) if (err == -EBLOCKLISTED)
fsc->blacklisted = true; fsc->blocklisted = true;
goto out; goto out;
} }
if (err < PAGE_SIZE) if (err < PAGE_SIZE)
@ -312,8 +312,8 @@ static void finish_read(struct ceph_osd_request *req)
int i; int i;
dout("finish_read %p req %p rc %d bytes %d\n", inode, req, rc, bytes); dout("finish_read %p req %p rc %d bytes %d\n", inode, req, rc, bytes);
if (rc == -EBLACKLISTED) if (rc == -EBLOCKLISTED)
ceph_inode_to_client(inode)->blacklisted = true; ceph_inode_to_client(inode)->blocklisted = true;
/* unlock all pages, zeroing any data we didn't read */ /* unlock all pages, zeroing any data we didn't read */
osd_data = osd_req_op_extent_osd_data(req, 0); 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); end_page_writeback(page);
return err; return err;
} }
if (err == -EBLACKLISTED) if (err == -EBLOCKLISTED)
fsc->blacklisted = true; fsc->blocklisted = true;
dout("writepage setting page/mapping error %d %p\n", dout("writepage setting page/mapping error %d %p\n",
err, page); err, page);
mapping_set_error(&inode->i_data, err); mapping_set_error(&inode->i_data, err);
@ -801,8 +801,8 @@ static void writepages_finish(struct ceph_osd_request *req)
if (rc < 0) { if (rc < 0) {
mapping_set_error(mapping, rc); mapping_set_error(mapping, rc);
ceph_set_error_write(ci); ceph_set_error_write(ci);
if (rc == -EBLACKLISTED) if (rc == -EBLOCKLISTED)
fsc->blacklisted = true; fsc->blocklisted = true;
} else { } else {
ceph_clear_error_write(ci); 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) if (err >= 0 || err == -ENOENT)
have |= POOL_READ; have |= POOL_READ;
else if (err != -EPERM) { else if (err != -EPERM) {
if (err == -EBLACKLISTED) if (err == -EBLOCKLISTED)
fsc->blacklisted = true; fsc->blocklisted = true;
goto out_unlock; goto out_unlock;
} }
if (err2 == 0 || err2 == -EEXIST) if (err2 == 0 || err2 == -EEXIST)
have |= POOL_WRITE; have |= POOL_WRITE;
else if (err2 != -EPERM) { else if (err2 != -EPERM) {
if (err2 == -EBLACKLISTED) if (err2 == -EBLOCKLISTED)
fsc->blacklisted = true; fsc->blocklisted = true;
err = err2; err = err2;
goto out_unlock; goto out_unlock;
} }

View file

@ -933,8 +933,8 @@ static ssize_t ceph_sync_read(struct kiocb *iocb, struct iov_iter *to,
ceph_release_page_vector(pages, num_pages); ceph_release_page_vector(pages, num_pages);
if (ret < 0) { if (ret < 0) {
if (ret == -EBLACKLISTED) if (ret == -EBLOCKLISTED)
fsc->blacklisted = true; fsc->blocklisted = true;
break; break;
} }

View file

@ -3303,7 +3303,7 @@ static void handle_forward(struct ceph_mds_client *mdsc,
} }
static int __decode_session_metadata(void **p, void *end, static int __decode_session_metadata(void **p, void *end,
bool *blacklisted) bool *blocklisted)
{ {
/* map<string,string> */ /* map<string,string> */
u32 n; 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_32_safe(p, end, len, bad);
ceph_decode_need(p, end, len, bad); ceph_decode_need(p, end, len, bad);
if (err_str && strnstr(*p, "blacklisted", len)) if (err_str && strnstr(*p, "blacklisted", len))
*blacklisted = true; *blocklisted = true;
*p += len; *p += len;
} }
return 0; return 0;
@ -3341,7 +3341,7 @@ static void handle_session(struct ceph_mds_session *session,
u32 op; u32 op;
u64 seq, features = 0; u64 seq, features = 0;
int wake = 0; int wake = 0;
bool blacklisted = false; bool blocklisted = false;
/* decode */ /* decode */
ceph_decode_need(&p, end, sizeof(*h), bad); 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) { if (msg_version >= 3) {
u32 len; u32 len;
/* version >= 2, metadata */ /* version >= 2, metadata */
if (__decode_session_metadata(&p, end, &blacklisted) < 0) if (__decode_session_metadata(&p, end, &blocklisted) < 0)
goto bad; goto bad;
/* version >= 3, feature bits */ /* version >= 3, feature bits */
ceph_decode_32_safe(&p, end, len, bad); 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; session->s_state = CEPH_MDS_SESSION_REJECTED;
cleanup_session_requests(mdsc, session); cleanup_session_requests(mdsc, session);
remove_session_caps(session); remove_session_caps(session);
if (blacklisted) if (blocklisted)
mdsc->fsc->blacklisted = true; mdsc->fsc->blocklisted = true;
wake = 2; /* for good measure */ wake = 2; /* for good measure */
break; break;
@ -4367,14 +4367,14 @@ static void maybe_recover_session(struct ceph_mds_client *mdsc)
if (READ_ONCE(fsc->mount_state) != CEPH_MOUNT_MOUNTED) if (READ_ONCE(fsc->mount_state) != CEPH_MOUNT_MOUNTED)
return; return;
if (!READ_ONCE(fsc->blacklisted)) if (!READ_ONCE(fsc->blocklisted))
return; return;
if (fsc->last_auto_reconnect && if (fsc->last_auto_reconnect &&
time_before(jiffies, fsc->last_auto_reconnect + HZ * 60 * 30)) time_before(jiffies, fsc->last_auto_reconnect + HZ * 60 * 30))
return; return;
pr_info("auto reconnect after blacklisted\n"); pr_info("auto reconnect after blocklisted\n");
fsc->last_auto_reconnect = jiffies; fsc->last_auto_reconnect = jiffies;
ceph_force_reconnect(fsc->sb); ceph_force_reconnect(fsc->sb);
} }

View file

@ -1241,13 +1241,13 @@ int ceph_force_reconnect(struct super_block *sb)
* see remove_session_caps_cb() */ * see remove_session_caps_cb() */
flush_workqueue(fsc->inode_wq); 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 */ * all mon/osd connections */
ceph_reset_client_addr(fsc->client); ceph_reset_client_addr(fsc->client);
ceph_osdc_clear_abort_err(&fsc->client->osdc); ceph_osdc_clear_abort_err(&fsc->client->osdc);
fsc->blacklisted = false; fsc->blocklisted = false;
fsc->mount_state = CEPH_MOUNT_MOUNTED; fsc->mount_state = CEPH_MOUNT_MOUNTED;
if (sb->s_root) { if (sb->s_root) {

View file

@ -32,7 +32,7 @@
#define CEPH_BLOCK_SHIFT 22 /* 4 MB */ #define CEPH_BLOCK_SHIFT 22 /* 4 MB */
#define CEPH_BLOCK (1 << CEPH_BLOCK_SHIFT) #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_DIRSTAT (1<<4) /* `cat dirname` for stats */
#define CEPH_MOUNT_OPT_RBYTES (1<<5) /* dir st_bytes = rbytes */ #define CEPH_MOUNT_OPT_RBYTES (1<<5) /* dir st_bytes = rbytes */
#define CEPH_MOUNT_OPT_NOASYNCREADDIR (1<<7) /* no dcache readdir */ #define CEPH_MOUNT_OPT_NOASYNCREADDIR (1<<7) /* no dcache readdir */
@ -109,7 +109,7 @@ struct ceph_fs_client {
unsigned long mount_state; unsigned long mount_state;
unsigned long last_auto_reconnect; unsigned long last_auto_reconnect;
bool blacklisted; bool blocklisted;
bool have_copy_from2; bool have_copy_from2;

View file

@ -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, int ceph_monc_get_version_async(struct ceph_mon_client *monc, const char *what,
ceph_monc_callback_t cb, u64 private_data); 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); struct ceph_entity_addr *client_addr);
extern int ceph_monc_open_session(struct ceph_mon_client *monc); extern int ceph_monc_open_session(struct ceph_mon_client *monc);

View file

@ -424,7 +424,7 @@ enum {
}; };
#define EOLDSNAPC ERESTART /* ORDERSNAP flag set; writer has old snapc*/ #define EOLDSNAPC ERESTART /* ORDERSNAP flag set; writer has old snapc*/
#define EBLACKLISTED ESHUTDOWN /* blacklisted */ #define EBLOCKLISTED ESHUTDOWN /* blocklisted */
/* xattr comparison */ /* xattr comparison */
enum { enum {

View file

@ -896,7 +896,7 @@ static void handle_command_ack(struct ceph_mon_client *monc,
ceph_msg_dump(msg); 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_entity_addr *client_addr)
{ {
struct ceph_mon_generic_request *req; 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); ret = wait_generic_request(req);
if (!ret) 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 * 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. * this client.
*/ */
ret = ceph_wait_for_latest_osdmap(monc->client, 0); 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); put_generic_request(req);
return ret; return ret;
} }
EXPORT_SYMBOL(ceph_monc_blacklist_add); EXPORT_SYMBOL(ceph_monc_blocklist_add);
/* /*
* Resend pending generic requests. * Resend pending generic requests.