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 struct file_operations minix_file_operations
= {
19 .llseek
= generic_file_llseek
,
20 .read
= generic_file_read
,
21 .write
= generic_file_write
,
22 .mmap
= generic_file_mmap
,
23 .fsync
= minix_sync_file
,
24 .sendfile
= generic_file_sendfile
,
27 struct inode_operations minix_file_inode_operations
= {
28 .truncate
= minix_truncate
,
29 .getattr
= minix_getattr
,
32 int minix_sync_file(struct file
* file
, struct dentry
*dentry
, int datasync
)
34 struct inode
*inode
= dentry
->d_inode
;
37 err
= sync_mapping_buffers(inode
->i_mapping
);
38 if (!(inode
->i_state
& I_DIRTY
))
40 if (datasync
&& !(inode
->i_state
& I_DIRTY_DATASYNC
))
43 err
|= minix_sync_inode(inode
);
44 return err
? -EIO
: 0;