On Mon, Feb 13, 2017 at 5:38 AM, Christoph Hellwig [off-list ref] wrote:
On Sat, Feb 11, 2017 at 09:01:15AM -0500, David Windsor wrote:
quoted
I'm not sure there's another way to accomplish what we need
(initializing struct nfsd4_session objects with refcount=1) without
also modifying the freeable reference state. After migrating to the
refcount_t API, if we leave init_session() as is, the first call to
nfsd4_get_session_locked() will fail:
Which is a pretty clear indicator that this code should simply not
migrate to the recount_t API. Why was it even considered if the
conversion is obviously broken?
I'm not sure this is a sound argument for not converting to
refcount_t. In other locations in which refcounting schemes are
"unnatural," i.e. freeing refcounted objects when their refcount is -1
(rather than 0), conversion to refcount_t is accomplished by
performing a logical +1 to the overall refcounting scheme. We're
auditing all refcounting corner cases, such as these, to see if
similar solutions can be found.
Thanks,
David
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html