[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <529DE144.8020005@parallels.com>
Date: Tue, 3 Dec 2013 17:48:52 +0400
From: Vladimir Davydov <vdavydov@...allels.com>
To: Al Viro <viro@...IV.linux.org.uk>
CC: Dave Chinner <david@...morbit.com>, <hannes@...xchg.org>,
<mhocko@...e.cz>, <dchinner@...hat.com>,
<akpm@...ux-foundation.org>, <linux-kernel@...r.kernel.org>,
<linux-mm@...ck.org>, <cgroups@...r.kernel.org>,
<devel@...nvz.org>, <glommer@...nvz.org>
Subject: Re: [PATCH v12 05/18] fs: do not use destroy_super() in alloc_super()
fail path
On 12/03/2013 05:37 PM, Al Viro wrote:
> On Tue, Dec 03, 2013 at 01:23:01PM +0400, Vladimir Davydov wrote:
>
>> Actually, I'm not going to modify the list_lru structure, because I
>> think it's good as it is. I'd like to substitute it with a new
>> structure, memcg_list_lru, only in those places where this functionality
>> (per-memcg scanning) is really needed. This new structure would look
>> like this:
>>
>> struct memcg_list_lru {
>> struct list_lru global_lru;
>> struct list_lru **memcg_lrus;
>> struct list_head list;
>> void *old_lrus;
>> }
>>
>> Since old_lrus and memcg_lrus can be NULL under normal operation, in
>> memcg_list_lru_destroy() I'd have to check either the list or the
>> global_lru field, i.e. it would look like:
>>
>> if (!list.next)
>> /* has not been initialized */
>> return;
>>
>> or
> ... or just use hlist_head.
list_head serves as a list node here (those structures are organized in
a linked list) and I have to remove it from the list upon destruction so
hlist_head is not relevant here.
Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists