]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
configfs_detach_rollback(): pass configfs_dirent instead of dentry
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 12 May 2026 05:29:00 +0000 (01:29 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Mon, 8 Jun 2026 18:53:09 +0000 (14:53 -0400)
same story as with configfs_detach_prep() this function is undoing.

Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/configfs/dir.c

index c6055a626bef57d1ba79e710019bcb5b128ad3d4..c420191610c36a9913067c922c8c27e2a2773503 100644 (file)
@@ -563,16 +563,15 @@ out:
  * Walk the tree, resetting CONFIGFS_USET_DROPPING wherever it was
  * set.
  */
-static void configfs_detach_rollback(struct dentry *dentry)
+static void configfs_detach_rollback(struct configfs_dirent *parent_sd)
 {
-       struct configfs_dirent *parent_sd = dentry->d_fsdata;
        struct configfs_dirent *sd;
 
        parent_sd->s_type &= ~CONFIGFS_USET_DROPPING;
 
        list_for_each_entry(sd, &parent_sd->s_children, s_sibling)
                if (sd->s_type & CONFIGFS_USET_DEFAULT)
-                       configfs_detach_rollback(sd->s_dentry);
+                       configfs_detach_rollback(sd);
 }
 
 /*
@@ -1537,7 +1536,7 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
                if (!ret) {
                        ret = configfs_detach_prep(sd, &wait);
                        if (ret)
-                               configfs_detach_rollback(dentry);
+                               configfs_detach_rollback(sd);
                }
                spin_unlock(&configfs_dirent_lock);
                mutex_unlock(&configfs_symlink_mutex);
@@ -1558,7 +1557,7 @@ static int configfs_rmdir(struct inode *dir, struct dentry *dentry)
        frag = sd->s_frag;
        if (down_write_killable(&frag->frag_sem)) {
                spin_lock(&configfs_dirent_lock);
-               configfs_detach_rollback(dentry);
+               configfs_detach_rollback(sd);
                spin_unlock(&configfs_dirent_lock);
                config_item_put(parent_item);
                return -EINTR;