Date: Thu, 04 Jun 2020 17:04:31 +0000 From: Nazim Can Bedir <nzmjx@protonmail.com> To: freebsd-fs@freebsd.org Subject: Re: newfs(1) on a file Message-ID: <8e221643-965c-3cbb-a043-4eed786c01e3@protonmail.com> In-Reply-To: <1d05302e-db7f-2538-16ee-dcd73c229e37@national.shitposting.agency> References: <1d05302e-db7f-2538-16ee-dcd73c229e37@national.shitposting.agency>
next in thread | previous in thread | raw e-mail | index | archive | help
Or, The normal file I/O and device I/O call and code paths in the kernel are=20 different. And, in order to include efficient and proper caching of disk=20 blocks into the equation, damn filesystem backing stores need to be=20 exist as devices. And, contrary to common belief, FreeBSD kernel=20 developers may not be smart enough as you because they followed the sane=20 approach: if mount command couldn't mount a GAY filesystem from the file=20 as-is, then newfs(8) command shouldn't allow to create filesystem on=20 file as-is (otherwise, idiot FreeBSD users like me could think that=20 "aah, if newfs initialises filesystem on file without md, then it must=20 be able to mount without md). I really don't understand what is the damn problem here? Filesystem=20 operations are performed on special files (a.k.a disks); and md kernel=20 driver does exist for that purpose. On 04/06/2020 19:39, goatshit54108@national.shitposting.agency wrote: > Running newfs(1) on a regular file bumps into some GAY issues: > > $ dd status=3Dnone if=3D/dev/zero bs=3D1m count=3D4 of=3Dshit > $ newfs ./shit > newfs: ./shit: not a character-special device: No error: 0 > newfs: no valid label found > > The message is not clear, but it happens to be a cry for a BSD label. OK,= first creating a BSD label does allow newfs to succeed: > $ bsdlabel -wf ./shit > $ newfs ./shit > newfs: ./shit: not a character-special device: No error: 0 > ... (creation OK) > > The bump is inside getdisklabel(). Patching out the one and only call to = getdisklabel() seems to avoid the issue without negative consequences: > =09... > =09lp =3D NULL; //lp =3D getdisklabel(); // GAY > =09... > > $ dd status=3Dnone if=3D/dev/zero bs=3D1m count=3D4 of=3Dshit > $ non-gay_newfs ./shit > newfs: ./shit: not a character-special device: No error: 0 > preposterous size 0 > $ non-gay_newfs -s $(((4 << 20) / 512)) ./shit > newfs: ./shit: not a character-special device: No error: 0 > ... (creation OK) > > The inconvenient alternative, to get newfs to format the file though a me= mory disk, appears to create an identical file: > $ dd status=3Dnone if=3D/dev/zero bs=3D1m count=3D4 of=3Dshit > $ su root > ... (GAY) ... > # mdconfig -a -t vnode -f ./shit -u 9 > # newfs /dev/md9 > ... (creation OK) ... > > Identical, that is, if we use `newfs -R` and discount a couple of reprodu= cibility bugs/issues (<https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D= 246983>, <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D246985>). > > Also, at a glance, using the BSD label method yields nothing other than a= UFS filesystem along with a BSD label. > > So this code appears to be old garbage. > > Furthermore, the "not a character-special device" warning is just GAY wit= hout any benefit. > > Or?... > _______________________________________________ > freebsd-fs@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-fs > To unsubscribe, send any mail to "freebsd-fs-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8e221643-965c-3cbb-a043-4eed786c01e3>