From nobody Sat Apr 29 18:08:02 2023
X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
	by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Q7yBV6kjXz483lQ;
	Sat, 29 Apr 2023 18:08:02 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256
	 client-signature RSA-PSS (4096 bits) client-digest SHA256)
	(Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK))
	by mx1.freebsd.org (Postfix) with ESMTPS id 4Q7yBV6DDRz3H6X;
	Sat, 29 Apr 2023 18:08:02 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim;
	t=1682791682;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=uUh0jZTzgSzUPaCXvi0NIbOtgmT9YlM/i7WZXt3QtGk=;
	b=IGcD25ZEh6gZb0+pj8UX+/PeFTsgG9+u9N1owrk5HSp80+bHrM77a6TOtBgEgtOU3yudD2
	tNBRBe6NZhs0a3VvsPggIsA2Zg+1AUG7u9q3NP3UQlsbxegQIxEg/E/k+0aDY6lhmtEVIg
	e6sUerLti2aouAm58ngowcK9Ry35xtDlSWKKwudSoSF44g/YT5pbYipn5cGl8MTTTdnd6j
	V5OcaBpqsur35VtXgZDUPy4/HoWMx1sI3wC+zFvfGOU34/sJINVDZSpe79rxyvAIUJeFyU
	iDodvoivAE1bMIYu1UfK0tKdGl8oIEPzQdwWBVTjLSlTB2npydPnOWiA3PIbCg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org;
	s=dkim; t=1682791682;
	h=from:from:reply-to:subject:subject:date:date:message-id:message-id:
	 to:to:cc:mime-version:mime-version:content-type:content-type:
	 content-transfer-encoding:content-transfer-encoding;
	bh=uUh0jZTzgSzUPaCXvi0NIbOtgmT9YlM/i7WZXt3QtGk=;
	b=W1RVbGTabOtumnapWMUsX6iGxsmD8j5CVFB9FVJcwySegjrk+UabcKS8NHAjc+rqZ8B1Zf
	8l0IAaUs1fSe9/Ovhl+kNQzqfG0ovDyWMI4Giky6JuhHnwHKfK3GYcxapAdAd1rQMcHuC7
	NuXi65DqKFFi+RcypyZsGpuvG1Y2UsjDcsvO6a9XQMyTV/o2BmTuNAdhS2uRrZnOQF43Od
	Epjd8KV9JHvVaaVdHxH+Emug652F78+9KwqNBfAbJQ7ek9RzefVKLI+5drvJDKT/W4E+5v
	tyr4mYl6OwhMlRso+Vv0VQPEHHeoisW+Zl7fCSJnWcxWSeNwLQwlQDeRBFdE6Q==
ARC-Authentication-Results: i=1;
	mx1.freebsd.org;
	none
ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1682791682; a=rsa-sha256; cv=none;
	b=GnPQ3TbOYJoAbLJOTwYFivFNlzam0uDxg4PZZtj3y0v1bhjA8rSwVP6rh8g61cnXHZhkib
	5KR+l/Si5qNVGqi42eyXcq4vRqi0fXcuVZ/FHcnyN7SbGV0xc/6cZzCWZBtB262GyJaRx8
	kJvcBjClWxsvxvjYoIqi2RQYB8YrCAzYLnvvzrxLrzCdDHqyQViWapfa6gCpZ2MWoQWYhB
	DXCIc8mMtVOF8lR4qjX/mFCc3Tzc8LGOVrJQUyz584gZUMS2RowBXJwId9p91FlhqJ18Le
	dJ+KBA6XYjQPmGMS+QWgbqbE0EY1urYSiE0I4hC7OJ/hmOxDW8zakoi2Qn7IFQ==
Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256)
	(Client did not present a certificate)
	by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Q7yBV5GNszrxx;
	Sat, 29 Apr 2023 18:08:02 +0000 (UTC)
	(envelope-from git@FreeBSD.org)
Received: from gitrepo.freebsd.org ([127.0.1.44])
	by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 33TI82K9003237;
	Sat, 29 Apr 2023 18:08:02 GMT
	(envelope-from git@gitrepo.freebsd.org)
Received: (from git@localhost)
	by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 33TI82JA003236;
	Sat, 29 Apr 2023 18:08:02 GMT
	(envelope-from git)
Date: Sat, 29 Apr 2023 18:08:02 GMT
Message-Id: <202304291808.33TI82JA003236@gitrepo.freebsd.org>
To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org,
        dev-commits-src-branches@FreeBSD.org
From: Kirk McKusick <mckusick@FreeBSD.org>
Subject: git: 146ba7a1d60c - stable/13 - Add `chdb' command to fsdb(8) to set direct block numbers.
List-Id: Commit messages for all branches of the src repository <dev-commits-src-all.freebsd.org>
List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all
List-Help: <mailto:dev-commits-src-all+help@freebsd.org>
List-Post: <mailto:dev-commits-src-all@freebsd.org>
List-Subscribe: <mailto:dev-commits-src-all+subscribe@freebsd.org>
List-Unsubscribe: <mailto:dev-commits-src-all+unsubscribe@freebsd.org>
Sender: owner-dev-commits-src-all@freebsd.org
X-BeenThere: dev-commits-src-all@freebsd.org
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Git-Committer: mckusick
X-Git-Repository: src
X-Git-Refname: refs/heads/stable/13
X-Git-Reftype: branch
X-Git-Commit: 146ba7a1d60c7ab8959d41ccfdd2543cc5d18b34
Auto-Submitted: auto-generated
X-ThisMailContainsUnwantedMimeParts: N

The branch stable/13 has been updated by mckusick:

URL: https://cgit.FreeBSD.org/src/commit/?id=146ba7a1d60c7ab8959d41ccfdd2543cc5d18b34

commit 146ba7a1d60c7ab8959d41ccfdd2543cc5d18b34
Author:     Kirk McKusick <mckusick@FreeBSD.org>
AuthorDate: 2023-04-18 05:42:32 +0000
Commit:     Kirk McKusick <mckusick@FreeBSD.org>
CommitDate: 2023-04-29 18:04:53 +0000

    Add `chdb' command to fsdb(8) to set direct block numbers.
    
    (cherry picked from commit 7636973c68f15419a71bc8e4253b2fbae3258025)
---
 sbin/fsdb/fsdb.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/sbin/fsdb/fsdb.c b/sbin/fsdb/fsdb.c
index 4d66194bf86d..f907ea160a16 100644
--- a/sbin/fsdb/fsdb.c
+++ b/sbin/fsdb/fsdb.c
@@ -161,6 +161,7 @@ CMDFUNC(chatime);			/* Change atime */
 CMDFUNC(chinum);			/* Change inode # of dirent */
 CMDFUNC(chname);			/* Change dirname of dirent */
 CMDFUNC(chsize);			/* Change size */
+CMDFUNC(chdb);				/* Change direct block pointer */
 
 struct cmdtable cmds[] = {
 	{ "help", "Print out help", 1, 1, FL_RO, helpfn },
@@ -195,6 +196,7 @@ struct cmdtable cmds[] = {
 	{ "mtime", "Change mtime of current inode to MTIME", 2, 2, FL_WR, chmtime },
 	{ "ctime", "Change ctime of current inode to CTIME", 2, 2, FL_WR, chctime },
 	{ "atime", "Change atime of current inode to ATIME", 2, 2, FL_WR, chatime },
+	{ "chdb", "Change db pointer N of current inode to BLKNO", 3, 3, FL_WR, chdb },
 	{ "quit", "Exit", 1, 1, FL_RO, quit },
 	{ "q", "Exit", 1, 1, FL_RO, quit },
 	{ "exit", "Exit", 1, 1, FL_RO, quit },
@@ -1046,6 +1048,36 @@ CMDFUNCSTART(chsize)
     return rval;
 }
 
+CMDFUNC(chdb)
+{
+	unsigned int idx;
+	daddr_t bno;
+	char *cp;
+
+	if (!checkactive())
+		return 1;
+
+	idx = strtoull(argv[1], &cp, 0);
+	if (cp == argv[1] || *cp != '\0') {
+		warnx("bad pointer idx `%s'", argv[1]);
+		return 1;
+	}
+	bno = strtoll(argv[2], &cp, 0);
+	if (cp == argv[2] || *cp != '\0') {
+		warnx("bad block number `%s'", argv[2]);
+		return 1;
+	}
+	if (idx >= UFS_NDADDR) {
+		warnx("pointer index %d is out of range", idx);
+		return 1;
+	}
+
+	DIP_SET(curinode, di_db[idx], bno);
+	inodirty(&curip);
+	printactive(0);
+	return 0;
+}
+
 CMDFUNCSTART(linkcount)
 {
     int rval = 1;