* [PATCH v4] libceph: print fsid and client gid with osd id
@ 2022-06-06 2:57 Daichi Mukai
2022-06-14 13:12 ` Ilya Dryomov
0 siblings, 1 reply; 3+ messages in thread
From: Daichi Mukai @ 2022-06-06 2:57 UTC (permalink / raw)
To: Ceph Development; +Cc: Satoru Takeuchi
Print fsid and client gid in libceph log messages to distinct from which
each message come.
Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
Signed-off-by: Daichi Mukai <daichi-mukai@cybozu.co.jp>
---
include/linux/ceph/osdmap.h | 2 +-
net/ceph/osd_client.c | 3 ++-
net/ceph/osdmap.c | 43 ++++++++++++++++++++++++++-----------
3 files changed, 34 insertions(+), 14 deletions(-)
* Changes since v3
- Rebased to latest mainline
* Changes since v2
- Set scope of this patch to log message for osd
- Improved format of message
* Changes since v1
- Added client gid to log message
diff --git a/include/linux/ceph/osdmap.h b/include/linux/ceph/osdmap.h
index 5553019c3f07..a9216c64350c 100644
--- a/include/linux/ceph/osdmap.h
+++ b/include/linux/ceph/osdmap.h
@@ -253,7 +253,7 @@ static inline int ceph_decode_pgid(void **p, void *end, struct ceph_pg *pgid)
struct ceph_osdmap *ceph_osdmap_alloc(void);
struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end, bool msgr2);
struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
- struct ceph_osdmap *map);
+ struct ceph_osdmap *map, u64 gid);
extern void ceph_osdmap_destroy(struct ceph_osdmap *map);
struct ceph_osds {
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 9d82bb42e958..e9bd6c27c5ad 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -3945,7 +3945,8 @@ static int handle_one_map(struct ceph_osd_client *osdc,
if (incremental)
newmap = osdmap_apply_incremental(&p, end,
ceph_msgr2(osdc->client),
- osdc->osdmap);
+ osdc->osdmap,
+ ceph_client_gid(osdc->client));
else
newmap = ceph_osdmap_decode(&p, end, ceph_msgr2(osdc->client));
if (IS_ERR(newmap))
diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c
index 2823bb3cff55..cd65677baff3 100644
--- a/net/ceph/osdmap.c
+++ b/net/ceph/osdmap.c
@@ -1549,8 +1549,23 @@ static int decode_primary_affinity(void **p, void *end,
return -EINVAL;
}
+static __printf(3, 4)
+void print_osd_info(struct ceph_fsid *fsid, u64 gid, const char *fmt, ...)
+{
+ struct va_format vaf;
+ va_list args;
+
+ va_start(args, fmt);
+ vaf.fmt = fmt;
+ vaf.va = &args;
+
+ printk(KERN_INFO "%s (%pU %lld): %pV", KBUILD_MODNAME, fsid, gid, &vaf);
+
+ va_end(args);
+}
+
static int decode_new_primary_affinity(void **p, void *end,
- struct ceph_osdmap *map)
+ struct ceph_osdmap *map, u64 gid)
{
u32 n;
@@ -1566,7 +1581,8 @@ static int decode_new_primary_affinity(void **p, void *end,
if (ret)
return ret;
- pr_info("osd%d primary-affinity 0x%x\n", osd, aff);
+ print_osd_info(&map->fsid, gid, "osd%d primary-affinity 0x%x\n",
+ osd, aff);
}
return 0;
@@ -1825,7 +1841,8 @@ struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end, bool msgr2)
* new_state: { osd=6, xorstate=EXISTS } # clear osd_state
*/
static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
- bool msgr2, struct ceph_osdmap *map)
+ bool msgr2, struct ceph_osdmap *map,
+ u64 gid)
{
void *new_up_client;
void *new_state;
@@ -1864,9 +1881,10 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
osd = ceph_decode_32(p);
w = ceph_decode_32(p);
BUG_ON(osd >= map->max_osd);
- pr_info("osd%d weight 0x%x %s\n", osd, w,
- w == CEPH_OSD_IN ? "(in)" :
- (w == CEPH_OSD_OUT ? "(out)" : ""));
+ print_osd_info(&map->fsid, gid, "osd%d weight 0x%x %s\n",
+ osd, w,
+ w == CEPH_OSD_IN ? "(in)" :
+ (w == CEPH_OSD_OUT ? "(out)" : ""));
map->osd_weight[osd] = w;
/*
@@ -1898,10 +1916,11 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
BUG_ON(osd >= map->max_osd);
if ((map->osd_state[osd] & CEPH_OSD_UP) &&
(xorstate & CEPH_OSD_UP))
- pr_info("osd%d down\n", osd);
+ print_osd_info(&map->fsid, gid, "osd%d down\n", osd);
if ((map->osd_state[osd] & CEPH_OSD_EXISTS) &&
(xorstate & CEPH_OSD_EXISTS)) {
- pr_info("osd%d does not exist\n", osd);
+ print_osd_info(&map->fsid, gid, "osd%d does not exist\n",
+ osd);
ret = set_primary_affinity(map, osd,
CEPH_OSD_DEFAULT_PRIMARY_AFFINITY);
if (ret)
@@ -1931,7 +1950,7 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
dout("%s osd%d addr %s\n", __func__, osd, ceph_pr_addr(&addr));
- pr_info("osd%d up\n", osd);
+ print_osd_info(&map->fsid, gid, "osd%d up\n", osd);
map->osd_state[osd] |= CEPH_OSD_EXISTS | CEPH_OSD_UP;
map->osd_addr[osd] = addr;
}
@@ -1947,7 +1966,7 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
* decode and apply an incremental map update.
*/
struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
- struct ceph_osdmap *map)
+ struct ceph_osdmap *map, u64 gid)
{
struct ceph_fsid fsid;
u32 epoch = 0;
@@ -2033,7 +2052,7 @@ struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
}
/* new_up_client, new_state, new_weight */
- err = decode_new_up_state_weight(p, end, struct_v, msgr2, map);
+ err = decode_new_up_state_weight(p, end, struct_v, msgr2, map, gid);
if (err)
goto bad;
@@ -2051,7 +2070,7 @@ struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
/* new_primary_affinity */
if (struct_v >= 2) {
- err = decode_new_primary_affinity(p, end, map);
+ err = decode_new_primary_affinity(p, end, map, gid);
if (err)
goto bad;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v4] libceph: print fsid and client gid with osd id
2022-06-06 2:57 [PATCH v4] libceph: print fsid and client gid with osd id Daichi Mukai
@ 2022-06-14 13:12 ` Ilya Dryomov
2022-06-15 9:21 ` Daichi Mukai
0 siblings, 1 reply; 3+ messages in thread
From: Ilya Dryomov @ 2022-06-14 13:12 UTC (permalink / raw)
To: Daichi Mukai; +Cc: Ceph Development, Satoru Takeuchi
On Mon, Jun 6, 2022 at 8:00 AM Daichi Mukai <daichi-mukai@cybozu.co.jp> wrote:
>
> Print fsid and client gid in libceph log messages to distinct from which
> each message come.
>
> Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
> Signed-off-by: Daichi Mukai <daichi-mukai@cybozu.co.jp>
> ---
> include/linux/ceph/osdmap.h | 2 +-
> net/ceph/osd_client.c | 3 ++-
> net/ceph/osdmap.c | 43 ++++++++++++++++++++++++++-----------
> 3 files changed, 34 insertions(+), 14 deletions(-)
>
> * Changes since v3
>
> - Rebased to latest mainline
>
> * Changes since v2
>
> - Set scope of this patch to log message for osd
> - Improved format of message
>
> * Changes since v1
>
> - Added client gid to log message
>
> diff --git a/include/linux/ceph/osdmap.h b/include/linux/ceph/osdmap.h
> index 5553019c3f07..a9216c64350c 100644
> --- a/include/linux/ceph/osdmap.h
> +++ b/include/linux/ceph/osdmap.h
> @@ -253,7 +253,7 @@ static inline int ceph_decode_pgid(void **p, void *end, struct ceph_pg *pgid)
> struct ceph_osdmap *ceph_osdmap_alloc(void);
> struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end, bool msgr2);
> struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
> - struct ceph_osdmap *map);
> + struct ceph_osdmap *map, u64 gid);
> extern void ceph_osdmap_destroy(struct ceph_osdmap *map);
>
> struct ceph_osds {
> diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
> index 9d82bb42e958..e9bd6c27c5ad 100644
> --- a/net/ceph/osd_client.c
> +++ b/net/ceph/osd_client.c
> @@ -3945,7 +3945,8 @@ static int handle_one_map(struct ceph_osd_client *osdc,
> if (incremental)
> newmap = osdmap_apply_incremental(&p, end,
> ceph_msgr2(osdc->client),
> - osdc->osdmap);
> + osdc->osdmap,
> + ceph_client_gid(osdc->client));
> else
> newmap = ceph_osdmap_decode(&p, end, ceph_msgr2(osdc->client));
> if (IS_ERR(newmap))
> diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c
> index 2823bb3cff55..cd65677baff3 100644
> --- a/net/ceph/osdmap.c
> +++ b/net/ceph/osdmap.c
> @@ -1549,8 +1549,23 @@ static int decode_primary_affinity(void **p, void *end,
> return -EINVAL;
> }
>
> +static __printf(3, 4)
> +void print_osd_info(struct ceph_fsid *fsid, u64 gid, const char *fmt, ...)
> +{
> + struct va_format vaf;
> + va_list args;
> +
> + va_start(args, fmt);
> + vaf.fmt = fmt;
> + vaf.va = &args;
> +
> + printk(KERN_INFO "%s (%pU %lld): %pV", KBUILD_MODNAME, fsid, gid, &vaf);
> +
> + va_end(args);
> +}
> +
> static int decode_new_primary_affinity(void **p, void *end,
> - struct ceph_osdmap *map)
> + struct ceph_osdmap *map, u64 gid)
> {
> u32 n;
>
> @@ -1566,7 +1581,8 @@ static int decode_new_primary_affinity(void **p, void *end,
> if (ret)
> return ret;
>
> - pr_info("osd%d primary-affinity 0x%x\n", osd, aff);
> + print_osd_info(&map->fsid, gid, "osd%d primary-affinity 0x%x\n",
> + osd, aff);
> }
>
> return 0;
> @@ -1825,7 +1841,8 @@ struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end, bool msgr2)
> * new_state: { osd=6, xorstate=EXISTS } # clear osd_state
> */
> static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
> - bool msgr2, struct ceph_osdmap *map)
> + bool msgr2, struct ceph_osdmap *map,
> + u64 gid)
> {
> void *new_up_client;
> void *new_state;
> @@ -1864,9 +1881,10 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
> osd = ceph_decode_32(p);
> w = ceph_decode_32(p);
> BUG_ON(osd >= map->max_osd);
> - pr_info("osd%d weight 0x%x %s\n", osd, w,
> - w == CEPH_OSD_IN ? "(in)" :
> - (w == CEPH_OSD_OUT ? "(out)" : ""));
> + print_osd_info(&map->fsid, gid, "osd%d weight 0x%x %s\n",
> + osd, w,
> + w == CEPH_OSD_IN ? "(in)" :
> + (w == CEPH_OSD_OUT ? "(out)" : ""));
> map->osd_weight[osd] = w;
>
> /*
> @@ -1898,10 +1916,11 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
> BUG_ON(osd >= map->max_osd);
> if ((map->osd_state[osd] & CEPH_OSD_UP) &&
> (xorstate & CEPH_OSD_UP))
> - pr_info("osd%d down\n", osd);
> + print_osd_info(&map->fsid, gid, "osd%d down\n", osd);
> if ((map->osd_state[osd] & CEPH_OSD_EXISTS) &&
> (xorstate & CEPH_OSD_EXISTS)) {
> - pr_info("osd%d does not exist\n", osd);
> + print_osd_info(&map->fsid, gid, "osd%d does not exist\n",
> + osd);
> ret = set_primary_affinity(map, osd,
> CEPH_OSD_DEFAULT_PRIMARY_AFFINITY);
> if (ret)
> @@ -1931,7 +1950,7 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
>
> dout("%s osd%d addr %s\n", __func__, osd, ceph_pr_addr(&addr));
>
> - pr_info("osd%d up\n", osd);
> + print_osd_info(&map->fsid, gid, "osd%d up\n", osd);
> map->osd_state[osd] |= CEPH_OSD_EXISTS | CEPH_OSD_UP;
> map->osd_addr[osd] = addr;
> }
> @@ -1947,7 +1966,7 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
> * decode and apply an incremental map update.
> */
> struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
> - struct ceph_osdmap *map)
> + struct ceph_osdmap *map, u64 gid)
> {
> struct ceph_fsid fsid;
> u32 epoch = 0;
> @@ -2033,7 +2052,7 @@ struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
> }
>
> /* new_up_client, new_state, new_weight */
> - err = decode_new_up_state_weight(p, end, struct_v, msgr2, map);
> + err = decode_new_up_state_weight(p, end, struct_v, msgr2, map, gid);
> if (err)
> goto bad;
>
> @@ -2051,7 +2070,7 @@ struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
>
> /* new_primary_affinity */
> if (struct_v >= 2) {
> - err = decode_new_primary_affinity(p, end, map);
> + err = decode_new_primary_affinity(p, end, map, gid);
> if (err)
> goto bad;
> }
> --
> 2.25.1
Hi Daichi,
I played with this a bit and decided that printing gid is not needed
after all, given that only osdmap messages are changed. Instead,
I switched to printing epoch which can be very useful when debugging
stuck OSD requests. Here is the patch I ended up with:
https://github.com/ceph/ceph-client/commit/b5f9965fad5a4f3a8d17aa234167e8a85e1b9105
Could you please take a look and let me know if you are OK with it?
Thanks,
Ilya
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v4] libceph: print fsid and client gid with osd id
2022-06-14 13:12 ` Ilya Dryomov
@ 2022-06-15 9:21 ` Daichi Mukai
0 siblings, 0 replies; 3+ messages in thread
From: Daichi Mukai @ 2022-06-15 9:21 UTC (permalink / raw)
To: Ilya Dryomov; +Cc: Ceph Development, Satoru Takeuchi
On 2022/06/14 22:12, Ilya Dryomov wrote:
> On Mon, Jun 6, 2022 at 8:00 AM Daichi Mukai <daichi-mukai@cybozu.co.jp> wrote:
>>
>> Print fsid and client gid in libceph log messages to distinct from which
>> each message come.
>>
>> Signed-off-by: Satoru Takeuchi <satoru.takeuchi@gmail.com>
>> Signed-off-by: Daichi Mukai <daichi-mukai@cybozu.co.jp>
>> ---
>> include/linux/ceph/osdmap.h | 2 +-
>> net/ceph/osd_client.c | 3 ++-
>> net/ceph/osdmap.c | 43 ++++++++++++++++++++++++++-----------
>> 3 files changed, 34 insertions(+), 14 deletions(-)
>>
>> * Changes since v3
>>
>> - Rebased to latest mainline
>>
>> * Changes since v2
>>
>> - Set scope of this patch to log message for osd
>> - Improved format of message
>>
>> * Changes since v1
>>
>> - Added client gid to log message
>>
>> diff --git a/include/linux/ceph/osdmap.h b/include/linux/ceph/osdmap.h
>> index 5553019c3f07..a9216c64350c 100644
>> --- a/include/linux/ceph/osdmap.h
>> +++ b/include/linux/ceph/osdmap.h
>> @@ -253,7 +253,7 @@ static inline int ceph_decode_pgid(void **p, void *end, struct ceph_pg *pgid)
>> struct ceph_osdmap *ceph_osdmap_alloc(void);
>> struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end, bool msgr2);
>> struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
>> - struct ceph_osdmap *map);
>> + struct ceph_osdmap *map, u64 gid);
>> extern void ceph_osdmap_destroy(struct ceph_osdmap *map);
>>
>> struct ceph_osds {
>> diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
>> index 9d82bb42e958..e9bd6c27c5ad 100644
>> --- a/net/ceph/osd_client.c
>> +++ b/net/ceph/osd_client.c
>> @@ -3945,7 +3945,8 @@ static int handle_one_map(struct ceph_osd_client *osdc,
>> if (incremental)
>> newmap = osdmap_apply_incremental(&p, end,
>> ceph_msgr2(osdc->client),
>> - osdc->osdmap);
>> + osdc->osdmap,
>> + ceph_client_gid(osdc->client));
>> else
>> newmap = ceph_osdmap_decode(&p, end, ceph_msgr2(osdc->client));
>> if (IS_ERR(newmap))
>> diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c
>> index 2823bb3cff55..cd65677baff3 100644
>> --- a/net/ceph/osdmap.c
>> +++ b/net/ceph/osdmap.c
>> @@ -1549,8 +1549,23 @@ static int decode_primary_affinity(void **p, void *end,
>> return -EINVAL;
>> }
>>
>> +static __printf(3, 4)
>> +void print_osd_info(struct ceph_fsid *fsid, u64 gid, const char *fmt, ...)
>> +{
>> + struct va_format vaf;
>> + va_list args;
>> +
>> + va_start(args, fmt);
>> + vaf.fmt = fmt;
>> + vaf.va = &args;
>> +
>> + printk(KERN_INFO "%s (%pU %lld): %pV", KBUILD_MODNAME, fsid, gid, &vaf);
>> +
>> + va_end(args);
>> +}
>> +
>> static int decode_new_primary_affinity(void **p, void *end,
>> - struct ceph_osdmap *map)
>> + struct ceph_osdmap *map, u64 gid)
>> {
>> u32 n;
>>
>> @@ -1566,7 +1581,8 @@ static int decode_new_primary_affinity(void **p, void *end,
>> if (ret)
>> return ret;
>>
>> - pr_info("osd%d primary-affinity 0x%x\n", osd, aff);
>> + print_osd_info(&map->fsid, gid, "osd%d primary-affinity 0x%x\n",
>> + osd, aff);
>> }
>>
>> return 0;
>> @@ -1825,7 +1841,8 @@ struct ceph_osdmap *ceph_osdmap_decode(void **p, void *end, bool msgr2)
>> * new_state: { osd=6, xorstate=EXISTS } # clear osd_state
>> */
>> static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
>> - bool msgr2, struct ceph_osdmap *map)
>> + bool msgr2, struct ceph_osdmap *map,
>> + u64 gid)
>> {
>> void *new_up_client;
>> void *new_state;
>> @@ -1864,9 +1881,10 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
>> osd = ceph_decode_32(p);
>> w = ceph_decode_32(p);
>> BUG_ON(osd >= map->max_osd);
>> - pr_info("osd%d weight 0x%x %s\n", osd, w,
>> - w == CEPH_OSD_IN ? "(in)" :
>> - (w == CEPH_OSD_OUT ? "(out)" : ""));
>> + print_osd_info(&map->fsid, gid, "osd%d weight 0x%x %s\n",
>> + osd, w,
>> + w == CEPH_OSD_IN ? "(in)" :
>> + (w == CEPH_OSD_OUT ? "(out)" : ""));
>> map->osd_weight[osd] = w;
>>
>> /*
>> @@ -1898,10 +1916,11 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
>> BUG_ON(osd >= map->max_osd);
>> if ((map->osd_state[osd] & CEPH_OSD_UP) &&
>> (xorstate & CEPH_OSD_UP))
>> - pr_info("osd%d down\n", osd);
>> + print_osd_info(&map->fsid, gid, "osd%d down\n", osd);
>> if ((map->osd_state[osd] & CEPH_OSD_EXISTS) &&
>> (xorstate & CEPH_OSD_EXISTS)) {
>> - pr_info("osd%d does not exist\n", osd);
>> + print_osd_info(&map->fsid, gid, "osd%d does not exist\n",
>> + osd);
>> ret = set_primary_affinity(map, osd,
>> CEPH_OSD_DEFAULT_PRIMARY_AFFINITY);
>> if (ret)
>> @@ -1931,7 +1950,7 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
>>
>> dout("%s osd%d addr %s\n", __func__, osd, ceph_pr_addr(&addr));
>>
>> - pr_info("osd%d up\n", osd);
>> + print_osd_info(&map->fsid, gid, "osd%d up\n", osd);
>> map->osd_state[osd] |= CEPH_OSD_EXISTS | CEPH_OSD_UP;
>> map->osd_addr[osd] = addr;
>> }
>> @@ -1947,7 +1966,7 @@ static int decode_new_up_state_weight(void **p, void *end, u8 struct_v,
>> * decode and apply an incremental map update.
>> */
>> struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
>> - struct ceph_osdmap *map)
>> + struct ceph_osdmap *map, u64 gid)
>> {
>> struct ceph_fsid fsid;
>> u32 epoch = 0;
>> @@ -2033,7 +2052,7 @@ struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
>> }
>>
>> /* new_up_client, new_state, new_weight */
>> - err = decode_new_up_state_weight(p, end, struct_v, msgr2, map);
>> + err = decode_new_up_state_weight(p, end, struct_v, msgr2, map, gid);
>> if (err)
>> goto bad;
>>
>> @@ -2051,7 +2070,7 @@ struct ceph_osdmap *osdmap_apply_incremental(void **p, void *end, bool msgr2,
>>
>> /* new_primary_affinity */
>> if (struct_v >= 2) {
>> - err = decode_new_primary_affinity(p, end, map);
>> + err = decode_new_primary_affinity(p, end, map, gid);
>> if (err)
>> goto bad;
>> }
>> --
>> 2.25.1
>
> Hi Daichi,
>
> I played with this a bit and decided that printing gid is not needed
> after all, given that only osdmap messages are changed. Instead,
> I switched to printing epoch which can be very useful when debugging
> stuck OSD requests. Here is the patch I ended up with:
>
> https://github.com/ceph/ceph-client/commit/b5f9965fad5a4f3a8d17aa234167e8a85e1b9105
>
> Could you please take a look and let me know if you are OK with it?
Hi Ilya,
I have looked the patch and tried it. It looks good to me.
Thank you very much!
Best,
Daichi
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-06-15 9:22 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-06 2:57 [PATCH v4] libceph: print fsid and client gid with osd id Daichi Mukai
2022-06-14 13:12 ` Ilya Dryomov
2022-06-15 9:21 ` Daichi Mukai
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.