Re: [PATCH 00/14] GFS

From: David Teigland
Date: Mon Aug 08 2005 - 04:54:08 EST


On Wed, Aug 03, 2005 at 09:44:06AM +0300, Pekka Enberg wrote:

> > +uint32_t gfs2_hash(const void *data, unsigned int len)
> > +{
> > + uint32_t h = 0x811C9DC5;
> > + h = hash_more_internal(data, len, h);
> > + return h;
> > +}
>
> Is there a reason why you cannot use <linux/hash.h> or <linux/jhash.h>?

See gfs2_hash_more() and comment; we hash discontiguous regions.

> > +#define RETRY_MALLOC(do_this, until_this) \
> > +for (;;) { \
> > + { do_this; } \
> > + if (until_this) \
> > + break; \
> > + if (time_after_eq(jiffies, gfs2_malloc_warning + 5 * HZ)) { \
> > + printk("GFS2: out of memory: %s, %u\n", __FILE__, __LINE__); \
> > + gfs2_malloc_warning = jiffies; \
> > + } \
> > + yield(); \
> > +}
>
> Please drop this.

Done in the spot that could deal with an error, but there are three other
places that still need it.

> > +static int ea_set_i(struct gfs2_inode *ip, struct gfs2_ea_request *er,
> > + struct gfs2_ea_location *el)
> > +{
> > + {
> > + struct ea_set es;
> > + int error;
> > +
> > + memset(&es, 0, sizeof(struct ea_set));
> > + es.es_er = er;
> > + es.es_el = el;
> > +
> > + error = ea_foreach(ip, ea_set_simple, &es);
> > + if (error > 0)
> > + return 0;
> > + if (error)
> > + return error;
> > + }
> > + {
> > + unsigned int blks = 2;
> > + if (!(ip->i_di.di_flags & GFS2_DIF_EA_INDIRECT))
> > + blks++;
> > + if (GFS2_EAREQ_SIZE_STUFFED(er) > ip->i_sbd->sd_jbsize)
> > + blks += DIV_RU(er->er_data_len,
> > + ip->i_sbd->sd_jbsize);
> > +
> > + return ea_alloc_skeleton(ip, er, blks, ea_set_block, el);
> > + }
>
> Please drop the extra braces.

Here and elsewhere we try to keep unused stuff off the stack. Are you
suggesting that we're being overly cautious, or do you just dislike the
way it looks?

Thanks,
Dave

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/