file.c
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /*
  2.  *  linux/fs/minix/file.c
  3.  *
  4.  *  Copyright (C) 1991, 1992 Linus Torvalds
  5.  *
  6.  *  minix regular file handling primitives
  7.  */
  8. #include <linux/fs.h>
  9. #include <linux/minix_fs.h>
  10. /*
  11.  * We have mostly NULLs here: the current defaults are OK for
  12.  * the minix filesystem.
  13.  */
  14. int minix_sync_file(struct file *, struct dentry *, int);
  15. struct file_operations minix_file_operations = {
  16. llseek: generic_file_llseek,
  17. read: generic_file_read,
  18. write: generic_file_write,
  19. mmap: generic_file_mmap,
  20. fsync: minix_sync_file,
  21. };
  22. struct inode_operations minix_file_inode_operations = {
  23. truncate: minix_truncate,
  24. };
  25. int minix_sync_file(struct file * file, struct dentry *dentry, int datasync)
  26. {
  27. struct inode *inode = dentry->d_inode;
  28. int err;
  29. err = fsync_inode_buffers(inode);
  30. err |= fsync_inode_data_buffers(inode);
  31. if (!(inode->i_state & I_DIRTY))
  32. return err;
  33. if (datasync && !(inode->i_state & I_DIRTY_DATASYNC))
  34. return err;
  35. err |= minix_sync_inode(inode);
  36. return err ? -EIO : 0;
  37. }