Re: [PATCH 03/22][RFC] Unionfs: Branch management functionality

Pekka Enberg
2006-09-04T11:21:18Z

On 9/1/06, Josef Sipek <jsipek@cs.sunysb.edu> wrote:
> +struct dentry **alloc_new_dentries(int objs)
> +{
> + if (!objs)
> + return NULL;
> +
> + return kzalloc(sizeof(struct dentry *) * objs, GFP_KERNEL);

kcalloc

> +struct unionfs_usi_data *alloc_new_data(int objs)
> +{
> + if (!objs)
> + return NULL;
> +
> + return kzalloc(sizeof(struct unionfs_usi_data) * objs, GFP_KERNEL);
> +}

Same here. I suggest you kill the wrappers too.

> +int unionfs_ioctl_incgen(struct file *file, unsigned int cmd, unsigned long arg)
> +{
> + struct super_block *sb;
> + int gen;
> +
> + sb = file->f_dentry->d_sb;
> +
> + unionfs_write_lock(sb);
> +
> + atomic_inc(&stopd(sb)->usi_generation);
> + gen = atomic_read(&stopd(sb)->usi_generation);

You could use atomic_inc_return here. Is usi_generation protected by
write lock on sb or do you really need atomic ops?

> +
> + atomic_set(&dtopd(sb->s_root)->udi_generation, gen);
> + atomic_set(&itopd(sb->s_root->d_inode)->uii_generation, gen);
> +
> + unionfs_write_unlock(sb);
> +
> + return gen;
> +}

--
VGER BF report: U 0.5