Messages in this thread | | | Date | Wed, 8 Aug 2007 18:35:05 +0900 | From | Tejun Heo <> | Subject | Re: [PATCH 20/25] sysfs: Rename Support multiple superblocks |
| |
Hello,
On Tue, Aug 07, 2007 at 03:31:18PM -0600, Eric W. Biederman wrote: > This patch modifies the sysfs_rename_dir and sysfs_move_dir > to support multiple sysfs dentry trees rooted in different > sysfs superblocks. > > Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
> +struct sysfs_rename_struct { > + struct list_head list; > + struct dentry *old_dentry; > + struct dentry *new_dentry; > + struct dentry *old_parent; > + struct dentry *new_parent; > +};
Please rename to sysfs_rename_cxt to it consistent with sysfs_addrm_cxt.
> +static void post_rename(struct list_head *head)
Please rename to sysfs_post_rename() and add comment.
> +{ > + struct sysfs_rename_struct *srs; > + while (!list_empty(head)) { > + srs = list_entry(head->next, struct sysfs_rename_struct, list); > + dput(srs->old_dentry); > + dput(srs->new_dentry); > + dput(srs->old_parent); > + dput(srs->new_parent); > + list_del(&srs->list); > + kfree(srs); > + } > +} > + > +static int prep_rename(struct list_head *head, > + struct sysfs_dirent *sd, struct sysfs_dirent *new_parent_sd, > + const char *name)
Ditto.
> +{ > + struct sysfs_rename_struct *srs; > + struct super_block *sb; > + struct dentry *dentry; > + int error; > + > + list_for_each_entry(sb, &sysfs_fs_type.fs_supers, s_instances) { > + dentry = sysfs_get_dentry(sb, sd); > + if (!dentry) > + continue;
sysfs_get_dentry() return ERR_PTR() value. Oops, sysfs_get_dentry() implementation is wrong too. Also, please move sysfs_grab/release_supers() near this patch and add (a lot of) comments there.
Other than that, I think this is as clean as this can be. Great.
-- tejun - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |