From: Christoph Hellwig Date: Mon, 22 Apr 2024 17:01:17 +0000 (-0700) Subject: libxfs: provide a kernel-compatible kasprintf X-Git-Tag: v6.9.0~12^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b654d15510f4be85acdd71b521adb4bc1e052eaf;p=thirdparty%2Fxfsprogs-dev.git libxfs: provide a kernel-compatible kasprintf The kernel-like kasprintf will be used by the new metadir code, as well as the rmap data structures in xfs_repair. Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong [djwong: tweak commit message] Signed-off-by: Darrick J. Wong --- diff --git a/include/kmem.h b/include/kmem.h index 386b4a6b..8dfb2fb0 100644 --- a/include/kmem.h +++ b/include/kmem.h @@ -65,4 +65,7 @@ static inline void kfree(const void *ptr) free((void *)ptr); } +__attribute__((format(printf,2,3))) +char *kasprintf(gfp_t gfp, const char *fmt, ...); + #endif diff --git a/libxfs/kmem.c b/libxfs/kmem.c index a2a3935d..2e293518 100644 --- a/libxfs/kmem.c +++ b/libxfs/kmem.c @@ -104,3 +104,16 @@ krealloc(void *ptr, size_t new_size, int flags) } return ptr; } + +char *kasprintf(gfp_t gfp, const char *fmt, ...) +{ + va_list ap; + char *p; + + va_start(ap, fmt); + if (vasprintf(&p, fmt, ap) < 0) + p = NULL; + va_end(ap); + + return p; +}