Subject: Re: FFS journal
To: Hubert Feyrer <hubert@feyrer.de>
From: Kirill Kuvaldin <kirill.kuvaldin@gmail.com>
List: tech-kern
Date: 07/05/2006 11:15:20
On 7/3/06, Hubert Feyrer <hubert@feyrer.de> wrote:
>
> On Sun, 2 Jul 2006, Kirill Kuvaldin wrote:
> > - jffs_start_transaction():
> > - jffs_write_blocks():
> > - jffs_end_transaction():
>
> Can you outline where in the existing NetBSD code these functions will be
> used?

OK, I'm not quite sure but in all probability these functions will be
called from UFS and FFS
code that deals with inode and directory management (i.e. whatever we
call metadata). I don't think I can list all functions to be modified
but possible those as ufs_create(), ufs_mkdir(), ufs_rmdir(),
ufs_mknod(), ufs_remove(), ufs_rename() shall contain hooks to call
journal API
functions. I also assume that some modification to VFS layers shall be added.

>
> Other quesitons:
>   * what's the procedure upon system startup, possibly after a crash?

The recovery is done via replaying all journal entries that were not
marked as *completed*. Thus, journal API probably shall be extended
with function (journal_replay()) for doing this.
Its call shall be hooked into ufs_mount() function.

>   * where is the transaction log stored?

The transactions are stored in journal area which probably will be
represented as a standalone filesystem service (something similar to
WAFS described in Seltzer paper). However I'm still deciding what
journal location scheme to choose. Suggestions are kindly welcome.

>   - Hubert
>

Regards,
Kirill