[PATCH 1/4] fs/anon_inodes: new interface to create new inode

Mel Gorman
Wed, 29 Jul 2015 10:50:03 -0000

On Mon, Jul 13, 2015 at 05:35:16PM +0900, Gioh Kim
wrote:
> From: Gioh Kim <gurugio at hanmail.net>
>
> The anon_inodes has already complete interfaces to create manage
> many anonymous inodes but don't have interface to get
> new inode. Other sub-modules can create anonymous inode
> without creating and mounting it's own pseudo filesystem.
>
> Signed-off-by: Gioh Kim <gioh.kim at lge.com>
> Acked-by: Rafael Aquini <aquini at redhat.com>

This is my first run through the series so I'm going to miss details but
this patch confuses me a little. You create an inode to associate with
the balloon dev_info so that page->mapping can be assigned. It's only the
mapping you care about for the aops so why are multiple inodes required? A
driver should be able to share and reference count a single inode. The
motivation to do it that way would be to reduce memory consumption and
this series is motivated by embedded platforms.

anon_inode_getfd has the following

 * Creates a new file by hooking it on a single inode. This is useful for files
 * that do not need to have a full-fledged inode in order to operate correctly.
 * All the files created with anon_inode_getfd() will share a single inode,
 * hence saving memory and avoiding code duplication for the file/inode/dentry
 * setup.  Returns new descriptor or an error code.

If all we care about the inode is the aops then it would follow that
anon_inode_getfd() is ideal. The tradeoff is reference counting overhead.
The changelog needs to explain why anon_inode_getfd() cannot be used.

--
Mel Gorman
SUSE Labs