> +/* > +* Implements Extendible Hashing as described in: > +* "Extendible Hashing" by Fagin, et al in > +* __ACM Trans. on Database Systems__, Sept 1979. > +* > +* please follow the normal comment style, that is leave a space before the * for block comments so it lines up nicely with the * in the start tag. > +#include <linux/sched.h> > +#include <linux/slab.h> > +#include <linux/spinlock.h> > +#include <linux/completion.h> you don't seem to be using any completion in this file > +#include <linux/buffer_head.h> > +#include <linux/sort.h> > +#include <linux/gfs2_ondisk.h> > +#include <linux/crc32.h> > +#include <linux/vmalloc.h> > +#include <asm/semaphore.h> you're not using any semaphore in this file > +int gfs2_dir_get_buffer(struct gfs2_inode *ip, uint64_t block, int new, > + struct buffer_head **bhp) > +{ > + struct buffer_head *bh; > + int error = 0; > + > + if (new) { > + bh = gfs2_meta_new(ip->i_gl, block); > + gfs2_trans_add_bh(ip->i_gl, bh, 1); > + gfs2_metatype_set(bh, GFS2_METATYPE_JD, GFS2_FORMAT_JD); > + gfs2_buffer_clear_tail(bh, sizeof(struct gfs2_meta_header)); > + } else { > + error = gfs2_meta_read(ip->i_gl, block, DIO_START | DIO_WAIT, > + &bh); > + if (error) > + return error; > + if (gfs2_metatype_check(ip->i_sbd, bh, GFS2_METATYPE_JD)) { > + brelse(bh); > + return -EIO; > + } > + } > + > + *bhp = bh; > + return 0; the code is completely different for the new vs !new case, so there's no point in merging it to a single function. - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html