From 8f2fc6fb3a63ca87d82b6fa933f94fb1e3283a26 Mon Sep 17 00:00:00 2001 From: Ajeet Jha Date: Mon, 2 Dec 2013 13:04:51 +0530 Subject: features/changelog: more changelog fixes. -> log additional records. -> include FOP number for metadata. -> prevent crash if inode is not found in a fop. Change-Id: I9edd4b71819ebd68c6a2b4150ae279c471d129da BUG: 1036536 Signed-off-by: Ajeet Jha Reviewed-on: http://review.gluster.org/6403 Tested-by: Gluster Build System Reviewed-by: Amar Tumballi Reviewed-by: Venky Shankar --- xlators/features/changelog/src/changelog-encoders.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'xlators/features/changelog/src/changelog-encoders.c') diff --git a/xlators/features/changelog/src/changelog-encoders.c b/xlators/features/changelog/src/changelog-encoders.c index 553eec85c30..08626ee2f22 100644 --- a/xlators/features/changelog/src/changelog-encoders.c +++ b/xlators/features/changelog/src/changelog-encoders.c @@ -56,6 +56,24 @@ fop_fn (void *data, char *buffer, gf_boolean_t encode) return bufsz; } +size_t +number_fn (void *data, char *buffer, gf_boolean_t encode) +{ + size_t bufsz = 0; + unsigned int nr = 0; + char buf[20] = {0,}; + + nr = *(unsigned int *) data; + + if (encode) { + (void) snprintf (buf, sizeof (buf), "%u", nr); + CHANGELOG_FILL_BUFFER (buffer, bufsz, buf, strlen (buf)); + } else + CHANGELOG_FILL_BUFFER (buffer, bufsz, &nr, sizeof (unsigned int)); + + return bufsz; +} + void entry_free_fn (void *data) { @@ -94,6 +112,9 @@ changelog_encode_write_xtra (changelog_log_data_t *cld, case CHANGELOG_OPT_REC_ENTRY: data = &co->co_entry; break; + case CHANGELOG_OPT_REC_UINT32: + data = &co->co_uint32; + break; } if (co->co_convert) -- cgit