git: 5c7ba6bdf83f - main - Fix for tunefs(8) unable to add a UFS/FFS soft update journal.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 12 Nov 2022 23:37:48 UTC
The branch main has been updated by mckusick: URL: https://cgit.FreeBSD.org/src/commit/?id=5c7ba6bdf83fda82cce70f384e2ec8218f13002e commit 5c7ba6bdf83fda82cce70f384e2ec8218f13002e Author: Kirk McKusick <mckusick@FreeBSD.org> AuthorDate: 2022-11-12 23:36:07 +0000 Commit: Kirk McKusick <mckusick@FreeBSD.org> CommitDate: 2022-11-12 23:37:27 +0000 Fix for tunefs(8) unable to add a UFS/FFS soft update journal. The reported bug is UFS: bad file descriptor: soft update journaling can not be enabled on some FreeBSD-provided disk images – failed to write updated cg. The UFS library (libufs(3)) failed to reopen its disk descriptor when first attempting to update a cylinder group. The error only occurred when trying to add journaling to a filesystem whose first cylinder group was too full to hold the journal. PR: 259090 MFC after: 1 week Sponsored by: The FreeBSD Foundation --- lib/libufs/cgroup.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/libufs/cgroup.c b/lib/libufs/cgroup.c index 90b28eadad2c..2058d16e9b6d 100644 --- a/lib/libufs/cgroup.c +++ b/lib/libufs/cgroup.c @@ -268,6 +268,10 @@ cgwrite1(struct uufsd *disk, int cg) static char errmsg[BUFSIZ]; if (cg == disk->d_cg.cg_cgx) { + if (ufs_disk_write(disk) == -1) { + ERROR(disk, "failed to open disk for writing"); + return (-1); + } if (cgput(disk->d_fd, &disk->d_fs, &disk->d_cg) == 0) return (0); ERROR(disk, NULL);