Re: [PATCH] shmem: put inode if alloc_file failed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 10, 2011 at 8:03 AM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
> On Wed, Mar 09, 2011 at 02:58:59PM -0800, Andrew Morton wrote:
>
>> > +put_inode:
>> > + Â iput(inode);
>> > Âput_dentry:
>> > Â Â path_put(&path);
>> > Âput_memory:
>>
>> Is this correct? ÂWe've linked the inode to the dentry with
>> d_instantiate(), so the d_put() will do the iput() on the inode.
>
>
> ITYM path_put() and yes, it will. ÂThere's no leak.
>

In my opinion, on no-mmu arch iput() will call generate_delete_inode()
> truncate_page_range() which just delete the page from pagecache.

But pages allocated by ramfs_nommu_expand_for_mapping() have
page->_count = 2 (one by alloc_pages + one by pagecache).
The page->_count is still 1 after iput(), so the memory can't be freed.

Is there something I am wrong?

Thanks.

-- 
Regards,
--Bob

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]