23 Oct, 2010

1 commit


20 Nov, 2009

2 commits


14 Sep, 2009

1 commit


10 Jun, 2009

1 commit

  • Nilfs has some ioctl commands to read out metadata from meta data
    files:

    - NILFS_IOCTL_GET_CPINFO for checkpoint file,
    - NILFS_IOCTL_GET_SUINFO for segment usage file, and
    - NILFS_IOCTL_GET_VINFO for Disk Address Transalation (DAT) file,
    respectively.

    Every routine on these metadata files is implemented so that it allows
    future expansion of on-disk format. But, the above ioctl commands do
    not support expansion even though nilfs_argv structure can handle
    arbitrary size for data exchanged via ioctl.

    This allows future expansion of the following structures which give
    basic format of the "get information" ioctls:

    - struct nilfs_cpinfo
    - struct nilfs_suinfo
    - struct nilfs_vinfo

    So, this introduces forward compatility of such ioctl commands.

    In this patch, a sanity check in nilfs_ioctl_get_info() function is
    changed to accept larger data structure [1], and metadata read
    routines are rewritten so that they become compatible for larger
    structures; the routines will just ignore the remaining fields which
    the current version of nilfs doesn't know.

    [1] The ioctl function already has another upper limit (PAGE_SIZE
    against a structure, which appears in nilfs_ioctl_wrap_copy
    function), and this will not cause security problem.

    Signed-off-by: Ryusuke Konishi

    Ryusuke Konishi
     

07 Apr, 2009

2 commits

  • This resolves the following failure of nilfs2 cleaner daemon:

    nilfs_cleanerd[20670]: cannot clean segments: No such file or directory
    nilfs_cleanerd[20670]: shutdown

    When creating thousands of snapshots, the cleaner daemon had rarely died
    as above due to an error returned from the kernel code.

    After applying the recent patch which fixed memory allocation problems in
    ioctl (Message-Id: ), the
    problem gets more frequent.

    It turned out to be a bug of nilfs_ioctl_wrap_copy function and one of its
    callback routines to read out information of snapshots; if the
    nilfs_ioctl_wrap_copy function divided a large read request into multiple
    requests, the second and later requests have failed since a restart
    position on snapshot meta data was not properly set forward.

    It's a deficiency of the callback interface that cannot pass the restart
    position among multiple requests. This patch fixes the issue by allowing
    nilfs_ioctl_wrap_copy and snapshot read functions to exchange a position
    argument.

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

    Ryusuke Konishi
     
  • This adds a meta data file which holds checkpoint entries in its data
    blocks.

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

    Koji Sato