nilfs2: add checkpoint tree to nilfs object
authorRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Sat, 14 Aug 2010 03:59:15 +0000 (12:59 +0900)
committerRyusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Sat, 23 Oct 2010 00:24:34 +0000 (09:24 +0900)
commitba65ae4729bf81c58d9fc847f67d57eec525b042
tree6b2a4499a1e67bf858ce55cfe2e806b24c3697e7
parent263d90cefc7d82a01c296c59532ff59d67c63509
nilfs2: add checkpoint tree to nilfs object

To hold multiple versions of a filesystem in one sb instance, a new
on-memory structure is necessary to handle one or more checkpoints.

This adds a red-black tree of checkpoints to nilfs object, and adds
lookup and create functions for them.

Each checkpoint is represented by "nilfs_root" structure, and this
structure has rb_node to configure the rb-tree.

The nilfs_root object is identified with a checkpoint number.  For
each snapshot, a nilfs_root object is allocated and the checkpoint
number of snapshot is assigned to it.  For a regular mount
(i.e. current mode mount), NILFS_CPTREE_CURRENT_CNO constant is
assigned to the corresponding nilfs_root object.

Each nilfs_root object has an ifile inode and some counters.  These
items will displace those of nilfs_sb_info structure in successive
patches.

Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
fs/nilfs2/the_nilfs.c
fs/nilfs2/the_nilfs.h