Date: Tue, 2 Jul 2024 13:22:36 GMT From: Mark Johnston <markj@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 1a0314d6e305 - stable/14 - ctladm: Fix a race when loading ctl.ko Message-ID: <202407021322.462DMaQL021236@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=1a0314d6e30554fc2b07caa5121b00956f416cc4 commit 1a0314d6e30554fc2b07caa5121b00956f416cc4 Author: Mark Johnston <markj@FreeBSD.org> AuthorDate: 2024-06-24 15:09:18 +0000 Commit: Mark Johnston <markj@FreeBSD.org> CommitDate: 2024-07-02 13:19:29 +0000 ctladm: Fix a race when loading ctl.ko If multiple ctladm processes try to load ctl.ko at the same time, only one will succeed. Handle this possibility by retrying the operation (open /dev/cam/ctl) if kldload returns EEXIST, rather than bailing. This at least helps ensure that ctladm tests can be run in parallel when ctl.ko is not preloaded. Reviewed by: asomers MFC after: 1 week (cherry picked from commit 7d6932d20aedbbb220cd78e90ab4e82d1abaad31) --- usr.sbin/ctladm/ctladm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/usr.sbin/ctladm/ctladm.c b/usr.sbin/ctladm/ctladm.c index e99610373ff0..228af7bae8c6 100644 --- a/usr.sbin/ctladm/ctladm.c +++ b/usr.sbin/ctladm/ctladm.c @@ -4133,7 +4133,7 @@ main(int argc, char **argv) if (fd == -1 && errno == ENOENT) { saved_errno = errno; retval = kldload("ctl"); - if (retval != -1) + if (retval != -1 || errno == EEXIST) fd = open(device, O_RDWR); else errno = saved_errno;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202407021322.462DMaQL021236>