Skip site navigation (1)Skip section navigation (2)
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>