fs: Provide empty .set_page_dirty() aop for anon inodes
.set_page_dirty() is one of those a_ops that defaults to the buffer implementation when not set. Therefore provide a dummy function to make it do nothing. (Uncovered by perfcounters fd's which can now be writable-mmap-ed.) Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Davide Libenzi <davidel@xmailserver.org> LKML-Reference: <new-submission> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
Родитель
e24a72c4d8
Коммит
d3a9262e59
|
@ -52,6 +52,19 @@ static const struct dentry_operations anon_inodefs_dentry_operations = {
|
|||
.d_delete = anon_inodefs_delete_dentry,
|
||||
};
|
||||
|
||||
/*
|
||||
* nop .set_page_dirty method so that people can use .page_mkwrite on
|
||||
* anon inodes.
|
||||
*/
|
||||
static int anon_set_page_dirty(struct page *page)
|
||||
{
|
||||
return 0;
|
||||
};
|
||||
|
||||
static const struct address_space_operations anon_aops = {
|
||||
.set_page_dirty = anon_set_page_dirty,
|
||||
};
|
||||
|
||||
/**
|
||||
* anon_inode_getfd - creates a new file instance by hooking it up to an
|
||||
* anonymous inode, and a dentry that describe the "class"
|
||||
|
@ -151,6 +164,8 @@ static struct inode *anon_inode_mkinode(void)
|
|||
|
||||
inode->i_fop = &anon_inode_fops;
|
||||
|
||||
inode->i_mapping->a_ops = &anon_aops;
|
||||
|
||||
/*
|
||||
* Mark the inode dirty from the very beginning,
|
||||
* that way it will never be moved to the dirty
|
||||
|
|
Загрузка…
Ссылка в новой задаче