Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4354001 authored by Dmitri Monakhov's avatar Dmitri Monakhov Committed by Mark Fasheh
Browse files

ocfs2: truncate outstanding block after direct io failure



Signed-off-by: default avatarDmitri Monakhov <dmonakhov@openvz.org>
Cc: Jeff Moyer <jmoyer@redhat.com>
Cc: Mark Fasheh <mark.fasheh@oracle.com>
Cc: Joel Becker <Joel.Becker@oracle.com>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarMark Fasheh <mfasheh@suse.com>
parent 80bcaf34
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -1866,6 +1866,13 @@ static ssize_t ocfs2_file_aio_write(struct kiocb *iocb,
		written = generic_file_direct_write(iocb, iov, &nr_segs, *ppos,
						    ppos, count, ocount);
		if (written < 0) {
			/*
			 * direct write may have instantiated a few
			 * blocks outside i_size. Trim these off again.
			 * Don't need i_size_read because we hold i_mutex.
			 */
			if (*ppos + count > inode->i_size)
				vmtruncate(inode, inode->i_size);
			ret = written;
			goto out_dio;
		}