5 * Copyright (C) 1991, 1992 Linus Torvalds
8 * Copyright (C) 1993 Pascal Haible, Bruno Haible
11 * Copyright (C) 1993 Bruno Haible
13 * SystemV/Coherent regular file handling primitives
19 * We have mostly NULLs here: the current defaults are OK for
22 const struct file_operations sysv_file_operations
= {
23 .llseek
= generic_file_llseek
,
25 .aio_read
= generic_file_aio_read
,
26 .write
= do_sync_write
,
27 .aio_write
= generic_file_aio_write
,
28 .mmap
= generic_file_mmap
,
29 .fsync
= sysv_sync_file
,
30 .splice_read
= generic_file_splice_read
,
33 const struct inode_operations sysv_file_inode_operations
= {
34 .truncate
= sysv_truncate
,
35 .getattr
= sysv_getattr
,
38 int sysv_sync_file(struct file
* file
, struct dentry
*dentry
, int datasync
)
40 struct inode
*inode
= dentry
->d_inode
;
43 err
= sync_mapping_buffers(inode
->i_mapping
);
44 if (!(inode
->i_state
& I_DIRTY
))
46 if (datasync
&& !(inode
->i_state
& I_DIRTY_DATASYNC
))
49 err
|= sysv_sync_inode(inode
);
50 return err
? -EIO
: 0;