diff -urN 2.4.19pre2ac3/fs/inode.c 2.4.19pre2ac4/fs/inode.c --- 2.4.19pre2ac3/fs/inode.c Mon Mar 11 11:48:44 2002 +++ 2.4.19pre2ac4/fs/inode.c Mon Mar 11 11:49:00 2002 @@ -247,15 +247,15 @@ 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)