2011/10/13 Liu Yuan <namei.unix at gmail.com> > > On 10/12/2011 11:55 PM, Andychen wrote: >> >> From: Andy chen<sanjie.cyg at taobao.com> >> >> >> Signed-off-by: Andychen<sanjie.cyg at taobao.com> >> --- >> include/logger.h | 6 ++-- >> lib/logger.c | 4 +- >> sheep/cluster/corosync.c | 10 ++++---- >> sheep/group.c | 47 +++++++++++++++++++++++---------------------- >> sheep/sheep.c | 4 +- >> sheep/store.c | 16 +++++++------- >> sheep/vdi.c | 16 +++++++------- >> 7 files changed, 52 insertions(+), 51 deletions(-) >> >> diff --git a/include/logger.h b/include/logger.h >> index cdd7642..461f2d9 100644 >> --- a/include/logger.h >> +++ b/include/logger.h >> @@ -64,14 +64,14 @@ extern void log_write(int prio, const char *func, int line, const char *fmt, ... >> #define SDOG_INFO LOG_INFO >> #define SDOG_DEBUG LOG_DEBUG >> >> -#define vprintf(fmt, args...) \ >> +#define vprintf(level, fmt, args...) \ >> do { \ >> - log_write(LOG_INFO, __func__, __LINE__, fmt, ##args); \ >> + log_write(level, __func__, __LINE__, fmt, ##args); \ >> } while (0) >> >> #define panic(fmt, args...) \ >> ({ \ >> - vprintf(SDOG_EMERG fmt, ##args); \ >> + vprintf(SDOG_EMERG, fmt, ##args); \ >> abort(); \ >> }) >> >> diff --git a/lib/logger.c b/lib/logger.c >> index 688c9b8..9cfc746 100644 >> --- a/lib/logger.c >> +++ b/lib/logger.c >> @@ -364,7 +364,7 @@ static void log_flush(void) >> >> static void log_sigsegv(void) >> { >> - vprintf(SDOG_ERR "sheep logger exits abnormally, pid:%d\n", getpid()); >> + vprintf(SDOG_ERR, "sheep logger exits abnormally, pid:%d\n", getpid()); >> log_flush(); >> closelog(); >> free_logarea(); >> @@ -456,7 +456,7 @@ void log_close(void) >> la->active = 0; >> waitpid(pid, NULL, 0); >> >> - vprintf(SDOG_WARNING "sheep logger stopped, pid:%d\n", pid); >> + vprintf(SDOG_WARNING, "sheep logger stopped, pid:%d\n", pid); >> log_flush(); >> closelog(); >> free_logarea(); >> diff --git a/sheep/cluster/corosync.c b/sheep/cluster/corosync.c >> index 002e06f..e99238a 100644 >> --- a/sheep/cluster/corosync.c >> +++ b/sheep/cluster/corosync.c >> @@ -33,12 +33,12 @@ static int nodeid_to_addr(uint32_t nodeid, uint8_t *addr) >> >> ret = corosync_cfg_get_node_addrs(cfg_handle, nodeid, 1,&nr,&caddr); >> if (ret != CS_OK) { >> - vprintf(SDOG_ERR "failed to get addr %d\n", ret); >> + vprintf(SDOG_ERR, "failed to get addr %d\n", ret); >> return -1; >> } >> >> if (!nr) { >> - vprintf(SDOG_ERR "we got no address\n"); >> + vprintf(SDOG_ERR, "we got no address\n"); >> return -1; >> } >> >> @@ -50,7 +50,7 @@ static int nodeid_to_addr(uint32_t nodeid, uint8_t *addr) >> memset(addr, 0, 16); >> memcpy(addr + 12, saddr, 4); >> } else { >> - vprintf(SDOG_ERR "unknown protocol %d\n", ss->ss_family); >> + vprintf(SDOG_ERR, "unknown protocol %d\n", ss->ss_family); >> return -1; >> } >> >> @@ -150,13 +150,13 @@ static int corosync_init(struct cdrv_handlers *handlers, struct sheepid *myid) >> >> ret = corosync_cfg_initialize(&cfg_handle, NULL); >> if (ret != CS_OK) { >> - vprintf(SDOG_ERR "failed to initiazize cfg %d\n", ret); >> + vprintf(SDOG_ERR, "failed to initiazize cfg %d\n", ret); >> return -1; >> } >> >> ret = corosync_cfg_local_get(cfg_handle,&nodeid); >> if (ret != CS_OK) { >> - vprintf(SDOG_ERR "failed to get nodeid %d\n", ret); >> + vprintf(SDOG_ERR, "failed to get nodeid %d\n", ret); >> return -1; >> } >> >> diff --git a/sheep/group.c b/sheep/group.c >> index f6743f5..eb64207 100644 >> --- a/sheep/group.c >> +++ b/sheep/group.c >> @@ -690,12 +690,12 @@ static int get_vdi_bitmap_from(struct sheepdog_node_list_entry *node) >> >> fd = connect_to(host, node->port); >> if (fd< 0) { >> - vprintf(SDOG_ERR "can't get the vdi bitmap %s, %m\n", host); >> + vprintf(SDOG_ERR, "can't get the vdi bitmap %s, %m\n", host); >> ret = -SD_RES_EIO; >> goto out; >> } >> >> - vprintf(SDOG_ERR "get the vdi bitmap from %s\n", host); >> + vprintf(SDOG_ERR, "get the vdi bitmap from %s\n", host); >> >> memset(&hdr, 0, sizeof(hdr)); >> hdr.opcode = SD_OP_READ_VDIS; >> @@ -710,7 +710,7 @@ static int get_vdi_bitmap_from(struct sheepdog_node_list_entry *node) >> close(fd); >> >> if (ret || rsp->result != SD_RES_SUCCESS) { >> - vprintf(SDOG_ERR "can't get the vdi bitmap %d %d\n", ret, >> + vprintf(SDOG_ERR, "can't get the vdi bitmap %d %d\n", ret, >> rsp->result); >> goto out; >> } >> @@ -806,7 +806,7 @@ static void update_cluster_info(struct join_message *msg) >> * the JOIN response however it has gone. >> */ >> if (ret) >> - vprintf(SDOG_INFO "%s has gone\n", >> + vprintf(SDOG_INFO, "%s has gone\n", >> sheepid_to_str(&msg->nodes[i].sheepid)); >> } >> >> @@ -825,7 +825,7 @@ join_finished: >> * host from msg on cpg_node_list. >> */ >> if (ret) >> - vprintf(SDOG_ERR "%s has gone\n", >> + vprintf(SDOG_ERR, "%s has gone\n", >> sheepid_to_str(&msg->header.sheepid)); >> >> if (msg->cluster_status == SD_STATUS_OK) { >> @@ -927,7 +927,7 @@ static void vdi_op_done(struct vdi_op_message *msg) >> case SD_OP_NEW_VDI: >> { >> unsigned long nr = rsp->vdi_id; >> - vprintf(SDOG_INFO "done %d %ld\n", ret, nr); >> + vprintf(SDOG_INFO, "done %d %ld\n", ret, nr); >> set_bit(nr, sys->vdi_inuse); >> break; >> } >> @@ -1208,7 +1208,7 @@ static void sd_notify_handler(struct sheepid *sender, void *msg, size_t msg_len) >> cevent =&w->cev; >> cevent->ctype = CPG_EVENT_NOTIFY; >> >> - vprintf(SDOG_DEBUG "allow new deliver, %p\n", cevent); >> + vprintf(SDOG_DEBUG, "allow new deliver, %p\n", cevent); >> >> w->msg = zalloc(msg_len); >> if (!w->msg) >> @@ -1349,7 +1349,7 @@ static void send_join_request(struct sheepid *id) >> >> sys->cdrv->notify(&msg, msg.header.msg_length); >> >> - vprintf(SDOG_INFO "%s\n", sheepid_to_str(&sys->this_sheepid)); >> + vprintf(SDOG_INFO, "%s\n", sheepid_to_str(&sys->this_sheepid)); >> } >> >> static void __sd_join_done(struct cpg_event *cevent) >> @@ -1383,7 +1383,7 @@ static void __sd_join_done(struct cpg_event *cevent) >> * becomes the master without sending JOIN. >> */ >> >> - vprintf(SDOG_DEBUG "%s\n", sheepid_to_str(&sys->this_sheepid)); >> + vprintf(SDOG_DEBUG, "%s\n", sheepid_to_str(&sys->this_sheepid)); >> >> memset(&msg, 0, sizeof(msg)); >> >> @@ -1459,7 +1459,7 @@ static void cpg_event_fn(struct work *work, int idx) >> { >> struct cpg_event *cevent = sys->cur_cevent; >> >> - vprintf(SDOG_DEBUG "%p, %d %lx\n", cevent, cevent->ctype, >> + vprintf(SDOG_DEBUG, "%p, %d %lx\n", cevent, cevent->ctype, >> sys->cpg_event_work_flags); >> >> /* >> @@ -1476,15 +1476,15 @@ static void cpg_event_fn(struct work *work, int idx) >> case CPG_EVENT_NOTIFY: >> { >> struct work_notify *w = container_of(cevent, struct work_notify, cev); >> - vprintf(SDOG_DEBUG "%d\n", w->msg->state); >> + vprintf(SDOG_DEBUG, "%d\n", w->msg->state); >> __sd_notify(cevent); >> break; >> } >> case CPG_EVENT_REQUEST: >> - vprintf(SDOG_ERR "should not happen\n"); >> + vprintf(SDOG_ERR, "should not happen\n"); >> break; >> default: >> - vprintf(SDOG_ERR "unknown event %d\n", cevent->ctype); >> + vprintf(SDOG_ERR, "unknown event %d\n", cevent->ctype); >> } >> } >> >> @@ -1493,12 +1493,12 @@ static void cpg_event_done(struct work *work, int idx) >> struct cpg_event *cevent; >> >> if (!sys->cur_cevent) >> - vprintf(SDOG_ERR "bug\n"); >> + vprintf(SDOG_ERR, "bug\n"); >> >> cevent = sys->cur_cevent; >> sys->cur_cevent = NULL; >> >> - vprintf(SDOG_DEBUG "%p\n", cevent); >> + vprintf(SDOG_DEBUG, "%p\n", cevent); >> >> if (cpg_event_suspended()) >> goto out; >> @@ -1535,7 +1535,7 @@ static void cpg_event_done(struct work *work, int idx) >> container_of(f_cevent, struct work_notify, cev); >> if (f_cevent->ctype == CPG_EVENT_NOTIFY&& >> fw->msg->state == DM_FIN) { >> - vprintf("already got fin %p\n", >> + vprintf(SDOG_INFO, "already got fin %p\n", >> f_cevent); >> >> list_del(&f_cevent->cpg_event_list); >> @@ -1553,13 +1553,14 @@ static void cpg_event_done(struct work *work, int idx) >> break; >> } >> case CPG_EVENT_REQUEST: >> - vprintf(SDOG_ERR "should not happen\n"); >> + vprintf(SDOG_ERR, "should not happen\n"); >> + break; >> default: >> - vprintf(SDOG_ERR "unknown event %d\n", cevent->ctype); >> + vprintf(SDOG_ERR, "unknown event %d\n", cevent->ctype); >> } >> >> out: >> - vprintf(SDOG_DEBUG "free %p\n", cevent); >> + vprintf(SDOG_DEBUG, "free %p\n", cevent); >> cpg_event_free(cevent); >> cpg_event_clear_running(); >> >> @@ -1645,12 +1646,12 @@ void start_cpg_event_work(void) >> int retry; >> >> if (list_empty(&sys->cpg_event_siblings)) >> - vprintf(SDOG_ERR "bug\n"); >> + vprintf(SDOG_ERR, "bug\n"); >> >> cevent = list_first_entry(&sys->cpg_event_siblings, >> struct cpg_event, cpg_event_list); >> >> - vprintf(SDOG_DEBUG "%lx %u\n", sys->cpg_event_work_flags, >> + vprintf(SDOG_DEBUG, "%lx %u\n", sys->cpg_event_work_flags, >> cevent->ctype); >> >> /* >> @@ -1817,7 +1818,7 @@ static void sd_join_handler(struct sheepid *joined, struct sheepid *members, >> cevent->ctype = CPG_EVENT_JOIN; >> >> >> - vprintf(SDOG_DEBUG "allow new confchg, %p\n", cevent); >> + vprintf(SDOG_DEBUG, "allow new confchg, %p\n", cevent); >> >> size = sizeof(struct sheepid) * nr_members; >> w->member_list = zalloc(size); >> @@ -1863,7 +1864,7 @@ static void sd_leave_handler(struct sheepid *left, struct sheepid *members, >> cevent->ctype = CPG_EVENT_LEAVE; >> >> >> - vprintf(SDOG_DEBUG "allow new confchg, %p\n", cevent); >> + vprintf(SDOG_DEBUG, "allow new confchg, %p\n", cevent); >> >> size = sizeof(struct sheepid) * nr_members; >> w->member_list = zalloc(size); >> diff --git a/sheep/sheep.c b/sheep/sheep.c >> index d6467dc..27859ca 100644 >> --- a/sheep/sheep.c >> +++ b/sheep/sheep.c >> @@ -210,12 +210,12 @@ int main(int argc, char **argv) >> exit(1); >> } >> >> - vprintf(SDOG_NOTICE "Sheepdog daemon (version %s) started\n", PACKAGE_VERSION); >> + vprintf(SDOG_NOTICE, "Sheepdog daemon (version %s) started\n", PACKAGE_VERSION); >> >> while (sys->status != SD_STATUS_SHUTDOWN || sys->nr_outstanding_reqs != 0) >> event_loop(-1); >> >> - vprintf(SDOG_INFO "shutdown\n"); >> + vprintf(SDOG_INFO, "shutdown\n"); >> >> log_close(); >> >> diff --git a/sheep/store.c b/sheep/store.c >> index 12e54d9..abaab9f 100644 >> --- a/sheep/store.c >> +++ b/sheep/store.c >> @@ -893,7 +893,7 @@ int epoch_log_read_remote(uint32_t epoch, char *buf, int len) >> addr_to_str(host, sizeof(host), nodes[i].addr, 0); >> fd = connect_to(host, nodes[i].port); >> if (fd< 0) { >> - vprintf(SDOG_ERR "can't connect to %s, %m\n", host); >> + vprintf(SDOG_ERR, "can't connect to %s, %m\n", host); >> continue; >> } >> >> @@ -944,7 +944,7 @@ int get_latest_epoch(void) >> >> dir = opendir(epoch_path); >> if (!dir) { >> - vprintf(SDOG_EMERG "failed to get the latest epoch, %m\n"); >> + vprintf(SDOG_EMERG, "failed to get the latest epoch, %m\n"); >> abort(); >> } >> >> @@ -1952,14 +1952,14 @@ static int init_epoch_path(const char *base_path) >> for (epoch = 1; epoch<= latest_epoch; epoch++) { >> snprintf(path, sizeof(path), "%s/%08u", obj_path, epoch); >> >> - vprintf(SDOG_INFO "found the obj dir, %s\n", path); >> + vprintf(SDOG_INFO, "found the obj dir, %s\n", path); >> >> dir = opendir(path); >> if (!dir) { >> if (errno == ENOENT) >> continue; >> >> - vprintf(SDOG_ERR "failed to open the epoch dir, %m\n"); >> + vprintf(SDOG_ERR, "failed to open the epoch dir, %m\n"); >> return SD_RES_EIO; >> } >> >> @@ -1973,7 +1973,7 @@ static int init_epoch_path(const char *base_path) >> if (!is_vdi_obj(oid)) >> continue; >> >> - vprintf(SDOG_DEBUG "found the vdi obj, %" PRIx64 "\n", oid); >> + vprintf(SDOG_DEBUG, "found the vdi obj, %" PRIx64 "\n", oid); >> >> set_bit(oid_to_vid(oid), sys->vdi_inuse); >> } >> @@ -2280,7 +2280,7 @@ int jrnl_recover(void) >> if (!dir) >> return -1; >> >> - vprintf(SDOG_NOTICE "start jrnl_recovery.\n"); >> + vprintf(SDOG_NOTICE, "start jrnl_recovery.\n"); >> while ((d = readdir(dir))) { >> int ret; >> struct jrnl_file_desc jfd; >> @@ -2316,12 +2316,12 @@ int jrnl_recover(void) >> end_while_2: >> jrnl_close(&jfd); >> end_while_3: >> - vprintf(SDOG_INFO "recovered the object in journal, %s\n", >> + vprintf(SDOG_INFO, "recovered the object in journal, %s\n", >> jrnl_file_path); >> jrnl_remove(&jfd); >> } >> closedir(dir); >> - vprintf(SDOG_NOTICE "end jrnl_recovery.\n"); >> + vprintf(SDOG_NOTICE, "end jrnl_recovery.\n"); >> >> return 0; >> } >> diff --git a/sheep/vdi.c b/sheep/vdi.c >> index 392d429..42111c9 100644 >> --- a/sheep/vdi.c >> +++ b/sheep/vdi.c >> @@ -76,14 +76,14 @@ static int create_vdi_obj(uint32_t epoch, char *name, uint32_t new_vid, uint64_t >> >> if (is_snapshot) { >> if (cur_vid != base_vid) { >> - vprintf(SDOG_INFO "tree snapshot %s %" PRIx32 " %" PRIx32 "\n", >> + vprintf(SDOG_INFO, "tree snapshot %s %" PRIx32 " %" PRIx32 "\n", >> name, cur_vid, base_vid); >> >> ret = read_object(entries, nr_vnodes, nr_zones, epoch, >> vid_to_vdi_oid(cur_vid), (char *)cur, >> SD_INODE_HEADER_SIZE, 0, copies); >> if (ret< 0) { >> - vprintf(SDOG_ERR "failed\n"); >> + vprintf(SDOG_ERR, "failed\n"); >> ret = SD_RES_BASE_VDI_READ; >> goto out; >> } >> @@ -126,7 +126,7 @@ static int create_vdi_obj(uint32_t epoch, char *name, uint32_t new_vid, uint64_t >> vid_to_vdi_oid(cur_vid), (char *)cur, >> SD_INODE_HEADER_SIZE, 0, copies, 0); >> if (ret != 0) { >> - vprintf(SDOG_ERR "failed\n"); >> + vprintf(SDOG_ERR, "failed\n"); >> ret = SD_RES_BASE_VDI_READ; >> goto out; >> } >> @@ -137,7 +137,7 @@ static int create_vdi_obj(uint32_t epoch, char *name, uint32_t new_vid, uint64_t >> vid_to_vdi_oid(base_vid), (char *)base, >> SD_INODE_HEADER_SIZE, 0, copies, 0); >> if (ret != 0) { >> - vprintf(SDOG_ERR "failed\n"); >> + vprintf(SDOG_ERR, "failed\n"); >> ret = SD_RES_BASE_VDI_WRITE; >> goto out; >> } >> @@ -233,7 +233,7 @@ static int do_lookup_vdi(uint32_t epoch, char *name, int namelen, uint32_t *vid, >> >> start_nr = fnv_64a_buf(name, namelen, FNV1A_64_INIT)& (SD_NR_VDIS - 1); >> >> - vprintf(SDOG_INFO "looking for %s %d, %lx\n", name, namelen, start_nr); >> + vprintf(SDOG_INFO, "looking for %s %d, %lx\n", name, namelen, start_nr); >> >> /* bitmap search from the hash point */ >> nr = find_next_zero_bit(sys->vdi_inuse, SD_NR_VDIS, start_nr); >> @@ -306,7 +306,7 @@ int add_vdi(uint32_t epoch, char *data, int data_len, uint64_t size, >> if (is_snapshot) { >> if (ret != SD_RES_SUCCESS) { >> if (ret == SD_RES_NO_VDI) >> - vprintf(SDOG_CRIT "we dont's have %s\n", name); >> + vprintf(SDOG_CRIT, "we dont's have %s\n", name); >> return ret; >> } >> nr = right_nr; >> @@ -328,12 +328,12 @@ int add_vdi(uint32_t epoch, char *data, int data_len, uint64_t size, >> >> *new_vid = nr; >> >> - vprintf(SDOG_INFO "we create a new vdi, %d %s (%zd) %" PRIu64 ", vid: %" >> + vprintf(SDOG_INFO, "we create a new vdi, %d %s (%zd) %" PRIu64 ", vid: %" >> PRIx32 ", base %" PRIx32 ", cur %" PRIx32 " \n", >> is_snapshot, name, strlen(name), size, *new_vid, base_vid, cur_vid); >> >> if (!copies) { >> - vprintf(SDOG_WARNING "qemu doesn't specify the copies... %d\n", >> + vprintf(SDOG_WARNING, "qemu doesn't specify the copies... %d\n", >> sys->nr_sobjs); >> copies = sys->nr_sobjs; >> } > > Why we need extra ',' in vprintf? it is not extra, now vprintf() use log_write() which defined in sheepdog/include/logger.h, log_write() has log level parameter 'prio', but vrpintf() does not parse the log level, use LOG_INFO default. you mean use vprintf() such as use printk()? > > Thanks, > Yuan |