On Fri, Oct 25, 2013 at 6:20 PM, Minchan Kim <[email protected]> wrote: > On Thu, Oct 24, 2013 at 05:53:32PM +0800, Weijie Yang wrote: >> The refcount routine was not fit the kernel get/put semantic exactly, >> There were too many judgement statements on refcount and it could be minus. >> >> This patch does the following: >> >> - move refcount judgement to zswap_entry_put() to hide resource free >> function. >> >> - add a new function zswap_entry_find_get(), so that callers can use easily >> in the following pattern: >> >> zswap_entry_find_get >> .../* do something */ >> zswap_entry_put >> >> - to eliminate compile error, move some functions declaration >> >> This patch is based on Minchan Kim <[email protected]> 's idea and >> suggestion. >> >> Signed-off-by: Weijie Yang <[email protected]> >> Cc: Seth Jennings <[email protected]> >> Cc: Minchan Kim <[email protected]> >> Cc: Bob Liu <[email protected]> > > > I remember Bob had a idea to remove a look up and I think it's doable. > Anyway, I don't mind you send it with fix or not.
Thanks for review. Bob's idea is: "Then how about use if (!RB_EMPTY_NODE(&entry->rbnode)) to replace rbtree searching?" I'm afraid not. Because entry could be freed in previous zswap_entry_put, we cann't reference entry or we would touch a free-and-use issue. > Thanks for handling this, Weijie! > > Acked-by: Minchan Kim <[email protected]> > > -- > Kind regards, > Minchan Kim -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

