Thread (25 messages) flat view 25 messages, 6 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-fsdevel, linux-mm, linuxppc-dev, lkml

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.
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help