Thread (33 messages) 33 messages, 10 authors, 2023-02-03

Re: make alloc_anon_inode more useful

From: Christoph Hellwig <hch@lst.de>
Date: 2021-03-10 08:38:19
Also in: linux-mm, linuxppc-dev, lkml, virtualization

On Wed, Mar 10, 2021 at 04:05:45AM +0000, Matthew Wilcox wrote:
On Tue, Mar 09, 2021 at 04:53:39PM +0100, Christoph Hellwig wrote:
quoted
this series first renames the existing alloc_anon_inode to
alloc_anon_inode_sb to clearly mark it as requiring a superblock.

It then adds a new alloc_anon_inode that works on the anon_inode
file system super block, thus removing tons of boilerplate code.

The few remainig callers of alloc_anon_inode_sb all use alloc_file_pseudo
later, but might also be ripe for some cleanup.
On a somewhat related note, could I get you to look at
drivers/video/fbdev/core/fb_defio.c?

As far as I can tell, there's no need for fb_deferred_io_aops to exist.
We could just set file->f_mapping->a_ops to NULL, and set_page_dirty()
would do the exact same thing this code does (except it would get the
return value correct).
But maybe that would make something else go wrong that distinguishes
between page->mapping being NULL and page->mapping->a_ops->foo being NULL?
I can't find any place in the kernel that treats a NULL aops different
from not having the method it is looking for. 
Completely untested patch ...
the patch looks mostly good to me.
 	}
-#ifdef CONFIG_FB_DEFERRED_IO
-	if (info->fbdefio)
-		fb_deferred_io_open(info, inode, file);
-#endif
+	file->f_mapping->a_ops = NULL;
But I'd also skip this.  Drivers generally do not set aops, but if they
do a funtion like this really should not override it.  This will require
an audit of the callers, though.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help