From: "Darrick J. Wong" <djwong@kernel.org>
To: sandeen@sandeen.net, djwong@kernel.org
Cc: linux-xfs@vger.kernel.org
Subject: [PATCH 3/4] xfs_scrub: load and unload libicu properly
Date: Fri, 15 Jan 2021 17:25:30 -0800 [thread overview]
Message-ID: <161076033047.3386689.5046709914905631064.stgit@magnolia> (raw)
In-Reply-To: <161076031261.3386689.3320804567045193864.stgit@magnolia>
From: Darrick J. Wong <djwong@kernel.org>
Make sure we actually load and unload libicu properly. This isn't
strictly required since the library can bootstrap itself, but unloading
means fewer things for valgrind to complain about.
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
---
scrub/unicrash.c | 17 +++++++++++++++++
scrub/unicrash.h | 4 ++++
scrub/xfs_scrub.c | 6 ++++++
3 files changed, 27 insertions(+)
diff --git a/scrub/unicrash.c b/scrub/unicrash.c
index d5d2cf20..de3217c2 100644
--- a/scrub/unicrash.c
+++ b/scrub/unicrash.c
@@ -722,3 +722,20 @@ unicrash_check_fs_label(
return __unicrash_check_name(uc, dsc, _("filesystem label"),
label, 0);
}
+
+/* Load libicu and initialize it. */
+bool
+unicrash_load(void)
+{
+ UErrorCode uerr = U_ZERO_ERROR;
+
+ u_init(&uerr);
+ return U_FAILURE(uerr);
+}
+
+/* Unload libicu once we're done with it. */
+void
+unicrash_unload(void)
+{
+ u_cleanup();
+}
diff --git a/scrub/unicrash.h b/scrub/unicrash.h
index c3a7f385..755afaef 100644
--- a/scrub/unicrash.h
+++ b/scrub/unicrash.h
@@ -25,6 +25,8 @@ int unicrash_check_xattr_name(struct unicrash *uc, struct descr *dsc,
const char *attrname);
int unicrash_check_fs_label(struct unicrash *uc, struct descr *dsc,
const char *label);
+bool unicrash_load(void);
+void unicrash_unload(void);
#else
# define unicrash_dir_init(u, c, b) (0)
# define unicrash_xattr_init(u, c, b) (0)
@@ -33,6 +35,8 @@ int unicrash_check_fs_label(struct unicrash *uc, struct descr *dsc,
# define unicrash_check_dir_name(u, d, n) (0)
# define unicrash_check_xattr_name(u, d, n) (0)
# define unicrash_check_fs_label(u, d, n) (0)
+# define unicrash_load() (0)
+# define unicrash_unload() do { } while (0)
#endif /* HAVE_LIBICU */
#endif /* XFS_SCRUB_UNICRASH_H_ */
diff --git a/scrub/xfs_scrub.c b/scrub/xfs_scrub.c
index 1edeb150..6b202912 100644
--- a/scrub/xfs_scrub.c
+++ b/scrub/xfs_scrub.c
@@ -603,6 +603,11 @@ main(
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
textdomain(PACKAGE);
+ if (unicrash_load()) {
+ fprintf(stderr,
+ _("%s: could initialize Unicode library.\n"), progname);
+ goto out;
+ }
pthread_mutex_init(&ctx.lock, NULL);
ctx.mode = SCRUB_MODE_REPAIR;
@@ -788,6 +793,7 @@ main(
phase_end(&all_pi, 0);
if (progress_fp)
fclose(progress_fp);
+ unicrash_unload();
/*
* If we're being run as a service, the return code must fit the LSB
next prev parent reply other threads:[~2021-01-16 1:26 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-16 1:25 [PATCHSET v2 0/4] various: random fixes Darrick J. Wong
2021-01-16 1:25 ` [PATCH 1/4] misc: fix valgrind complaints Darrick J. Wong
2021-01-18 4:33 ` Chandan Babu R
2021-01-19 2:55 ` Chaitanya Kulkarni
2021-01-16 1:25 ` [PATCH 2/4] xfs_scrub: detect infinite loops when scanning inodes Darrick J. Wong
2021-01-18 4:57 ` Chandan Babu R
2021-01-16 1:25 ` Darrick J. Wong [this message]
2021-01-18 4:45 ` [PATCH 3/4] xfs_scrub: load and unload libicu properly Chandan Babu R
2021-01-18 19:19 ` [PATCH v2.1 " Darrick J. Wong
2021-01-16 1:25 ` [PATCH 4/4] xfs_scrub: handle concurrent directory updates during name scan Darrick J. Wong
2021-01-18 4:47 ` Chandan Babu R
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=161076033047.3386689.5046709914905631064.stgit@magnolia \
--to=djwong@kernel.org \
--cc=linux-xfs@vger.kernel.org \
--cc=sandeen@sandeen.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).