Re: [GIT PULL] vfs mount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2025-04-03 at 17:15 +0200, Christian Brauner wrote:
> On Thu, Apr 03, 2025 at 10:29:37AM +0200, Christian Brauner wrote:
> > On Tue, Apr 01, 2025 at 08:07:15PM +0300, Leon Romanovsky wrote:
> > > On Mon, Mar 24, 2025 at 09:00:59PM +0000,
> > > pr-tracker-bot@xxxxxxxxxx wrote:
> > > > The pull request you sent on Sat, 22 Mar 2025 11:13:18 +0100:
> > > > 
> > > > > git@xxxxxxxxxxxxxxxxxxx:pub/scm/linux/kernel/git/vfs/vfs
> > > > > tags/vfs-6.15-rc1.mount
> > > > 
> > > > has been merged into torvalds/linux.git:
> > > > https://git.kernel.org/torvalds/c/fd101da676362aaa051b4f5d8a941bd308603041
> > > 
> > > I didn't bisect, but this PR looks like the most relevant
> > > candidate.
> > > The latest Linus's master generates the following slab-use-after-
> > > free:
> > 
> > Sorry, did just see this today. I'll take a look now.
> 
> So in light of "Liberation Day" and the bug that caused this splat
> it's
> time to quote Max Liebermann:
> 
> "Ich kann nicht so viel fressen, wie ich kotzen möchte."

> --- a/fs/namespace.c
> +++ b/fs/namespace.c
> @@ -2478,7 +2478,8 @@ struct vfsmount *clone_private_mount(const
> struct path *path)
>  	struct mount *old_mnt = real_mount(path->mnt);
>  	struct mount *new_mnt;
>  
> -	scoped_guard(rwsem_read, &namespace_sem)
> +	guard(rwsem_read, &namespace_sem);
> +
>  	if (IS_MNT_UNBINDABLE(old_mnt))
>  		return ERR_PTR(-EINVAL);
> 

Well that's a barfworthy oopsie, yes.  However, it does strike me as an
easy one to make for a lot of these cleanup.h things since we have a
lot of scoped and unscoped variants.  We should, at least, get
checkpatch to issue a warning about indentation expectations as it does
for our other scoped statements like for, while, if etc.

It looks quite simple if got my perl right (it's a bit rusty).

Regards,

James

---

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 7b28ad331742..805b65098149 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -4347,7 +4347,7 @@ sub process {
 		}
 
 # Check relative indent for conditionals and blocks.
-		if ($line =~ /\b(?:(?:if|while|for|(?:[a-z_]+|)for_each[a-z_]+)\s*\(|(?:do|else)\b)/ && $line !~ /^.\s*#/ && $line !~ /\}\s*while\s*/) {
+		if ($line =~ /\b(?:(?:if|while|scoped_[a-z_]+|for|(?:[a-z_]+|)for_each[a-z_]+)\s*\(|(?:do|else)\b)/ && $line !~ /^.\s*#/ && $line !~ /\}\s*while\s*/) {
 			($stat, $cond, $line_nr_next, $remain_next, $off_next) =
 				ctx_statement_block($linenr, $realcnt, 0)
 					if (!defined $stat);






[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux