From: Pavel Roskin <pro...@gnu.org> Date: Mon, 27 Apr 2009 23:50:45 -0400
> On Mon, 2009-04-27 at 18:45 -0700, David Miller wrote: > >> Thanks for fixing this Pavel. I suspect this bug is why the close was >> left as a NOP function all of this time. > > Maybe. > >> Please commit this as it seems you haven't already :-) > > I was about to commit it when I realized that the same could be done > using a reference counter in struct grub_partition. It may be an > overkill for this purpose, but maybe there will be more users of the > partition table in the future. Besides, this patch could set an > example. Please have a cursory look to make sure it's a good example. I think it's overkill at the moment. > +/* Return partition to be freed if it can be freed. */ > +static inline grub_partition_t > +grub_partition_unref (const grub_partition_t p) > +{ > + if (p && p->refcount-- <= 0) > + return p; If the reference count dips below zero, that should trigger an assertion rather than giving the pointer to the caller again which will potentially double-free memory or whatever. _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel