fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / fs / ext2 / file.c
index 713fb9b..07ccad5 100644 (file)
@@ -39,28 +39,52 @@ static int ext2_release_file (struct inode * inode, struct file * filp)
  * We have mostly NULL's here: the current defaults are ok for
  * the ext2 filesystem.
  */
-struct file_operations ext2_file_operations = {
+const struct file_operations ext2_file_operations = {
        .llseek         = generic_file_llseek,
-       .read           = generic_file_read,
-       .write          = generic_file_write,
+       .read           = do_sync_read,
+       .write          = do_sync_write,
        .aio_read       = generic_file_aio_read,
        .aio_write      = generic_file_aio_write,
        .ioctl          = ext2_ioctl,
+#ifdef CONFIG_COMPAT
+       .compat_ioctl   = ext2_compat_ioctl,
+#endif
        .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,
+       .sendpage       = generic_file_sendpage,
+       .splice_read    = generic_file_splice_read,
+       .splice_write   = generic_file_splice_write,
 };
 
+#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,
+#ifdef CONFIG_COMPAT
+       .compat_ioctl   = ext2_compat_ioctl,
+#endif
+       .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,
-       .setxattr       = ext2_setxattr,
-       .getxattr       = ext2_getxattr,
+#ifdef CONFIG_EXT2_FS_XATTR
+       .setxattr       = generic_setxattr,
+       .getxattr       = generic_getxattr,
        .listxattr      = ext2_listxattr,
-       .removexattr    = ext2_removexattr,
+       .removexattr    = generic_removexattr,
+#endif
        .setattr        = ext2_setattr,
        .permission     = ext2_permission,
+       .sync_flags     = ext2_sync_flags,
 };