From nobody Sat Apr 29 18:08:02 2023 X-Original-To: dev-commits-src-branches@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 Subject: git: 146ba7a1d60c - stable/13 - Add `chdb' command to fsdb(8) to set direct block numbers. List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@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 AuthorDate: 2023-04-18 05:42:32 +0000 Commit: Kirk McKusick 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;