git: 231985152cf7 - stable/14 - ufs: change isrmdir type to bool or u_int as appropriate
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 06 Aug 2025 00:28:32 UTC
The branch stable/14 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=231985152cf71d57bd19a518138cbd6da13f4ac4
commit 231985152cf71d57bd19a518138cbd6da13f4ac4
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-07-29 13:35:17 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-08-06 00:26:33 +0000
ufs: change isrmdir type to bool or u_int as appropriate
(cherry picked from commit 6f4de208eddec8556da1beba6e732f8abbbd8d8e)
---
sys/ufs/ffs/ffs_softdep.c | 20 ++++++++++----------
sys/ufs/ufs/ufs_extern.h | 8 ++++----
sys/ufs/ufs/ufs_lookup.c | 7 ++++---
sys/ufs/ufs/ufs_vnops.c | 8 ++++----
4 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/sys/ufs/ffs/ffs_softdep.c b/sys/ufs/ffs/ffs_softdep.c
index edf064549d85..54a0466da88c 100644
--- a/sys/ufs/ffs/ffs_softdep.c
+++ b/sys/ufs/ffs/ffs_softdep.c
@@ -276,7 +276,7 @@ void
softdep_setup_remove(struct buf *bp,
struct inode *dp,
struct inode *ip,
- int isrmdir)
+ bool isrmdir)
{
panic("softdep_setup_remove called");
@@ -287,7 +287,7 @@ softdep_setup_directory_change(struct buf *bp,
struct inode *dp,
struct inode *ip,
ino_t newinum,
- int isrmdir)
+ u_int newparent)
{
panic("softdep_setup_directory_change called");
@@ -767,7 +767,7 @@ static void initiate_write_inodeblock_ufs2(struct inodedep *, struct buf *);
static void handle_workitem_freefile(struct freefile *);
static int handle_workitem_remove(struct dirrem *, int);
static struct dirrem *newdirrem(struct buf *, struct inode *,
- struct inode *, int, struct dirrem **);
+ struct inode *, bool, struct dirrem **);
static struct indirdep *indirdep_lookup(struct mount *, struct inode *,
struct buf *);
static void cancel_indirdep(struct indirdep *, struct buf *,
@@ -9173,7 +9173,7 @@ softdep_setup_remove(
struct buf *bp, /* buffer containing directory block */
struct inode *dp, /* inode for the directory being modified */
struct inode *ip, /* inode for directory entry being removed */
- int isrmdir) /* indicates if doing RMDIR */
+ bool isrmdir) /* indicates if doing RMDIR */
{
struct dirrem *dirrem, *prevdirrem;
struct inodedep *inodedep;
@@ -9365,7 +9365,7 @@ newdirrem(
struct buf *bp, /* buffer containing directory block */
struct inode *dp, /* inode for the directory being modified */
struct inode *ip, /* inode for directory entry being removed */
- int isrmdir, /* indicates if doing RMDIR */
+ bool isrmdir, /* indicates if doing RMDIR */
struct dirrem **prevdirremp) /* previously referenced inode, if any */
{
int offset;
@@ -9494,7 +9494,7 @@ newdirrem(
dirrem->dm_state |= COMPLETE;
cancel_diradd(dap, dirrem, jremref, dotremref, dotdotremref);
#ifdef INVARIANTS
- if (isrmdir == 0) {
+ if (!isrmdir) {
struct worklist *wk;
LIST_FOREACH(wk, &dirrem->dm_jwork, wk_list)
@@ -9529,7 +9529,7 @@ softdep_setup_directory_change(
struct inode *dp, /* inode for the directory being modified */
struct inode *ip, /* inode for directory entry being removed */
ino_t newinum, /* new inode number for changed entry */
- int isrmdir) /* indicates if doing RMDIR */
+ u_int newparent) /* indicates if doing RMDIR */
{
int offset;
struct diradd *dap = NULL;
@@ -9562,10 +9562,10 @@ softdep_setup_directory_change(
/*
* Allocate a new dirrem and ACQUIRE_LOCK.
*/
- dirrem = newdirrem(bp, dp, ip, isrmdir, &prevdirrem);
+ dirrem = newdirrem(bp, dp, ip, newparent != 0, &prevdirrem);
pagedep = dirrem->dm_pagedep;
/*
- * The possible values for isrmdir:
+ * The possible values for newparent:
* 0 - non-directory file rename
* 1 - directory rename within same directory
* inum - directory rename to new directory of given inode number
@@ -9576,7 +9576,7 @@ softdep_setup_directory_change(
* the DIRCHG flag to tell handle_workitem_remove to skip the
* followup dirrem.
*/
- if (isrmdir > 1)
+ if (newparent > 1)
dirrem->dm_state |= DIRCHG;
/*
diff --git a/sys/ufs/ufs/ufs_extern.h b/sys/ufs/ufs/ufs_extern.h
index 1403c6832cb0..ba6a4de71735 100644
--- a/sys/ufs/ufs/ufs_extern.h
+++ b/sys/ufs/ufs/ufs_extern.h
@@ -68,8 +68,8 @@ void ufs_makedirentry(struct inode *, struct componentname *,
struct direct *);
int ufs_direnter(struct vnode *, struct vnode *, struct direct *,
struct componentname *, struct buf *);
-int ufs_dirremove(struct vnode *, struct inode *, int, int);
-int ufs_dirrewrite(struct inode *, struct inode *, ino_t, int, int);
+int ufs_dirremove(struct vnode *, struct inode *, int, bool);
+int ufs_dirrewrite(struct inode *, struct inode *, ino_t, int, u_int);
int ufs_lookup_ino(struct vnode *, struct vnode **, struct componentname *,
ino_t *);
int ufs_getlbns(struct vnode *, ufs2_daddr_t, struct indir *, int *);
@@ -95,9 +95,9 @@ int softdep_setup_directory_add(struct buf *, struct inode *, off_t,
ino_t, struct buf *, int);
void softdep_change_directoryentry_offset(struct buf *, struct inode *,
caddr_t, caddr_t, caddr_t, int);
-void softdep_setup_remove(struct buf *,struct inode *, struct inode *, int);
+void softdep_setup_remove(struct buf *,struct inode *, struct inode *, bool);
void softdep_setup_directory_change(struct buf *, struct inode *,
- struct inode *, ino_t, int);
+ struct inode *, ino_t, u_int);
void softdep_change_linkcnt(struct inode *);
int softdep_slowdown(struct vnode *);
void softdep_setup_create(struct inode *, struct inode *);
diff --git a/sys/ufs/ufs/ufs_lookup.c b/sys/ufs/ufs/ufs_lookup.c
index 0beeeed32251..423c4c2e4e28 100644
--- a/sys/ufs/ufs/ufs_lookup.c
+++ b/sys/ufs/ufs/ufs_lookup.c
@@ -1103,7 +1103,7 @@ ufs_direnter(struct vnode *dvp, struct vnode *tvp, struct direct *dirp,
* to the size of the previous entry.
*/
int
-ufs_dirremove(struct vnode *dvp, struct inode *ip, int flags, int isrmdir)
+ufs_dirremove(struct vnode *dvp, struct inode *ip, int flags, bool isrmdir)
{
struct inode *dp;
struct direct *ep, *rep;
@@ -1226,7 +1226,7 @@ out:
*/
int
ufs_dirrewrite(struct inode *dp, struct inode *oip, ino_t newinum, int newtype,
- int isrmdir)
+ u_int newparent)
{
struct buf *bp;
struct direct *ep;
@@ -1269,7 +1269,8 @@ ufs_dirrewrite(struct inode *dp, struct inode *oip, ino_t newinum, int newtype,
if (!OFSFMT(vdp))
ep->d_type = newtype;
if (DOINGSOFTDEP(vdp)) {
- softdep_setup_directory_change(bp, dp, oip, newinum, isrmdir);
+ softdep_setup_directory_change(bp, dp, oip, newinum,
+ newparent);
bdwrite(bp);
} else {
if (DOINGASYNC(vdp)) {
diff --git a/sys/ufs/ufs/ufs_vnops.c b/sys/ufs/ufs/ufs_vnops.c
index 3621d072f608..bc62ad59ff00 100644
--- a/sys/ufs/ufs/ufs_vnops.c
+++ b/sys/ufs/ufs/ufs_vnops.c
@@ -1053,7 +1053,7 @@ ufs_remove(
#ifdef UFS_GJOURNAL
ufs_gjournal_orphan(vp);
#endif
- error = ufs_dirremove(dvp, ip, ap->a_cnp->cn_flags, 0);
+ error = ufs_dirremove(dvp, ip, ap->a_cnp->cn_flags, false);
if (ip->i_nlink <= 0)
vp->v_vflag |= VV_NOSYNC;
if (IS_SNAPSHOT(ip)) {
@@ -1211,7 +1211,7 @@ ufs_whiteout(
#endif
cnp->cn_flags &= ~DOWHITEOUT;
- error = ufs_dirremove(dvp, NULL, cnp->cn_flags, 0);
+ error = ufs_dirremove(dvp, NULL, cnp->cn_flags, false);
break;
default:
panic("ufs_whiteout: unknown op");
@@ -1740,7 +1740,7 @@ relock:
"rename: missing .. entry");
cache_purge(fdvp);
}
- error = ufs_dirremove(fdvp, fip, fcnp->cn_flags, 0);
+ error = ufs_dirremove(fdvp, fip, fcnp->cn_flags, false);
/*
* The kern_renameat() looks up the fvp using the DELETE flag, which
* causes the removal of the name cache entry for fvp.
@@ -2319,7 +2319,7 @@ ufs_rmdir(
ip->i_effnlink--;
if (DOINGSOFTDEP(vp))
softdep_setup_rmdir(dp, ip);
- error = ufs_dirremove(dvp, ip, cnp->cn_flags, 1);
+ error = ufs_dirremove(dvp, ip, cnp->cn_flags, true);
if (error) {
dp->i_effnlink++;
ip->i_effnlink++;