public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Ryan Mallon <ryan@bluewatersys.com>
To: Charles Manning <cdhmanning@gmail.com>
Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/8] Add yaffs2 file system: allocator, attribs, bitmap code
Date: Fri, 03 Dec 2010 08:49:18 +1300	[thread overview]
Message-ID: <4CF7F83E.9080306@bluewatersys.com> (raw)
In-Reply-To: <1291154254-22533-2-git-send-email-cdhmanning@gmail.com>

On 12/01/2010 10:57 AM, Charles Manning wrote:
> Signed-off-by: Charles Manning <cdhmanning@gmail.com>
> ---
>  fs/yaffs2/yaffs_allocator.c |  397 +++++++++++++++++++++++++++++++++++++++++++
>  fs/yaffs2/yaffs_allocator.h |   30 ++++
>  fs/yaffs2/yaffs_attribs.c   |  124 ++++++++++++++
>  fs/yaffs2/yaffs_attribs.h   |   28 +++
>  fs/yaffs2/yaffs_bitmap.c    |  104 +++++++++++
>  fs/yaffs2/yaffs_bitmap.h    |   33 ++++
>  6 files changed, 716 insertions(+), 0 deletions(-)
>  create mode 100644 fs/yaffs2/yaffs_allocator.c
>  create mode 100644 fs/yaffs2/yaffs_allocator.h
>  create mode 100644 fs/yaffs2/yaffs_attribs.c
>  create mode 100644 fs/yaffs2/yaffs_attribs.h
>  create mode 100644 fs/yaffs2/yaffs_bitmap.c
>  create mode 100644 fs/yaffs2/yaffs_bitmap.h
> 
> diff --git a/fs/yaffs2/yaffs_allocator.c b/fs/yaffs2/yaffs_allocator.c
> new file mode 100644
> index 0000000..b9fe31e
> --- /dev/null
> +++ b/fs/yaffs2/yaffs_allocator.c
> @@ -0,0 +1,397 @@
> +/*
> + * YAFFS: Yet Another Flash File System. A NAND-flash specific file system.
> + *
> + * Copyright (C) 2002-2010 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_allocator.h"
> +#include "yaffs_guts.h"
> +#include "yaffs_trace.h"
> +#include "yportenv.h"
> +
> +#ifdef CONFIG_YAFFS_YMALLOC_ALLOCATOR

This doesn't appear to be defined anywhere and is not in Kconfig. Is
this just a wrapper for support on other operating systems or does it
can it be used on Linux for debugging? In the former case it should
probably removed and in the latter it should probably have a comment
explaining why you would want to define it.

<snip>

> +
> +#include "yaffs_bitmap.h"
> +#include "yaffs_trace.h"
> +/*
> + * Chunk bitmap manipulations
> + */
> +
> +static Y_INLINE u8 *yaffs_block_bits(struct yaffs_dev *dev, int blk)

Should just use inline.

<snip>

> +
> +int yaffs_still_some_chunks(struct yaffs_dev *dev, int blk)
> +{
> +	u8 *blk_bits = yaffs_block_bits(dev, blk);
> +	int i;
> +	for (i = 0; i < dev->chunk_bit_stride; i++) {

Nitpick: You should have a blank line between variable declarations and
start of code.

<snip>

> +int yaffs_count_chunk_bits(struct yaffs_dev *dev, int blk)
> +{
> +	u8 *blk_bits = yaffs_block_bits(dev, blk);
> +	int i;
> +	int n = 0;
> +	for (i = 0; i < dev->chunk_bit_stride; i++) {
> +		u8 x = *blk_bits;
> +		while (x) {
> +			if (x & 1)
> +				n++;
> +			x >>= 1;
> +		}
> +
> +		blk_bits++;
> +	}
> +	return n;
> +}


This is possibly more concise as a for loop. Also moving the definitions
all to the top of the file and combining same types definitions on one
line reduces this function to:

int yaffs_count_chunk_bits(struct yaffs_dev *dev, int blk)
{
	u8 x, *blk_bits = yaffs_block_bits(dev, blk);
	int i, n = 0;

	for (i = 0; i < dev->chunk_bit_stride; i++, blk_bits++)
		for (x = *blk_bits; x; x >>= 1)
			if (x & 1)
				n++;
	
	return n;
}

~Ryan

-- 
Bluewater Systems Ltd - ARM Technology Solution Centre

Ryan Mallon         		5 Amuri Park, 404 Barbadoes St
ryan@bluewatersys.com         	PO Box 13 889, Christchurch 8013
http://www.bluewatersys.com	New Zealand
Phone: +64 3 3779127		Freecall: Australia 1800 148 751
Fax:   +64 3 3779135			  USA 1800 261 2934

  parent reply	other threads:[~2010-12-02 19:47 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-30 21:57 [PATCH 0/8] Add yaffs2 file system: Third patchset Charles Manning
2010-11-30 21:57 ` [PATCH 1/8] Add yaffs2 file system: allocator, attribs, bitmap code Charles Manning
2010-12-02 18:14   ` Marcin Slusarz
2010-12-02 19:20     ` Charles Manning
2010-12-02 19:49   ` Ryan Mallon [this message]
2010-12-02 20:48     ` kevin granade
2010-11-30 21:57 ` [PATCH 2/8] Add yaffs2 file system: checkpoint and ecc code Charles Manning
2010-12-05 21:55   ` Jesper Juhl
2010-11-30 21:57 ` [PATCH 3/8] Add yaffs2 file system: guts code Charles Manning
2010-11-30 22:23   ` Arnd Bergmann
2010-12-06  1:50     ` Charles Manning
2010-12-06 12:55       ` Arnd Bergmann
2010-12-06 22:13         ` Charles Manning
2010-12-06 22:16           ` Jesper Juhl
2010-12-06 23:03           ` Arnd Bergmann
2010-12-07  0:47             ` Steven Rostedt
2010-12-07  4:12               ` Charles Manning
2010-12-07 14:49                 ` Steven Rostedt
2010-12-07 20:43                   ` Charles Manning
2010-12-07 22:49                     ` Steven Rostedt
2010-11-30 21:57 ` [PATCH 4/8] Add yaffs2 file system: tags handling code Charles Manning
2010-12-05 22:12   ` Jesper Juhl
2010-11-30 21:57 ` [PATCH 5/8] Add yaffs2 file system: mtd and flash " Charles Manning
2010-12-05 22:42   ` Jesper Juhl
2010-11-30 21:57 ` [PATCH 6/8] Add yaffs2 file system: xattrib code Charles Manning
2010-12-05 22:20   ` Jesper Juhl
2010-11-30 21:57 ` [PATCH 7/8] Add yaffs2 file system: verification code and other headers Charles Manning
2010-12-02 20:00   ` Ryan Mallon
2010-12-05 21:20     ` Charles Manning
2010-12-05 21:45       ` Ryan Mallon
2010-12-05 22:50         ` Charles Manning
2010-12-07 15:06   ` Pekka Enberg
2010-11-30 21:57 ` [PATCH 8/8] Add yaffs2 file system: VFS glue code, hook into kernel tree building Charles Manning
2010-12-01  5:30   ` Nick Piggin
2010-12-02 20:35   ` Ryan Mallon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CF7F83E.9080306@bluewatersys.com \
    --to=ryan@bluewatersys.com \
    --cc=cdhmanning@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox