On Fri, Oct 25, 2013 at 6:20 PM, Minchan Kim <minchan@xxxxxxxxxx> 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 <minchan@xxxxxxxxxx> 's idea and suggestion. >> >> Signed-off-by: Weijie Yang <weijie.yang@xxxxxxxxxxx> >> Cc: Seth Jennings <sjennings@xxxxxxxxxxxxxx> >> Cc: Minchan Kim <minchan@xxxxxxxxxx> >> Cc: Bob Liu <bob.liu@xxxxxxxxxx> > > > 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 <minchan@xxxxxxxxxx> > > -- > Kind regards, > Minchan Kim -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html