lkml.org 
[lkml]   [2012]   [Mar]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [patch] Move CRC computation to separate function
From
Date
On Mon, 2012-03-19 at 23:46 +0100, Joel Reardon wrote:
> /**
> + * ubifs_set_datanode_crc - writes the crc for a data node to the common
> + * header.
> + * @node: the data node
> + */
> +void ubifs_set_datanode_crc(void *node)
> +{
> + struct ubifs_ch *ch = (struct ubifs_ch *) node;
> + int len = le32_to_cpu(ch->len);
> + ch->crc = cpu_to_le32(crc32(UBIFS_CRC32_INIT, node + 8, len - 8));
> +}

Will this be used by other code, outside of io.c? Because currently
there is only one user in the same file, which does not justify
introducing it and making non-static. If answers are "yes", then it is
better to make it static inline and put to misc.h instead, because it is
very small.

> void ubifs_prepare_node(struct ubifs_info *c, void *node, int len, int pad)
> {
> - uint32_t crc;
> struct ubifs_ch *ch = node;
> unsigned long long sqnum = next_sqnum(c);
>
> @@ -390,8 +401,7 @@ void ubifs_prepare_node(struct ubifs_info *c, void *node, int len, int pad)
> ch->group_type = UBIFS_NO_NODE_GROUP;
> ch->sqnum = cpu_to_le64(sqnum);
> ch->padding[0] = ch->padding[1] = 0;
> - crc = crc32(UBIFS_CRC32_INIT, node + 8, len - 8);
> - ch->crc = cpu_to_le32(crc);
> + ubifs_set_datanode_crc(node);

But ubifs_prepare_node() is generic and works for any node type, not
just data nodes, which means that using 'datanode' in the name is not a
good idea.

--
Best Regards,
Artem Bityutskiy
[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2012-03-23 15:09    [W:0.136 / U:1.276 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site