{"id":2219476,"url":"http://patchwork.ozlabs.org/api/1.0/patches/2219476/?format=json","project":{"id":8,"url":"http://patchwork.ozlabs.org/api/1.0/projects/8/?format=json","name":"Linux ext4 filesystem development","link_name":"linux-ext4","list_id":"linux-ext4.vger.kernel.org","list_email":"linux-ext4@vger.kernel.org","web_url":null,"scm_url":null,"webscm_url":null},"msgid":"<20260403040328.2385083-3-tytso@mit.edu>","date":"2026-04-03T04:03:27","name":"[2/3] libsupport: add a portable get_thread_id() function","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"da3897c89262f13682fc230b9e2a63495601a28b","submitter":{"id":350,"url":"http://patchwork.ozlabs.org/api/1.0/people/350/?format=json","name":"Theodore Ts'o","email":"tytso@mit.edu"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/linux-ext4/patch/20260403040328.2385083-3-tytso@mit.edu/mbox/","series":[{"id":498585,"url":"http://patchwork.ozlabs.org/api/1.0/series/498585/?format=json","date":"2026-04-03T04:03:25","name":"Fix portability issues on MacOS","version":1,"mbox":"http://patchwork.ozlabs.org/series/498585/mbox/"}],"check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2219476/checks/","tags":{},"headers":{"Return-Path":"\n <SRS0=Mue5=CC=vger.kernel.org=linux-ext4+bounces-15614-patchwork-incoming=ozlabs.org@ozlabs.org>","X-Original-To":["incoming@patchwork.ozlabs.org","linux-ext4@vger.kernel.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","patchwork-incoming@ozlabs.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=mit.edu header.i=@mit.edu header.a=rsa-sha256\n header.s=outgoing header.b=Xhp9gGt0;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=ozlabs.org\n (client-ip=2404:9400:2221:ea00::3; helo=mail.ozlabs.org;\n envelope-from=srs0=mue5=cc=vger.kernel.org=linux-ext4+bounces-15614-patchwork-incoming=ozlabs.org@ozlabs.org;\n receiver=patchwork.ozlabs.org)","gandalf.ozlabs.org;\n arc=pass smtp.remote-ip=\"2600:3c04:e001:36c::12fc:5321\"\n arc.chain=subspace.kernel.org","gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=mit.edu","gandalf.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=mit.edu header.i=@mit.edu header.a=rsa-sha256\n header.s=outgoing header.b=Xhp9gGt0;\n\tdkim-atps=neutral","gandalf.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15614-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org)","smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=mit.edu header.i=@mit.edu\n header.b=\"Xhp9gGt0\"","smtp.subspace.kernel.org;\n arc=none smtp.client-ip=18.9.28.11","smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=mit.edu","smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=mit.edu"],"Received":["from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fn4ph22KTz1xtJ\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 03 Apr 2026 15:03:56 +1100 (AEDT)","from mail.ozlabs.org (mail.ozlabs.org [IPv6:2404:9400:2221:ea00::3])\n\tby gandalf.ozlabs.org (Postfix) with ESMTP id 4fn4ph1ZdDz4w9h\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 03 Apr 2026 15:03:56 +1100 (AEDT)","by gandalf.ozlabs.org (Postfix)\n\tid 4fn4ph1XFLz4w0Q; Fri, 03 Apr 2026 15:03:56 +1100 (AEDT)","from tor.lore.kernel.org (tor.lore.kernel.org\n [IPv6:2600:3c04:e001:36c::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519)\n\t(No client certificate requested)\n\tby gandalf.ozlabs.org (Postfix) with ESMTPS id 4fn4pb1Zqgz4wSc\n\tfor <patchwork-incoming@ozlabs.org>; Fri, 03 Apr 2026 15:03:51 +1100 (AEDT)","from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby tor.lore.kernel.org (Postfix) with ESMTP id E5FA0304F081\n\tfor <patchwork-incoming@ozlabs.org>; Fri,  3 Apr 2026 04:03:45 +0000 (UTC)","from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 2E3EB32FA2C;\n\tFri,  3 Apr 2026 04:03:42 +0000 (UTC)","from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 627CE1624D5\n\tfor <linux-ext4@vger.kernel.org>; Fri,  3 Apr 2026 04:03:40 +0000 (UTC)","from trampoline.thunk.org\n (pool-173-48-112-174.bstnma.fios.verizon.net [173.48.112.174])\n\t(authenticated bits=0)\n        (User authenticated as tytso@ATHENA.MIT.EDU)\n\tby outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 63343Xdg005246\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT);\n\tFri, 3 Apr 2026 00:03:34 -0400","by trampoline.thunk.org (Postfix, from userid 15806)\n\tid 78B3D2E00D9; Fri, 03 Apr 2026 00:03:33 -0400 (EDT)"],"ARC-Seal":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707; t=1775189036; cv=pass;\n\tb=wbt1YM2onCOV4F0Niq5EG92TfC42lreEe2Dd2WkZTY/5I7NWMqcAhCHgQ0g8TbQG0/8KGKJprqkuJEfwuMxVrqrnq9ozTqvvh6BZsMGM+IOsWL8/BHBKbW/5k0tfhGzQ0k7K4AXfshoLP2nnxg6IFXJBRZmuELdNqPqzk7ycgten40Of4HqPWY/gXklUnejofjFwPMUxB5McmYQWFnBmT/gnZSKZXFKAMZsw73HNAegDRotHugfx0dZSvBwUeaoJv46TBYmBWp93Pqc7qgq2lrRXaX834MhzRmzvifBGfnZvi304ZAhvFqPXNaQxCTNJhedMympndCSzEjt2/Iho1w==","i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1775189022; cv=none;\n b=tEhZQj+WUz8f+T2QoPsMs8DlO3LEme9cdXg9VeSwejyAeVdczQwsiTzXa/GzCni/mUKyNUoAVAFikSaxxlwqTKNesVYz7cr9AfTqWY0LR8rAZVq1RP5C11tYTxxqkYcXzaz7tVngE2VdnL09Zy7H0U5mJd9sAn60jfuanKcGvRs="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=ozlabs.org; s=201707;\n\tt=1775189036; c=relaxed/relaxed;\n\tbh=gVpCksOP+qT9v9bAENj/GDIDBmyQHkd9l6NiYSzX5rw=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=J+icFrQVzTyuRXIW9s1wMgj+fJdNvaNT9PE2+fg/7yZji1eUQDcq7IOeimwKYvDHW07P7NU0NvIpCf4C9kBh78rT5HXAdufKap9tUPH/KcCs1MJPS62Bj9zi/nOKHSRp+W3qGmN5LJTAhDH+dnuyOVUKEWfaA/YAtqvvA6z1BFZH6n4eobggwMpUPpMmev+G3J+gsDKaJc9OElJEcp+gEh2TYzJsYLSMDaDqlwogxo+4P1q+LbragRPdocS8b64CPmFMhu+i3ViQJmcR4D0g/cNJPRSi2h6m/jRi48kGWnaAEj3/0c50xAhMJKQsV3Dcb2PtYniLJG+IBMaRGUx6yA==","i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1775189022; c=relaxed/simple;\n\tbh=VM5UOhVbXY/OG6vhHRvvmBThfCrY/wBYTTPhwDhy7M4=;\n\th=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:\n\t MIME-Version;\n b=PZMcY/u1VIZ5ovI09mol5EHQF9fFpkJ8zK0VQjOWTjDKZalnmWnCoopYPrnLqIiU8F/kUjyCVV5XY0gNOcCU7u/L4jcsiORrYiBNe39UwJp6UHmCuIrG9LwfZCB7GkZIpNf77vUfheycuOwSTETITFk9w7CVBHk8lG+756O8dvk="],"ARC-Authentication-Results":["i=2; gandalf.ozlabs.org;\n dmarc=pass (p=none dis=none) header.from=mit.edu; dkim=pass (2048-bit key;\n unprotected) header.d=mit.edu header.i=@mit.edu header.a=rsa-sha256\n header.s=outgoing header.b=Xhp9gGt0; dkim-atps=neutral;\n spf=pass (client-ip=2600:3c04:e001:36c::12fc:5321; helo=tor.lore.kernel.org;\n envelope-from=linux-ext4+bounces-15614-patchwork-incoming=ozlabs.org@vger.kernel.org;\n receiver=ozlabs.org) smtp.mailfrom=vger.kernel.org","i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=mit.edu;\n spf=pass smtp.mailfrom=mit.edu;\n dkim=pass (2048-bit key) header.d=mit.edu header.i=@mit.edu\n header.b=Xhp9gGt0; arc=none smtp.client-ip=18.9.28.11"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=mit.edu; s=outgoing;\n\tt=1775189015; bh=gVpCksOP+qT9v9bAENj/GDIDBmyQHkd9l6NiYSzX5rw=;\n\th=From:Subject:Date:Message-ID:MIME-Version;\n\tb=Xhp9gGt0MwQalKNEKp/7oeAXGMKGdKaxbUXs+12IwbSbBnB2fa1ppRLgrfqDXywVa\n\t 8zHUHQLFpXaygMgoQJAugiiuBbTDoLYnLHGrBzIEJyumlMjnxywMzKdx1fH0kJq9VN\n\t E3HJJmDnflVWHafpjgTJnx2SlF0IWEKGedPuKGjypfUgkSAgtlQ8rLY7zYpMWRsBPl\n\t IsACxdCqFA5OsUViGQmqa9dydO1OC6c8Uj705nI4NVYSMfZML0ep9FTcb2SsbhcxFR\n\t DrxuhZFpONboirH53/Rmaa4V0bQSl5Cb5qLQDPYcOpKhZ5XB1jZW3JAHghEH5hhToi\n\t fTFSWz5c/oLdg==","From":"\"Theodore Ts'o\" <tytso@mit.edu>","To":"Ext4 Developers List <linux-ext4@vger.kernel.org>","Cc":"\"Darrick J. Wong\" <djwong@kernel.org>, \"Theodore Ts'o\" <tytso@mit.edu>","Subject":"[PATCH 2/3] libsupport: add a portable get_thread_id() function","Date":"Fri,  3 Apr 2026 00:03:27 -0400","Message-ID":"<20260403040328.2385083-3-tytso@mit.edu>","X-Mailer":"git-send-email 2.51.0","In-Reply-To":"<20260403040328.2385083-1-tytso@mit.edu>","References":"<20260403040328.2385083-1-tytso@mit.edu>","Precedence":"bulk","X-Mailing-List":"linux-ext4@vger.kernel.org","List-Id":"<linux-ext4.vger.kernel.org>","List-Subscribe":"<mailto:linux-ext4+subscribe@vger.kernel.org>","List-Unsubscribe":"<mailto:linux-ext4+unsubscribe@vger.kernel.org>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-Spam-Status":"No, score=-1.2 required=5.0 tests=ARC_SIGNED,ARC_VALID,\n\tDKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DMARC_PASS,\n\tHEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,\n\tSPF_PASS autolearn=disabled version=4.0.1","X-Spam-Checker-Version":"SpamAssassin 4.0.1 (2024-03-25) on gandalf.ozlabs.org"},"content":"The gettid() system call is only available on Linux.  So create a new\nfunction, get_thread_id() which implements a number of different ways\nof providing a thread id as an integer.\n\nUse get_thread_id() instead of gettid() in fuse2fs.\n\nSigned-off-by: Theodore Ts'o <tytso@mit.edu>\n---\n configure               | 12 ++++++++++++\n configure.ac            |  2 ++\n lib/config.h.in         |  6 ++++++\n lib/support/Makefile.in | 13 +++++++++++--\n lib/support/thread.c    | 36 ++++++++++++++++++++++++++++++++++++\n lib/support/thread.h    |  5 +++++\n misc/fuse2fs.c          |  3 ++-\n 7 files changed, 74 insertions(+), 3 deletions(-)\n create mode 100644 lib/support/thread.c\n create mode 100644 lib/support/thread.h","diff":"diff --git a/configure b/configure\nindex b9a82dcec..b04b31aff 100755\n--- a/configure\n+++ b/configure\n@@ -13749,6 +13749,12 @@ if test \"x$ac_cv_func_getrusage\" = xyes\n then :\n   printf \"%s\\n\" \"#define HAVE_GETRUSAGE 1\" >>confdefs.h\n \n+fi\n+ac_fn_c_check_func \"$LINENO\" \"gettid\" \"ac_cv_func_gettid\"\n+if test \"x$ac_cv_func_gettid\" = xyes\n+then :\n+  printf \"%s\\n\" \"#define HAVE_GETTID 1\" >>confdefs.h\n+\n fi\n ac_fn_c_check_func \"$LINENO\" \"jrand48\" \"ac_cv_func_jrand48\"\n if test \"x$ac_cv_func_jrand48\" = xyes\n@@ -13893,6 +13899,12 @@ if test \"x$ac_cv_func_pthread_setname_np\" = xyes\n then :\n   printf \"%s\\n\" \"#define HAVE_PTHREAD_SETNAME_NP 1\" >>confdefs.h\n \n+fi\n+ac_fn_c_check_func \"$LINENO\" \"pthread_threadid_np\" \"ac_cv_func_pthread_threadid_np\"\n+if test \"x$ac_cv_func_pthread_threadid_np\" = xyes\n+then :\n+  printf \"%s\\n\" \"#define HAVE_PTHREAD_THREADID_NP 1\" >>confdefs.h\n+\n fi\n ac_fn_c_check_func \"$LINENO\" \"qsort_r\" \"ac_cv_func_qsort_r\"\n if test \"x$ac_cv_func_qsort_r\" = xyes\ndiff --git a/configure.ac b/configure.ac\nindex 2473879fd..4921f81f7 100644\n--- a/configure.ac\n+++ b/configure.ac\n@@ -1246,6 +1246,7 @@ AC_CHECK_FUNCS(m4_flatten([\n \tgetrandom\n \tgetrlimit\n \tgetrusage\n+\tgettid\n \tjrand48\n \tkeyctl\n \tllistxattr\n@@ -1270,6 +1271,7 @@ AC_CHECK_FUNCS(m4_flatten([\n \tpread64\n \tpwrite64\n \tpthread_setname_np\n+\tpthread_threadid_np\n \tqsort_r\n \tsecure_getenv\n \tsetmntent\ndiff --git a/lib/config.h.in b/lib/config.h.in\nindex c6cbced5f..f129abfe7 100644\n--- a/lib/config.h.in\n+++ b/lib/config.h.in\n@@ -181,6 +181,9 @@\n /* Define if the GNU gettext() function is already present or preinstalled. */\n #undef HAVE_GETTEXT\n \n+/* Define to 1 if you have the 'gettid' function. */\n+#undef HAVE_GETTID\n+\n /* Define to 1 if you have the GNU-style 'qsort_r' function. */\n #undef HAVE_GNU_QSORT_R\n \n@@ -331,6 +334,9 @@\n /* Define to 1 if you have the 'pthread_setname_np' function. */\n #undef HAVE_PTHREAD_SETNAME_NP\n \n+/* Define to 1 if you have the 'pthread_threadid_np' function. */\n+#undef HAVE_PTHREAD_THREADID_NP\n+\n /* Define to 1 if you have the 'pwrite' function. */\n #undef HAVE_PWRITE\n \ndiff --git a/lib/support/Makefile.in b/lib/support/Makefile.in\nindex 6383816fd..9aac9cf00 100644\n--- a/lib/support/Makefile.in\n+++ b/lib/support/Makefile.in\n@@ -25,6 +25,7 @@ OBJS=\t\tbthread.o \\\n \t\tquotaio.o \\\n \t\tquotaio_v2.o \\\n \t\tquotaio_tree.o \\\n+\t\tthread.o \\\n \t\tdict.o \\\n \t\tdevname.o\n \n@@ -41,6 +42,7 @@ SRCS=\t\t$(srcdir)/argv_parse.c \\\n \t\t$(srcdir)/quotaio.c \\\n \t\t$(srcdir)/quotaio_tree.c \\\n \t\t$(srcdir)/quotaio_v2.c \\\n+\t\t$(srcdir)/thread.c \\\n \t\t$(srcdir)/dict.c \\\n \t\t$(srcdir)/devname.c\n \n@@ -81,10 +83,15 @@ test_cstring: $(srcdir)/cstring.c\n \t$(Q) $(CC) -o test_cstring -DDEBUG_PROGRAM $(srcdir)/cstring.c \\\n \t\t$(ALL_CFLAGS)\n \n+test_thread: $(srcdir)/thread.c\n+\t$(E) \" CC $@\"\n+\t$(Q) $(CC) -o test_thread -DDEBUG_PROGRAM $(srcdir)/thread.c \\\n+\t\t$(ALL_CFLAGS)\n+\n clean::\n \t$(RM) -f \\#* *.s *.o *.a *~ *.bak core profiled/* \\\n \t\t../libsupport.a ../libsupport_p.a $(SMANPAGES) \\\n-\t\tprof_err.c prof_err.h test_profile test_cstring\n+\t\tprof_err.c prof_err.h test_profile test_cstring test_thread\n \n #fullcheck check:: tst_uuid\n #\tLD_LIBRARY_PATH=$(LIB) DYLD_LIBRARY_PATH=$(LIB) ./tst_uuid\n@@ -111,7 +118,7 @@ $(OBJS):\n argv_parse.o: $(srcdir)/argv_parse.c $(top_builddir)/lib/config.h \\\n  $(top_builddir)/lib/dirpaths.h $(srcdir)/argv_parse.h\n bthread.o: $(srcdir)/bthread.c $(top_builddir)/lib/config.h \\\n- $(srcdir)/bthread.h\n+ $(top_builddir)/lib/dirpaths.h $(srcdir)/bthread.h\n cstring.o: $(srcdir)/cstring.c $(top_builddir)/lib/config.h \\\n  $(top_builddir)/lib/dirpaths.h $(srcdir)/cstring.h\n mkquota.o: $(srcdir)/mkquota.c $(top_builddir)/lib/config.h \\\n@@ -183,6 +190,8 @@ quotaio_v2.o: $(srcdir)/quotaio_v2.c $(top_builddir)/lib/config.h \\\n  $(top_srcdir)/lib/ext2fs/ext2_ext_attr.h $(top_srcdir)/lib/ext2fs/hashmap.h \\\n  $(top_srcdir)/lib/ext2fs/bitops.h $(srcdir)/dqblk_v2.h \\\n  $(srcdir)/quotaio_tree.h\n+thread.o: $(srcdir)/thread.c $(top_builddir)/lib/config.h \\\n+ $(top_builddir)/lib/dirpaths.h $(srcdir)/thread.h\n dict.o: $(srcdir)/dict.c $(top_builddir)/lib/config.h \\\n  $(top_builddir)/lib/dirpaths.h $(srcdir)/dict.h\n devname.o: $(srcdir)/devname.c $(top_builddir)/lib/config.h \\\ndiff --git a/lib/support/thread.c b/lib/support/thread.c\nnew file mode 100644\nindex 000000000..a9a10940c\n--- /dev/null\n+++ b/lib/support/thread.c\n@@ -0,0 +1,36 @@\n+/*\n+ * thread.c - utility functions for Posix threads\n+ */\n+\n+#include \"config.h\"\n+#ifdef HAVE_PTHREAD\n+#include <pthread.h>\n+#endif\n+#include <stdint.h>\n+#include <stdio.h>\n+#include <unistd.h>\n+\n+#include \"support/thread.h\"\n+\n+uint64_t get_thread_id(void)\n+{\n+#if defined(HAVE_GETTID)\n+\treturn gettid();\n+#elif defined(HAVE_PTHREAD_THREADID_NP)\n+\tuint64_t tid;\n+\n+\tif (pthread_threadid_np(NULL, &tid))\n+\t\treturn tid;\n+#elif defined(HAVE_PTHREAD)\n+\treturn (__u64)(uintptr_t) pthread_self();\n+#endif\n+\treturn getpid();\n+}\n+\n+#ifdef DEBUG_PROGRAM\n+int main(int argc, char **argv)\n+{\n+\tprintf(\"Thread id: %llu\\n\", get_thread_id());\n+\treturn 0;\n+}\n+#endif\ndiff --git a/lib/support/thread.h b/lib/support/thread.h\nnew file mode 100644\nindex 000000000..9a7f5c9db\n--- /dev/null\n+++ b/lib/support/thread.h\n@@ -0,0 +1,5 @@\n+/*\n+ * thread.h -- header file for thread utilities\n+ */\n+\n+uint64_t get_thread_id(void);\ndiff --git a/misc/fuse2fs.c b/misc/fuse2fs.c\nindex 0b43ec0fb..dfbc98636 100644\n--- a/misc/fuse2fs.c\n+++ b/misc/fuse2fs.c\n@@ -48,6 +48,7 @@\n #include \"ext2fs/ext2_fs.h\"\n #include \"ext2fs/ext2fsP.h\"\n #include \"support/bthread.h\"\n+#include \"support/thread.h\"\n #if FUSE_VERSION >= FUSE_MAKE_VERSION(3, 0)\n # define FUSE_PLATFORM_OPTS\t\"\"\n #else\n@@ -148,7 +149,7 @@ static inline uint64_t round_down(uint64_t b, unsigned int align)\n \n #define dbg_printf(fuse2fs, format, ...) \\\n \twhile ((fuse2fs)->debug) { \\\n-\t\tprintf(\"FUSE2FS (%s): tid=%d \" format, (fuse2fs)->shortdev, gettid(), ##__VA_ARGS__); \\\n+\t\tprintf(\"FUSE2FS (%s): tid=%llu \" format, (fuse2fs)->shortdev, get_thread_id(), ##__VA_ARGS__); \\\n \t\tfflush(stdout); \\\n \t\tbreak; \\\n \t}\n","prefixes":["2/3"]}