12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /*
- * fsync.c
- *
- * PURPOSE
- * Fsync handling routines for the OSTA-UDF(tm) filesystem.
- *
- * COPYRIGHT
- * This file is distributed under the terms of the GNU General Public
- * License (GPL). Copies of the GPL can be obtained from:
- * ftp://prep.ai.mit.edu/pub/gnu/GPL
- * Each contributing author retains all rights to their own work.
- *
- * (C) 1999-2001 Ben Fennema
- * (C) 1999-2000 Stelias Computing Inc
- *
- * HISTORY
- *
- * 05/22/99 blf Created.
- */
- #include "udfdecl.h"
- #include <linux/fs.h>
- static int udf_fsync_inode(struct inode *, int);
- /*
- * File may be NULL when we are called. Perhaps we shouldn't
- * even pass file to fsync ?
- */
- int udf_fsync_file(struct file *file, struct dentry *dentry, int datasync)
- {
- struct inode *inode = dentry->d_inode;
- return udf_fsync_inode(inode, datasync);
- }
- static int udf_fsync_inode(struct inode *inode, int datasync)
- {
- int err;
- err = sync_mapping_buffers(inode->i_mapping);
- if (!(inode->i_state & I_DIRTY))
- return err;
- if (datasync && !(inode->i_state & I_DIRTY_DATASYNC))
- return err;
- err |= udf_sync_inode(inode);
- return err ? -EIO : 0;
- }
|