NILFS2

Bryan Kadzban bryan at kadzban.is-a-geek.net
Wed Jan 6 22:14:46 PST 2010


Andrew Benton wrote:
> On 06/01/10 04:59, Bryan Kadzban wrote:
>> Before the nilfs2 FS is mounted, I assume you mean.  Because it
>> doesn't make much difference whether the symlink exists before the
>> rootfs is mounted -- the kernel (or initramfs...) does that before
>> any bootscripts run, anyway.
> 
> Yes,it does make a difference. I was talking about when the root file
> system is an NILFS2 partition. When a NILFS2 partition is mounted 
> mount.nilfs2 starts nilfs-cleanerd

But mount.nilfs2 isn't run when the kernel mounts the rootfs...

If a remount starts this daemon up, that's rather surprising.  If *only*
a read-only-to-read-write remount starts the daemon up, then that's
somewhat less surprising, but insufficient; having the kernel mount the
rootfs read-write is perfectly possible (though possibly a bad idea, I'm
not sure).

>>> The kernel knows where the root is because it was passed it as an
>>> argument by grub, it's available in /proc/cmdline
>> Yes, but the value is not necessarily symlinkable: an NFS mount
>> target is not, for instance. I wouldn't be surprised if
>> nilfs-cleanerd choked on that as well;
> 
> That is not relevant. nilfs-cleanerd wouldn't need to run on an NFS
> mount.

It is relevant, just not directly: not every string following root= on
the kernel command line is a valid symlink target.  :-)  (Well, that's
not entirely true.  Any string is a valid symlink target, but the
symlink that gets created to point to many of the possible strings will
be broken, and nilfs-cleanerd will still choke.)

More examples: "root=UUID=xxxxx" (pre-udev by-uuid setup), "root=X:Y"
(giving the block device major/minor number directly), possibly some
network block device setups (not sure on that though), etc.  NFS was
just the first example I thought of (though it's a bad example, since
nilfs is obviously not used there).

>> the best fix here (IMO) is to change nilfs-cleanerd to special-case
>> the rootfs, or (if that's impossible because your rootfs is nilfs2)
>> use an initramfs, since you'll need that anyway.
> 
> I don't need to use an initramfs, one line in the mountfs bootscript
> is much simpler and works fine.

Well, see above; mount.nilfs2 starting a random daemon on a remount is
either surprising or insufficient.  :-)  Great that it works fine in
your current setup though.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 261 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxfromscratch.org/pipermail/lfs-dev/attachments/20100106/5f6e907b/attachment.sig>


More information about the lfs-dev mailing list