FS#20260 - [initscripts] Add support for NILFS2 to initscripts

Attached to Project: Arch Linux
Opened by Alex Matviychuk (alexmat) - Thursday, 22 July 2010, 22:35 GMT
Last edited by Tom Gundersen (tomegun) - Friday, 22 April 2011, 18:21 GMT
Task Type Feature Request
Category Arch Projects
Status Closed
Assigned To Tobias Powalowski (tpowa)
Thomas Bächler (brain0)
Tom Gundersen (tomegun)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:

NILFS2 is now in kernel 2.6.24 and rc.sysinit handles NILFS2 mounts transparently for non-root partitions. However, for root partitions the NILFS cleaner daemon fails to start since root is still read only.

Additional info:

I'm attaching a suggested patch to work around this issue.
This task depends upon

Closed by  Tom Gundersen (tomegun)
Friday, 22 April 2011, 18:21 GMT
Reason for closing:  Deferred
Additional comments about closing:  This will be solved when /etc/mtab is a symlink to /proc/self/mounts
Comment by Dan McGee (toofishes) - Friday, 23 July 2010, 13:51 GMT
Comments:
1. We try not to use backticks anymore in scripts, but instead prefer $() syntax.
2. Because we start it manually for the root device, should we also be stopping it in rc.shutdown? The manpage of mount.nilfs2 seems to indicate that if started manually, the GC daemon needs to be stopped manually as well.
Comment by Alex Matviychuk (alexmat) - Friday, 23 July 2010, 19:23 GMT
1.) new patch attached with fix
2.) SIGTERM on shutdown is enough to bring down the nilfs garbage collector:

man nilfs_cleanerd ->

" SIGTERM
The nilfs_cleanerd will exit cleanly."
Comment by Dan McGee (toofishes) - Wednesday, 28 July 2010, 17:55 GMT
Thomas, as an FYI, I looked this over at ArchCon with Alex and everything is pretty solid.
Comment by Dieter Plaetinck (Dieter_be) - Sunday, 01 August 2010, 08:40 GMT
this line:
if [ -n $nilfs_root_dev ];
should be:
if [ -n "$nilfs_root_dev" ];

(try this on your terminal: [ -n $somevarthatdoesnotexist ] && echo nonzero)
Comment by Alex Matviychuk (alexmat) - Sunday, 01 August 2010, 15:20 GMT
I've fixed up my changes with your input and also made the variable naming consistent with the rest of the rc script.

BASH is damn hard to get right :P

Thanks for the help.
Comment by Dieter Plaetinck (Dieter_be) - Tuesday, 07 December 2010, 15:06 GMT
what's the status of this? Can this be merged?
Comment by Dan McGee (toofishes) - Tuesday, 07 December 2010, 15:08 GMT
It has my signoff, just merge it into one patch, but we don't really have anyone looking at the 20+ initscripts issues right now unfortunately and I can't put them on my plate.
Comment by Emil Renner Berthing (Esmil) - Thursday, 20 January 2011, 14:31 GMT
Hmm.. I don't see why it is necessary to start the nilfs_cleanerd manually. It should be started automatically by the mount command, and the manual page for nilfs_cleanerd even says this is the recommended way to start it.
This is possible to do even for the root filesystem. See  FS#22523  for an two-line patch and an explanation how.
Comment by Dan McGee (toofishes) - Thursday, 20 January 2011, 14:34 GMT
I just linked the issues, so I'm pretty sure I saw how to do it so you don't need to call it out here. :) Things have also changed a lot in the seven months since this bug was opened, so please take that into account next time you assume the original poster didn't know what they were doing. And none of this matters for anything but the root filesystem, for that matter.
Comment by Emil Renner Berthing (Esmil) - Thursday, 20 January 2011, 14:59 GMT
Sorry, didn't know you were the only one who needed to know, so I thought it would be nice to have a link to a more up-to-date solution here for future reference..

Also I'll leave you to assume what I assume, but let me ask a question then:

What is holding this issue up right now? I know this isn't the complete solution to running nilfs as root (you still need to make udev create the /dev/root symlink), but what is blocking this change from being merged?
Comment by Dan McGee (toofishes) - Thursday, 20 January 2011, 15:06 GMT
We don't have a real active initscripts developer at the moment, this is just 1 of 42 open issues right now, so patience will be needed. Hopefully things get addressed in the next couple of weeks.
Comment by Tom Gundersen (tomegun) - Sunday, 27 March 2011, 16:58 GMT
@Dan,Alex: do you agree that the patch in  FS#22523  is preferable to the one posted here? (I don't have NILFS to try this out, so I'll rely on your judgement).
@Dan: you mentioned that you linked the tasks, I don't see the link, did something change?
Comment by Tom Gundersen (tomegun) - Sunday, 27 March 2011, 17:05 GMT
@Dan: sorry, I found the link.
Comment by Alex Matviychuk (alexmat) - Sunday, 27 March 2011, 17:06 GMT
@Tom: The other patch looks much better to me. I'll test it out when I get a chance.
Comment by Sébastien Luttringer (seblu) - Sunday, 27 March 2011, 19:46 GMT
If i understand correctly, garbage collector is not mandatory to be mounted rw. Why don't start it in an rc.d script which can be bundled with package nilfs2, rathan than in rc.sysinit?
Comment by Tom Gundersen (tomegun) - Sunday, 27 March 2011, 21:35 GMT
@Seb: if that's correct then I would prefer that compared to adding workarounds in rc.sysinit. It looks to me that neither is needed though, and that this is just an udev/util-linux issue (see  FS#22523 ).

Loading...