lkml.org 
[lkml]   [2011]   [Feb]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 03/10] Add yaffs2 file system: checkpoint streaming
    On Wed, 9 Feb 2011, Charles Manning wrote:

    > Signed-off-by: Charles Manning <cdhmanning@gmail.com>
    > ---
    > fs/yaffs2/yaffs_checkptrw.c | 408 +++++++++++++++++++++++++++++++++++++++++++
    > fs/yaffs2/yaffs_checkptrw.h | 33 ++++
    > 2 files changed, 441 insertions(+), 0 deletions(-)
    > create mode 100644 fs/yaffs2/yaffs_checkptrw.c
    > create mode 100644 fs/yaffs2/yaffs_checkptrw.h
    >
    > diff --git a/fs/yaffs2/yaffs_checkptrw.c b/fs/yaffs2/yaffs_checkptrw.c
    > new file mode 100644
    > index 0000000..997a618
    > --- /dev/null
    > +++ b/fs/yaffs2/yaffs_checkptrw.c
    > @@ -0,0 +1,408 @@
    > +/*
    > + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
    > + *
    > + * Copyright (C) 2002-2011 Aleph One Ltd.
    > + * for Toby Churchill Ltd and Brightstar Engineering
    > + *
    > + * Created by Charles Manning <charles@aleph1.co.uk>
    > + *
    > + * This program is free software; you can redistribute it and/or modify
    > + * it under the terms of the GNU General Public License version 2 as
    > + * published by the Free Software Foundation.
    > + */
    > +
    > +#include "yaffs_checkptrw.h"
    > +#include "yaffs_getblockinfo.h"
    > +
    > +static int yaffs2_checkpt_space_ok(struct yaffs_dev *dev)
    > +{
    > + int blocks_avail = dev->n_erased_blocks - dev->param.n_reserved_blocks;
    > +
    > + yaffs_trace(YAFFS_TRACE_CHECKPOINT,
    > + "checkpt blocks_avail = %d", blocks_avail);
    > +
    > + return (blocks_avail <= 0) ? 0 : 1;
    > +}
    > +
    > +static int yaffs_checkpt_erase(struct yaffs_dev *dev)
    > +{
    > + int i;
    > +
    > + if (!dev->param.erase_fn)
    > + return 0;
    > + yaffs_trace(YAFFS_TRACE_CHECKPOINT,
    > + "checking blocks %d to %d",
    > + dev->internal_start_block, dev->internal_end_block);
    > +
    > + for (i = dev->internal_start_block; i <= dev->internal_end_block; i++) {

    Why does 'i' need 'function scope'? can't it just have 'for scope'?

    for (int i = dev->internal_start_block; i <= dev->internal_end_block; i++) {


    > +static void yaffs2_checkpt_find_erased_block(struct yaffs_dev *dev)
    > +{
    > + int i;
    > + int blocks_avail = dev->n_erased_blocks - dev->param.n_reserved_blocks;
    > +
    > + yaffs_trace(YAFFS_TRACE_CHECKPOINT,
    > + "allocating checkpt block: erased %d reserved %d avail %d next %d ",
    > + dev->n_erased_blocks, dev->param.n_reserved_blocks,
    > + blocks_avail, dev->checkpt_next_block);
    > +
    > + if (dev->checkpt_next_block >= 0 &&
    > + dev->checkpt_next_block <= dev->internal_end_block &&
    > + blocks_avail > 0) {
    > +
    > + for (i = dev->checkpt_next_block; i <= dev->internal_end_block;

    'for scope' ?

    > +static void yaffs2_checkpt_find_block(struct yaffs_dev *dev)
    > +{
    > + int i;
    > + struct yaffs_ext_tags tags;
    > +
    > + yaffs_trace(YAFFS_TRACE_CHECKPOINT,
    > + "find next checkpt block: start: blocks %d next %d",
    > + dev->blocks_in_checkpt, dev->checkpt_next_block);
    > +
    > + if (dev->blocks_in_checkpt < dev->checkpt_max_blocks)
    > + for (i = dev->checkpt_next_block; i <= dev->internal_end_block;

    and here and elsewhere (can't be bothered to point out every one)...

    --
    Jesper Juhl <jj@chaosbits.net> http://www.chaosbits.net/
    Plain text mails only, please.
    Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html



    \
     
     \ /
      Last update: 2011-02-10 23:31    [W:0.025 / U:31.952 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site