04 Jan, 2012

3 commits


02 Nov, 2011

1 commit


20 Jul, 2011

1 commit


28 May, 2011

1 commit


26 May, 2011

2 commits


09 Mar, 2011

1 commit

  • This directly uses sb->s_fs_info to keep a nilfs filesystem object and
    fully removes the intermediate nilfs_sb_info structure. With this
    change, the hierarchy of on-memory structures of nilfs will be
    simplified as follows:

    Before:
    super_block
    -> nilfs_sb_info
    -> the_nilfs
    -> cptree --+-> nilfs_root (current file system)
    +-> nilfs_root (snapshot A)
    +-> nilfs_root (snapshot B)
    :
    -> nilfs_sc_info (log writer structure)
    After:
    super_block
    -> the_nilfs
    -> cptree --+-> nilfs_root (current file system)
    +-> nilfs_root (snapshot A)
    +-> nilfs_root (snapshot B)
    :
    -> nilfs_sc_info (log writer structure)

    The reason why we didn't design so from the beginning is because the
    initial shape also differed from the above. The early hierachy was
    composed of "per-mount-point" super_block -> nilfs_sb_info pairs and a
    shared nilfs object. On the kernel 2.6.37, it was changed to the
    current shape in order to unify super block instances into one per
    device, and this cleanup became applicable as the result.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     

03 Mar, 2011

1 commit


10 Jan, 2011

1 commit

  • This adds fiemap to nilfs. Two new functions, nilfs_fiemap and
    nilfs_find_uncommitted_extent are added.

    nilfs_fiemap() implements the fiemap inode operation, and
    nilfs_find_uncommitted_extent() helps to get a range of data blocks
    whose physical location has not been determined.

    nilfs_fiemap() collects extent information by looping through
    nilfs_bmap_lookup_contig and nilfs_find_uncommitted_extent routines.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     

26 Oct, 2010

1 commit


23 Oct, 2010

3 commits

  • Snapshots of nilfs are read-only.

    After super block instances (sb) will be unified, nilfs will need to
    check write access by a way other than implicit test with
    IS_RDONLY(inode). This is because IS_RDONLY() refers to MS_RDONLY bit
    of inode->i_sb->s_flags and it will become inaccurate after the
    unification of sb.

    To prepare for the issue, this uses i_op->permission to deny write
    access to inodes in snapshots.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     
  • The previous export operations cannot handle multiple versions of
    a filesystem if they belong to the same sb instance.

    This adds a new type of file handle and extends export operations so
    that they can get the inode specified by a checkpoint number as well
    as an inode number and a generation number.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     
  • This puts a pointer to nilfs_root object in the private part of
    on-memory inode, and makes nilfs_iget function pick up the inode with
    the same root object.

    Non-root inodes inherit its nilfs_root object from parent inode. That
    of the root inode is allocated through nilfs_attach_checkpoint()
    function.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     

04 Mar, 2010

1 commit


27 Nov, 2009

8 commits


22 Sep, 2009

1 commit


07 Apr, 2009

2 commits

  • Pekka Enberg pointed out that double error handlings found after
    nilfs_transaction_end() can be avoided by separating abort operation:

    OK, I don't understand this. The only way nilfs_transaction_end() can
    fail is if we have NILFS_TI_SYNC set and we fail to construct the
    segment. But why do we want to construct a segment if we don't commit?

    I guess what I'm asking is why don't we have a separate
    nilfs_transaction_abort() function that can't fail for the erroneous
    case to avoid this double error value tracking thing?

    This does the separation and renames nilfs_transaction_end() to
    nilfs_transaction_commit() for clarification.

    Since, some calls of these functions were used just for exclusion control
    against the segment constructor, they are replaced with semaphore
    operations.

    Acked-by: Pekka Enberg
    Signed-off-by: Ryusuke Konishi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ryusuke Konishi
     
  • This adds pathname operations, most of which comes from the ext2 file
    system.

    Signed-off-by: Ryusuke Konishi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ryusuke Konishi