diff options
| author | Tony Lindgren <tony@atomide.com> | 2011-11-07 12:27:23 -0800 | 
|---|---|---|
| committer | Tony Lindgren <tony@atomide.com> | 2011-11-07 12:27:23 -0800 | 
| commit | d30cc16c8e48368e0518f4975a78711e53e14a0f (patch) | |
| tree | 26b57f7ab5a963cc3d6c57dff6951bd930875583 /fs/ext4/fsync.c | |
| parent | 41eb2d813f558900884e240c2f723e36c7bd151f (diff) | |
| parent | a1bcc1dcef8451b4291ea2a1b2677cb194102952 (diff) | |
| download | olio-linux-3.10-d30cc16c8e48368e0518f4975a78711e53e14a0f.tar.xz olio-linux-3.10-d30cc16c8e48368e0518f4975a78711e53e14a0f.zip  | |
Merge branch 'fixes-modulesplit' into fixes
Diffstat (limited to 'fs/ext4/fsync.c')
| -rw-r--r-- | fs/ext4/fsync.c | 10 | 
1 files changed, 3 insertions, 7 deletions
diff --git a/fs/ext4/fsync.c b/fs/ext4/fsync.c index 036f78f7a1e..00a2cb753ef 100644 --- a/fs/ext4/fsync.c +++ b/fs/ext4/fsync.c @@ -75,7 +75,7 @@ static void dump_completed_IO(struct inode * inode)   * to written.   * The function return the number of pending IOs on success.   */ -extern int ext4_flush_completed_IO(struct inode *inode) +int ext4_flush_completed_IO(struct inode *inode)  {  	ext4_io_end_t *io;  	struct ext4_inode_info *ei = EXT4_I(inode); @@ -83,14 +83,12 @@ extern int ext4_flush_completed_IO(struct inode *inode)  	int ret = 0;  	int ret2 = 0; -	if (list_empty(&ei->i_completed_io_list)) -		return ret; -  	dump_completed_IO(inode);  	spin_lock_irqsave(&ei->i_completed_io_lock, flags);  	while (!list_empty(&ei->i_completed_io_list)){  		io = list_entry(ei->i_completed_io_list.next,  				ext4_io_end_t, list); +		list_del_init(&io->list);  		/*  		 * Calling ext4_end_io_nolock() to convert completed  		 * IO to written. @@ -107,11 +105,9 @@ extern int ext4_flush_completed_IO(struct inode *inode)  		 */  		spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);  		ret = ext4_end_io_nolock(io); -		spin_lock_irqsave(&ei->i_completed_io_lock, flags);  		if (ret < 0)  			ret2 = ret; -		else -			list_del_init(&io->list); +		spin_lock_irqsave(&ei->i_completed_io_lock, flags);  	}  	spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);  	return (ret2 < 0) ? ret2 : 0;  |