1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- /* file-mmu.c: ramfs MMU-based file operations
- *
- * Resizable simple ram filesystem for Linux.
- *
- * Copyright (C) 2000 Linus Torvalds.
- * 2000 Transmeta Corp.
- *
- * Usage limits added by David Gibson, Linuxcare Australia.
- * This file is released under the GPL.
- */
- /*
- * NOTE! This filesystem is probably most useful
- * not as a real filesystem, but as an example of
- * how virtual filesystems can be written.
- *
- * It doesn't get much simpler than this. Consider
- * that this file implements the full semantics of
- * a POSIX-compliant read-write filesystem.
- *
- * Note in particular how the filesystem does not
- * need to implement any data structures of its own
- * to keep track of the virtual data: using the VFS
- * caches is sufficient.
- */
- #include <linux/fs.h>
- #include <linux/mm.h>
- #include <linux/ramfs.h>
- #include "internal.h"
- const struct address_space_operations ramfs_aops = {
- .readpage = simple_readpage,
- .write_begin = simple_write_begin,
- .write_end = simple_write_end,
- .set_page_dirty = __set_page_dirty_no_writeback,
- };
- const struct file_operations ramfs_file_operations = {
- .read = do_sync_read,
- .aio_read = generic_file_aio_read,
- .write = do_sync_write,
- .aio_write = generic_file_aio_write,
- .mmap = generic_file_mmap,
- .fsync = noop_fsync,
- .splice_read = generic_file_splice_read,
- .splice_write = generic_file_splice_write,
- .llseek = generic_file_llseek,
- };
- const struct inode_operations ramfs_file_inode_operations = {
- .setattr = simple_setattr,
- .getattr = simple_getattr,
- };
|