It looks like snapid_t is a uint64_t, but snprintf expects an unsigned there. -Sam On Tue, Feb 3, 2015 at 9:15 AM, Gregory Farnum <greg@xxxxxxxxxxx> wrote: > On Tue, Feb 3, 2015 at 4:12 AM, Ding Dinghua <dingdinghua85@xxxxxxxxx> wrote: >> Hi all: >> I don't understand why SnapMapper::get_prefix static_cast snap >> to unsigned: >> >> string SnapMapper::get_prefix(snapid_t snap) >> { >> char buf[100]; >> int len = snprintf( >> buf, sizeof(buf), >> "%.*X_", (int)(sizeof(snap)*2), >> static_cast<unsigned>(snap)); >> return MAPPING_PREFIX + string(buf, len); >> } >> >> Will this limit snapshot count in pool to 2^32 -1 ? >> >> Could anyone clarify ? Thanks > > I think the code base is a little confused about whether snaps should > be 32 or 64 bits in various places. :( That said, the size of unsigned > can vary across architectures, so this should probably be sized more > explicitly as whatever it's supposed to be on the disk... -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html