On Mon, 2010-11-22 at 10:01 +0800, Li Zefan wrote:
> ä 2010å11æ22æ 09:49, Ian Kent åé:
> > On Mon, 2010-11-22 at 09:25 +0800, Li Zefan wrote:
> >>> + /*
> >>> + * Setup a dummy root and fs_info for test/set super. This is because
> >>> + * we don't actually fill this stuff out until open_ctree, but we need
> >>> + * it for searching for existing supers, so this lets us do that and
> >>> + * then open_ctree will properly initialize everything later.
> >>> + */
> >>> + fs_info = kzalloc(sizeof(struct btrfs_fs_info), GFP_NOFS);
> >>> + tree_root = kzalloc(sizeof(struct btrfs_root), GFP_NOFS);
> >>> + if (!fs_info || !tree_root) {
> >>> + kfree(fs_info);
> >>> + kfree(tree_root);
> >> The above 2 kfree() calls are redundant.
> >
> > That's what I thought when I first looked at it but what happens when
> > fs_info != NULL and tree_root == NULL.
> >
>
> Nothing bad happens in that case. ;)
>
> We'll do the cleanup after "goto error_close_devices", and kfree(NULL)
> is Ok. Did I miss something?
No, you were correct, Josef also pointed that out, oops!
>
> > Although I do wonder if doing two successive allocation requests and
> > then checking both is a good idea. If memory is low there may be a bunch
> > of page scanning to try and free memory and if it eventually fails that
> > same process probably would happen all over again on the second call.
> > I'm not sure though.
> >
> >> And error should be set to -ENOMEM.
> >
> > Ah, yes .. I missed that.
> >
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html