Home Home > GIT Browse
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@penguin.transmeta.com>2002-03-07 00:37:25 -0800
committerLinus Torvalds <torvalds@penguin.transmeta.com>2002-03-07 00:37:25 -0800
commit3eafd8a0638b90e564568d9f1858adeabc9c5297 (patch)
tree19a685673ec3ebf34bc5a9ce83cc6673868fc381
parent9b3af176a97610d0b9b168f74282ebb0f61ae6fd (diff)
parent80f48a53fce1e188a3da73241c4e5ddbe65c5588 (diff)
Merge bk://bcrlbits.bkbits.net/linux-2.5
into penguin.transmeta.com:/home/penguin/torvalds/repositories/kernel/linux
-rw-r--r--fs/ext2/ext2.h1
-rw-r--r--fs/ext2/fsync.c5
-rw-r--r--fs/inode.c6
3 files changed, 3 insertions, 9 deletions
diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h
index 3c8fd2be7ec3..54e6dfe20b02 100644
--- a/fs/ext2/ext2.h
+++ b/fs/ext2/ext2.h
@@ -63,7 +63,6 @@ extern void ext2_set_link(struct inode *, struct ext2_dir_entry_2 *, struct page
/* fsync.c */
extern int ext2_sync_file (struct file *, struct dentry *, int);
-extern int ext2_fsync_inode (struct inode *, int);
/* ialloc.c */
extern struct inode * ext2_new_inode (struct inode *, int);
diff --git a/fs/ext2/fsync.c b/fs/ext2/fsync.c
index 14c5db0d8cff..17caa2fee050 100644
--- a/fs/ext2/fsync.c
+++ b/fs/ext2/fsync.c
@@ -35,11 +35,6 @@
int ext2_sync_file(struct file * file, struct dentry *dentry, int datasync)
{
struct inode *inode = dentry->d_inode;
- return ext2_fsync_inode(inode, datasync);
-}
-
-int ext2_fsync_inode(struct inode *inode, int datasync)
-{
int err;
err = fsync_inode_buffers(inode);
diff --git a/fs/inode.c b/fs/inode.c
index b7db8ac27f80..f4acc1d9ca9f 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -291,15 +291,15 @@ static inline void __sync_one(struct inode *inode, int sync)
static inline void sync_one(struct inode *inode, int sync)
{
- if (inode->i_state & I_LOCK) {
+ while (inode->i_state & I_LOCK) {
__iget(inode);
spin_unlock(&inode_lock);
__wait_on_inode(inode);
iput(inode);
spin_lock(&inode_lock);
- } else {
- __sync_one(inode, sync);
}
+
+ __sync_one(inode, sync);
}
static inline void sync_list(struct list_head *head)