Commit 9b243492 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull vfs fixes from Al Viro:
 "A couple of fixes - revert of regression from this cycle and a fix for
  erofs failure exit breakage (had been there since way back)"

* tag 'pull-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
  erofs: fix handling kern_mount() failure
  Revert "get rid of DCACHE_GENOCIDE"
parents ab0a97cf 2c88c16d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -3061,8 +3061,11 @@ static enum d_walk_ret d_genocide_kill(void *data, struct dentry *dentry)
		if (d_unhashed(dentry) || !dentry->d_inode)
			return D_WALK_SKIP;

		if (!(dentry->d_flags & DCACHE_GENOCIDE)) {
			dentry->d_flags |= DCACHE_GENOCIDE;
			dentry->d_lockref.count--;
		}
	}
	return D_WALK_CONTINUE;
}

+4 −3
Original line number Diff line number Diff line
@@ -381,11 +381,12 @@ static int erofs_fscache_init_domain(struct super_block *sb)
		goto out;

	if (!erofs_pseudo_mnt) {
		erofs_pseudo_mnt = kern_mount(&erofs_fs_type);
		if (IS_ERR(erofs_pseudo_mnt)) {
			err = PTR_ERR(erofs_pseudo_mnt);
		struct vfsmount *mnt = kern_mount(&erofs_fs_type);
		if (IS_ERR(mnt)) {
			err = PTR_ERR(mnt);
			goto out;
		}
		erofs_pseudo_mnt = mnt;
	}

	domain->volume = sbi->volume;
+1 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ struct dentry_operations {
#define DCACHE_DONTCACHE		BIT(7) /* Purge from memory on final dput() */

#define DCACHE_CANT_MOUNT		BIT(8)
#define DCACHE_GENOCIDE			BIT(9)
#define DCACHE_SHRINK_LIST		BIT(10)

#define DCACHE_OP_WEAK_REVALIDATE	BIT(11)