OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [fs/] [ext2/] [fsync.c] - Blame information for rev 1275

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/*
2
 *  linux/fs/ext2/fsync.c
3
 *
4
 *  Copyright (C) 1993  Stephen Tweedie (sct@dcs.ed.ac.uk)
5
 *  from
6
 *  Copyright (C) 1992  Remy Card (card@masi.ibp.fr)
7
 *                      Laboratoire MASI - Institut Blaise Pascal
8
 *                      Universite Pierre et Marie Curie (Paris VI)
9
 *  from
10
 *  linux/fs/minix/truncate.c   Copyright (C) 1991, 1992  Linus Torvalds
11
 *
12
 *  ext2fs fsync primitive
13
 *
14
 *  Big-endian to little-endian byte-swapping/bitmaps by
15
 *        David S. Miller (davem@caip.rutgers.edu), 1995
16
 *
17
 *  Removed unnecessary code duplication for little endian machines
18
 *  and excessive __inline__s.
19
 *        Andi Kleen, 1997
20
 *
21
 * Major simplications and cleanup - we only need to do the metadata, because
22
 * we can depend on generic_block_fdatasync() to sync the data blocks.
23
 */
24
 
25
#include <linux/fs.h>
26
#include <linux/ext2_fs.h>
27
#include <linux/locks.h>
28
#include <linux/smp_lock.h>
29
 
30
 
31
/*
32
 *      File may be NULL when we are called. Perhaps we shouldn't
33
 *      even pass file to fsync ?
34
 */
35
 
36
int ext2_sync_file(struct file * file, struct dentry *dentry, int datasync)
37
{
38
        struct inode *inode = dentry->d_inode;
39
        return ext2_fsync_inode(inode, datasync);
40
}
41
 
42
int ext2_fsync_inode(struct inode *inode, int datasync)
43
{
44
        int err;
45
 
46
        err  = fsync_inode_buffers(inode);
47
        err |= fsync_inode_data_buffers(inode);
48
        if (!(inode->i_state & I_DIRTY))
49
                return err;
50
        if (datasync && !(inode->i_state & I_DIRTY_DATASYNC))
51
                return err;
52
 
53
        err |= ext2_sync_inode(inode);
54
        return err ? -EIO : 0;
55
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.