Date: Sun, 22 Oct 2017 09:53:46 -0700 From: Conrad Meyer <cem@freebsd.org> To: Konstantin Belousov <kib@freebsd.org> Cc: src-committers <src-committers@freebsd.org>, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: Re: svn commit: r324853 - in head/sys: kern sys Message-ID: <CAG6CVpWt1i0=sBDybavJFV%2B5J1hP%2BS2ga45M07NNoFDDx5=UoQ@mail.gmail.com> In-Reply-To: <201710220811.v9M8Bjw5033551@repo.freebsd.org> References: <201710220811.v9M8Bjw5033551@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks! For other users that managed to create such files: fsck will clean them up. Best, Conrad On Sun, Oct 22, 2017 at 1:11 AM, Konstantin Belousov <kib@freebsd.org> wrote: > Author: kib > Date: Sun Oct 22 08:11:45 2017 > New Revision: 324853 > URL: https://svnweb.freebsd.org/changeset/base/324853 > > Log: > Remove the support for mknod(S_IFMT), which created dummy vnodes with > VBAD type. > > FFS ffs_write() VOP catches such vnodes and panics, other VOPs do not > check for the type and their behaviour is really undefined. The > comment claims that this support was done for 'badsect' to flag bad > sectors, we do not have such facility in kernel anyway. > > Reported by: Dmitry Vyukov <dvyukov@google.com> > Sponsored by: The FreeBSD Foundation > MFC after: 1 week > > Modified: > head/sys/kern/vfs_syscalls.c > head/sys/sys/priv.h > > Modified: head/sys/kern/vfs_syscalls.c > ============================================================================== > --- head/sys/kern/vfs_syscalls.c Sun Oct 22 07:58:28 2017 (r324852) > +++ head/sys/kern/vfs_syscalls.c Sun Oct 22 08:11:45 2017 (r324853) > @@ -1248,9 +1248,6 @@ kern_mknodat(struct thread *td, int fd, char *path, en > if (error == 0 && dev == VNOVAL) > error = EINVAL; > break; > - case S_IFMT: > - error = priv_check(td, PRIV_VFS_MKNOD_BAD); > - break; > case S_IFWHT: > error = priv_check(td, PRIV_VFS_MKNOD_WHT); > break; > @@ -1288,9 +1285,6 @@ restart: > whiteout = 0; > > switch (mode & S_IFMT) { > - case S_IFMT: /* used by badsect to flag bad sectors */ > - vattr.va_type = VBAD; > - break; > case S_IFCHR: > vattr.va_type = VCHR; > break; > > Modified: head/sys/sys/priv.h > ============================================================================== > --- head/sys/sys/priv.h Sun Oct 22 07:58:28 2017 (r324852) > +++ head/sys/sys/priv.h Sun Oct 22 08:11:45 2017 (r324853) > @@ -266,7 +266,7 @@ > #define PRIV_VFS_GETFH 327 /* Can retrieve file handles. */ > #define PRIV_VFS_GETQUOTA 328 /* getquota(). */ > #define PRIV_VFS_LINK 329 /* bsd.hardlink_check_uid */ > -#define PRIV_VFS_MKNOD_BAD 330 /* Can mknod() to mark bad inodes. */ > +#define PRIV_VFS_MKNOD_BAD 330 /* Was: mknod() can mark bad inodes. */ > #define PRIV_VFS_MKNOD_DEV 331 /* Can mknod() to create dev nodes. */ > #define PRIV_VFS_MKNOD_WHT 332 /* Can mknod() to create whiteout. */ > #define PRIV_VFS_MOUNT 333 /* Can mount(). */ >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAG6CVpWt1i0=sBDybavJFV%2B5J1hP%2BS2ga45M07NNoFDDx5=UoQ>