mirror of
https://github.com/torvalds/linux.git
synced 2024-11-11 06:31:49 +00:00
4b6f5d20b0
This is a conversion to make the various file_operations structs in fs/ const. Basically a regexp job, with a few manual fixups The goal is both to increase correctness (harder to accidentally write to shared datastructures) and reducing the false sharing of cachelines with things that get dirty in .data (while .rodata is nicely read only and thus cache clean) Signed-off-by: Arjan van de Ven <arjan@infradead.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
83 lines
2.0 KiB
C
83 lines
2.0 KiB
C
/*
|
|
* linux/fs/ext2/file.c
|
|
*
|
|
* Copyright (C) 1992, 1993, 1994, 1995
|
|
* Remy Card (card@masi.ibp.fr)
|
|
* Laboratoire MASI - Institut Blaise Pascal
|
|
* Universite Pierre et Marie Curie (Paris VI)
|
|
*
|
|
* from
|
|
*
|
|
* linux/fs/minix/file.c
|
|
*
|
|
* Copyright (C) 1991, 1992 Linus Torvalds
|
|
*
|
|
* ext2 fs regular file handling primitives
|
|
*
|
|
* 64-bit file support on 64-bit platforms by Jakub Jelinek
|
|
* (jj@sunsite.ms.mff.cuni.cz)
|
|
*/
|
|
|
|
#include <linux/time.h>
|
|
#include "ext2.h"
|
|
#include "xattr.h"
|
|
#include "acl.h"
|
|
|
|
/*
|
|
* Called when an inode is released. Note that this is different
|
|
* from ext2_open_file: open gets called at every open, but release
|
|
* gets called only when /all/ the files are closed.
|
|
*/
|
|
static int ext2_release_file (struct inode * inode, struct file * filp)
|
|
{
|
|
if (filp->f_mode & FMODE_WRITE)
|
|
ext2_discard_prealloc (inode);
|
|
return 0;
|
|
}
|
|
|
|
/*
|
|
* We have mostly NULL's here: the current defaults are ok for
|
|
* the ext2 filesystem.
|
|
*/
|
|
const struct file_operations ext2_file_operations = {
|
|
.llseek = generic_file_llseek,
|
|
.read = generic_file_read,
|
|
.write = generic_file_write,
|
|
.aio_read = generic_file_aio_read,
|
|
.aio_write = generic_file_aio_write,
|
|
.ioctl = ext2_ioctl,
|
|
.mmap = generic_file_mmap,
|
|
.open = generic_file_open,
|
|
.release = ext2_release_file,
|
|
.fsync = ext2_sync_file,
|
|
.readv = generic_file_readv,
|
|
.writev = generic_file_writev,
|
|
.sendfile = generic_file_sendfile,
|
|
};
|
|
|
|
#ifdef CONFIG_EXT2_FS_XIP
|
|
const struct file_operations ext2_xip_file_operations = {
|
|
.llseek = generic_file_llseek,
|
|
.read = xip_file_read,
|
|
.write = xip_file_write,
|
|
.ioctl = ext2_ioctl,
|
|
.mmap = xip_file_mmap,
|
|
.open = generic_file_open,
|
|
.release = ext2_release_file,
|
|
.fsync = ext2_sync_file,
|
|
.sendfile = xip_file_sendfile,
|
|
};
|
|
#endif
|
|
|
|
struct inode_operations ext2_file_inode_operations = {
|
|
.truncate = ext2_truncate,
|
|
#ifdef CONFIG_EXT2_FS_XATTR
|
|
.setxattr = generic_setxattr,
|
|
.getxattr = generic_getxattr,
|
|
.listxattr = ext2_listxattr,
|
|
.removexattr = generic_removexattr,
|
|
#endif
|
|
.setattr = ext2_setattr,
|
|
.permission = ext2_permission,
|
|
};
|