2 * linux/fs/minix/file.c
4 * Copyright (C) 1991, 1992 Linus Torvalds
6 * minix regular file handling primitives
9 #include <linux/buffer_head.h> /* for fsync_inode_buffers() */
13 * We have mostly NULLs here: the current defaults are OK for
14 * the minix filesystem.
16 int minix_sync_file(struct file
*, struct dentry
*, int);
18 const struct file_operations minix_file_operations
= {
19 .llseek
= generic_file_llseek
,
21 .aio_read
= generic_file_aio_read
,
22 .write
= do_sync_write
,
23 .aio_write
= generic_file_aio_write
,
24 .mmap
= generic_file_mmap
,
25 .fsync
= minix_sync_file
,
26 .sendfile
= generic_file_sendfile
,
29 const struct inode_operations minix_file_inode_operations
= {
30 .truncate
= minix_truncate
,
31 .getattr
= minix_getattr
,
34 int minix_sync_file(struct file
* file
, struct dentry
*dentry
, int datasync
)
36 struct inode
*inode
= dentry
->d_inode
;
39 err
= sync_mapping_buffers(inode
->i_mapping
);
40 if (!(inode
->i_state
& I_DIRTY
))
42 if (datasync
&& !(inode
->i_state
& I_DIRTY_DATASYNC
))
45 err
|= minix_sync_inode(inode
);
46 return err
? -EIO
: 0;