linux-old/fs/sysv/file.c
<<
>>
Prefs
   1/*
   2 *  linux/fs/sysv/file.c
   3 *
   4 *  minix/file.c
   5 *  Copyright (C) 1991, 1992  Linus Torvalds
   6 *
   7 *  coh/file.c
   8 *  Copyright (C) 1993  Pascal Haible, Bruno Haible
   9 *
  10 *  sysv/file.c
  11 *  Copyright (C) 1993  Bruno Haible
  12 *
  13 *  SystemV/Coherent regular file handling primitives
  14 */
  15
  16#include <linux/fs.h>
  17#include <linux/sysv_fs.h>
  18
  19/*
  20 * We have mostly NULLs here: the current defaults are OK for
  21 * the coh filesystem.
  22 */
  23struct file_operations sysv_file_operations = {
  24        llseek:         generic_file_llseek,
  25        read:           generic_file_read,
  26        write:          generic_file_write,
  27        mmap:           generic_file_mmap,
  28        fsync:          sysv_sync_file,
  29};
  30
  31struct inode_operations sysv_file_inode_operations = {
  32        truncate:       sysv_truncate,
  33};
  34
  35int sysv_sync_file(struct file * file, struct dentry *dentry, int datasync)
  36{
  37        struct inode *inode = dentry->d_inode;
  38        int err;
  39
  40        err = fsync_inode_buffers(inode);
  41        err |= fsync_inode_data_buffers(inode);
  42        if (!(inode->i_state & I_DIRTY))
  43                return err;
  44        if (datasync && !(inode->i_state & I_DIRTY_DATASYNC))
  45                return err;
  46        
  47        err |= sysv_sync_inode(inode);
  48        return err ? -EIO : 0;
  49}
  50
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.