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
,
24 .read
= generic_file_read
,
25 .write
= generic_file_write
,
26 .mmap
= generic_file_mmap
,
27 .fsync
= sysv_sync_file
,
28 .sendfile
= generic_file_sendfile
,
31 struct inode_operations sysv_file_inode_operations
= {
32 .truncate
= sysv_truncate
,
33 .getattr
= sysv_getattr
,
36 int sysv_sync_file(struct file
* file
, struct dentry
*dentry
, int datasync
)
38 struct inode
*inode
= dentry
->d_inode
;
41 err
= sync_mapping_buffers(inode
->i_mapping
);
42 if (!(inode
->i_state
& I_DIRTY
))
44 if (datasync
&& !(inode
->i_state
& I_DIRTY_DATASYNC
))
47 err
|= sysv_sync_inode(inode
);
48 return err
? -EIO
: 0;